You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dj...@apache.org on 2022/01/03 03:17:48 UTC

[camel-karaf] branch main updated (64d4118 -> e976acc)

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

djencks pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git.


    from 64d4118  update to docs local build v2
     new 9f766f3  generate component json files into source
     new 6b1c168  commit generated json files in src/main/resources
     new 337ef4c  symlink json files into examples
     new 8595474  Generate components/etc tables with Antora
     new e976acc  use symlinks to camel-karaf specific component doc pages

The 5 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:
 catalog/camel-catalog-provider-karaf/pom.xml       |  31 +-
 .../camel/catalog/karaf/components.properties      | 203 +++++
 .../camel/catalog/karaf/components/activemq.json   | 228 +++++
 .../camel/catalog/karaf/components/ahc-ws.json     |  58 ++
 .../apache/camel/catalog/karaf/components/ahc.json |  51 ++
 .../camel/catalog/karaf/components/amqp.json       | 224 +++++
 .../camel/catalog/karaf/components/arangodb.json   |  51 ++
 .../apache/camel/catalog/karaf/components/as2.json |  75 ++
 .../camel/catalog/karaf/components/asterisk.json   |  40 +
 .../camel/catalog/karaf/components/atom.json       |  58 ++
 .../camel/catalog/karaf/components/avro.json       |  52 ++
 .../karaf/components/aws-secrets-manager.json      |  61 ++
 .../catalog/karaf/components/aws2-athena.json      |  87 ++
 .../camel/catalog/karaf/components/aws2-cw.json    |  63 ++
 .../camel/catalog/karaf/components/aws2-ddb.json   |  71 ++
 .../camel/catalog/karaf/components/aws2-ec2.json   |  59 ++
 .../camel/catalog/karaf/components/aws2-ecs.json   |  59 ++
 .../camel/catalog/karaf/components/aws2-eks.json   |  59 ++
 .../catalog/karaf/components/aws2-eventbridge.json |  61 ++
 .../camel/catalog/karaf/components/aws2-iam.json   |  59 ++
 .../catalog/karaf/components/aws2-kinesis.json     |  89 ++
 .../camel/catalog/karaf/components/aws2-kms.json   |  59 ++
 .../catalog/karaf/components/aws2-lambda.json      |  59 ++
 .../camel/catalog/karaf/components/aws2-mq.json    |  59 ++
 .../camel/catalog/karaf/components/aws2-msk.json   |  59 ++
 .../camel/catalog/karaf/components/aws2-s3.json    | 147 ++++
 .../camel/catalog/karaf/components/aws2-ses.json   |  63 ++
 .../camel/catalog/karaf/components/aws2-sns.json   |  76 ++
 .../camel/catalog/karaf/components/aws2-sqs.json   | 133 +++
 .../camel/catalog/karaf/components/aws2-sts.json   |  59 ++
 .../catalog/karaf/components/aws2-translate.json   |  65 ++
 .../catalog/karaf/components/azure-eventhubs.json  |  70 ++
 .../karaf/components/azure-storage-blob.json       | 109 +++
 .../karaf/components/azure-storage-datalake.json   | 113 +++
 .../karaf/components/azure-storage-queue.json      |  76 ++
 .../catalog/karaf/components/bean-validator.json   |  45 +
 .../camel/catalog/karaf/components/bean.json       |  38 +
 .../camel/catalog/karaf/components/beanstalk.json  |  60 ++
 .../apache/camel/catalog/karaf/components/box.json |  94 +++
 .../camel/catalog/karaf/components/braintree.json  |  81 ++
 .../camel/catalog/karaf/components/browse.json     |  36 +
 .../camel/catalog/karaf/components/chatscript.json |  36 +
 .../camel/catalog/karaf/components/cm-sms.json     |  36 +
 .../camel/catalog/karaf/components/cmis.json       |  46 +
 .../camel/catalog/karaf/components/coap.json       |  47 ++
 .../camel/catalog/karaf/components/cometd.json     |  58 ++
 .../camel/catalog/karaf/components/consul.json     |  86 ++
 .../camel/catalog/karaf/components/controlbus.json |  38 +
 .../camel/catalog/karaf/components/corda.json      |  57 ++
 .../camel/catalog/karaf/components/couchdb.json    |  47 ++
 .../camel/catalog/karaf/components/cron.json       |  36 +
 .../camel/catalog/karaf/components/crypto.json     |  70 ++
 .../apache/camel/catalog/karaf/components/cxf.json |  71 ++
 .../camel/catalog/karaf/components/dataformat.json |  33 +
 .../camel/catalog/karaf/components/dataset.json    |  55 ++
 .../catalog/karaf/components/digitalocean.json     |  41 +
 .../camel/catalog/karaf/components/direct.json     |  42 +
 .../camel/catalog/karaf/components/disruptor.json  |  51 ++
 .../apache/camel/catalog/karaf/components/djl.json |  35 +
 .../apache/camel/catalog/karaf/components/dns.json |  32 +
 .../camel/catalog/karaf/components/docker.json     |  71 ++
 .../camel/catalog/karaf/components/dozer.json      |  38 +
 .../camel/catalog/karaf/components/drill.json      |  36 +
 .../camel/catalog/karaf/components/dropbox.json    |  44 +
 .../camel/catalog/karaf/components/ehcache.json    |  62 ++
 .../karaf/components/elasticsearch-rest.json       |  59 ++
 .../camel/catalog/karaf/components/elsql.json      |  84 ++
 .../catalog/karaf/components}/eventadmin.json      |   0
 .../camel/catalog/karaf/components/exec.json       |  40 +
 .../camel/catalog/karaf/components/facebook.json   | 162 ++++
 .../camel/catalog/karaf/components/file-watch.json |  48 ++
 .../camel/catalog/karaf/components/file.json       | 126 +++
 .../camel/catalog/karaf/components/flatpack.json   |  59 ++
 .../apache/camel/catalog/karaf/components/fop.json |  34 +
 .../camel/catalog/karaf/components/freemarker.json |  42 +
 .../apache/camel/catalog/karaf/components/ftp.json | 147 ++++
 .../camel/catalog/karaf/components/ganglia.json    |  58 ++
 .../apache/camel/catalog/karaf/components/git.json |  45 +
 .../camel/catalog/karaf/components/github.json     |  62 ++
 .../catalog/karaf/components/google-bigquery.json  |  39 +
 .../catalog/karaf/components/google-calendar.json  |  93 +++
 .../catalog/karaf/components/google-drive.json     |  98 +++
 .../catalog/karaf/components/google-mail.json      |  85 ++
 .../catalog/karaf/components/google-sheets.json    |  78 ++
 .../camel/catalog/karaf/components/grape.json      |  33 +
 .../camel/catalog/karaf/components/graphql.json    |  43 +
 .../catalog/karaf/components/guava-eventbus.json   |  40 +
 .../camel/catalog/karaf/components/http.json       | 119 +++
 .../camel/catalog/karaf/components/influxdb.json   |  40 +
 .../camel/catalog/karaf/components/iota.json       |  38 +
 .../apache/camel/catalog/karaf/components/irc.json |  62 ++
 .../camel/catalog/karaf/components/ironmq.json     |  63 ++
 .../camel/catalog/karaf/components/jcache.json     |  60 ++
 .../apache/camel/catalog/karaf/components/jcr.json |  48 ++
 .../camel/catalog/karaf/components/jdbc.json       |  47 ++
 .../camel/catalog/karaf/components/jetty.json      |  95 +++
 .../camel/catalog/karaf/components/jing.json       |  33 +
 .../apache/camel/catalog/karaf/components/jms.json | 224 +++++
 .../apache/camel/catalog/karaf/components/jmx.json |  60 ++
 .../camel/catalog/karaf/components/jolt.json       |  40 +
 .../camel/catalog/karaf/components/jooq.json       |  61 ++
 .../apache/camel/catalog/karaf/components/jpa.json |  81 ++
 .../camel/catalog/karaf/components/jslt.json       |  41 +
 .../catalog/karaf/components/json-validator.json   |  39 +
 .../camel/catalog/karaf/components/jsonata.json    |  36 +
 .../camel/catalog/karaf/components/jt400.json      |  70 ++
 .../camel/catalog/karaf/components/kafka.json      | 235 ++++++
 .../camel/catalog/karaf/components/kamelet.json    |  47 ++
 .../camel/catalog/karaf/components/kudu.json       |  35 +
 .../camel/catalog/karaf/components/language.json   |  39 +
 .../camel/catalog/karaf/components/ldap.json       |  36 +
 .../camel/catalog/karaf/components/ldif.json       |  32 +
 .../apache/camel/catalog/karaf/components/log.json |  60 ++
 .../camel/catalog/karaf/components/lucene.json     |  42 +
 .../camel/catalog/karaf/components/lumberjack.json |  38 +
 .../camel/catalog/karaf/components/master.json     |  37 +
 .../camel/catalog/karaf/components/metrics.json    |  40 +
 .../camel/catalog/karaf/components/micrometer.json |  39 +
 .../camel/catalog/karaf/components/mina.json       |  86 ++
 .../camel/catalog/karaf/components/minio.json      | 139 ++++
 .../camel/catalog/karaf/components/mllp.json       |  86 ++
 .../camel/catalog/karaf/components/mock.json       |  45 +
 .../catalog/karaf/components/mongodb-gridfs.json   |  48 ++
 .../camel/catalog/karaf/components/mongodb.json    |  60 ++
 .../apache/camel/catalog/karaf/components/msv.json |  43 +
 .../camel/catalog/karaf/components/mustache.json   |  41 +
 .../camel/catalog/karaf/components/mvel.json       |  38 +
 .../camel/catalog/karaf/components/mybatis.json    |  64 ++
 .../camel/catalog/karaf/components/nagios.json     |  43 +
 .../camel/catalog/karaf/components/netty-http.json | 190 +++++
 .../camel/catalog/karaf/components/netty.json      | 175 ++++
 .../camel/catalog/karaf/components/nitrite.json    |  41 +
 .../apache/camel/catalog/karaf/components/nsq.json |  51 ++
 .../camel/catalog/karaf/components/olingo2.json    |  89 ++
 .../camel/catalog/karaf/components/olingo4.json    |  85 ++
 .../camel/catalog/karaf/components/paho.json       |  91 ++
 .../catalog/karaf/components}/paxlogging.json      |   0
 .../apache/camel/catalog/karaf/components/pdf.json |  40 +
 .../karaf/components/pg-replication-slot.json      |  59 ++
 .../camel/catalog/karaf/components/pgevent.json    |  42 +
 .../camel/catalog/karaf/components/pubnub.json     |  56 ++
 .../camel/catalog/karaf/components/quartz.json     |  60 ++
 .../camel/catalog/karaf/components/quickfix.json   |  43 +
 .../camel/catalog/karaf/components/rabbitmq.json   | 151 ++++
 .../catalog/karaf/components/reactive-streams.json |  48 ++
 .../apache/camel/catalog/karaf/components/ref.json |  36 +
 .../catalog/karaf/components/rest-openapi.json     |  46 +
 .../catalog/karaf/components/rest-swagger.json     |  49 ++
 .../camel/catalog/karaf/components/rest.json       |  56 ++
 .../catalog/karaf/components/robotframework.json   | 148 ++++
 .../apache/camel/catalog/karaf/components/rss.json |  58 ++
 .../camel/catalog/karaf/components/saga.json       |  32 +
 .../camel/catalog/karaf/components/salesforce.json | 178 ++++
 .../catalog/karaf/components/sap-netweaver.json    |  37 +
 .../camel/catalog/karaf/components/scheduler.json  |  53 ++
 .../camel/catalog/karaf/components/schematron.json |  35 +
 .../camel/catalog/karaf/components/seda.json       |  57 ++
 .../camel/catalog/karaf/components/service.json    |  36 +
 .../camel/catalog/karaf/components/servicenow.json | 122 +++
 .../camel/catalog/karaf/components/servlet.json    |  63 ++
 .../apache/camel/catalog/karaf/components/sip.json |  77 ++
 .../camel/catalog/karaf/components/sjms.json       |  85 ++
 .../camel/catalog/karaf/components/sjms2.json      |  88 ++
 .../camel/catalog/karaf/components/slack.json      |  63 ++
 .../camel/catalog/karaf/components/smpp.json       | 113 +++
 .../camel/catalog/karaf/components/snmp.json       |  69 ++
 .../camel/catalog/karaf/components/solr.json       |  51 ++
 .../camel/catalog/karaf/components/soroush.json    |  53 ++
 .../camel/catalog/karaf/components/splunk.json     |  77 ++
 .../catalog/karaf/components/spring-batch.json     |  37 +
 .../catalog/karaf/components/spring-jdbc.json      |  47 ++
 .../catalog/karaf/components/spring-ldap.json      |  34 +
 .../camel/catalog/karaf/components/spring-ws.json  |  57 ++
 .../apache/camel/catalog/karaf/components/sql.json |  79 ++
 .../apache/camel/catalog/karaf/components/ssh.json |  81 ++
 .../camel/catalog/karaf/components/stax.json       |  32 +
 .../camel/catalog/karaf/components/stomp.json      |  54 ++
 .../camel/catalog/karaf/components/stream.json     |  51 ++
 .../catalog/karaf/components/string-template.json  |  39 +
 .../camel/catalog/karaf/components/stub.json       |  57 ++
 .../camel/catalog/karaf/components/telegram.json   |  66 ++
 .../camel/catalog/karaf/components/thrift.json     |  48 ++
 .../camel/catalog/karaf/components/tika.json       |  36 +
 .../camel/catalog/karaf/components/timer.json      |  44 +
 .../camel/catalog/karaf/components/twilio.json     | 176 ++++
 .../camel/catalog/karaf/components/validator.json  |  42 +
 .../camel/catalog/karaf/components/velocity.json   |  41 +
 .../camel/catalog/karaf/components/vertx.json      |  43 +
 .../apache/camel/catalog/karaf/components/vm.json  |  57 ++
 .../camel/catalog/karaf/components/weather.json    |  72 ++
 .../camel/catalog/karaf/components/web3j.json      | 105 +++
 .../camel/catalog/karaf/components/webhook.json    |  45 +
 .../catalog/karaf/components/websocket-jsr356.json |  38 +
 .../camel/catalog/karaf/components/websocket.json  |  66 ++
 .../camel/catalog/karaf/components/wordpress.json  |  54 ++
 .../camel/catalog/karaf/components/workday.json    |  40 +
 .../camel/catalog/karaf/components/xchange.json    |  36 +
 .../apache/camel/catalog/karaf/components/xj.json  |  56 ++
 .../camel/catalog/karaf/components/xmpp.json       |  54 ++
 .../camel/catalog/karaf/components/xslt-saxon.json |  55 ++
 .../camel/catalog/karaf/components/xslt.json       |  49 ++
 .../camel/catalog/karaf/components/yammer.json     |  74 ++
 .../camel/catalog/karaf/components/zendesk.json    |  72 ++
 .../catalog/karaf/components/zookeeper-master.json |  41 +
 .../camel/catalog/karaf/components/zookeeper.json  |  52 ++
 .../camel/catalog/karaf/dataformats.properties     |  48 ++
 .../camel/catalog/karaf/dataformats/any23.json     |  25 +
 .../camel/catalog/karaf/dataformats/asn1.json      |  23 +
 .../catalog/karaf/dataformats/avro-jackson.json    |  39 +
 .../camel/catalog/karaf/dataformats/avro.json      |  22 +
 .../camel/catalog/karaf/dataformats/barcode.json   |  25 +
 .../camel/catalog/karaf/dataformats/base64.json    |  24 +
 .../camel/catalog/karaf/dataformats/beanio.json    |  29 +
 .../camel/catalog/karaf/dataformats/bindy-csv.json |  26 +
 .../catalog/karaf/dataformats/bindy-fixed.json     |  26 +
 .../camel/catalog/karaf/dataformats/bindy-kvp.json |  26 +
 .../camel/catalog/karaf/dataformats/cbor.json      |  31 +
 .../camel/catalog/karaf/dataformats/crypto.json    |  30 +
 .../camel/catalog/karaf/dataformats/csv.json       |  50 ++
 .../camel/catalog/karaf/dataformats/fhirJson.json  |  34 +
 .../camel/catalog/karaf/dataformats/fhirXml.json   |  34 +
 .../camel/catalog/karaf/dataformats/flatpack.json  |  29 +
 .../camel/catalog/karaf/dataformats/grok.json      |  25 +
 .../catalog/karaf/dataformats/gzipdeflater.json    |  21 +
 .../camel/catalog/karaf/dataformats/hl7.json       |  22 +
 .../camel/catalog/karaf/dataformats/ical.json      |  22 +
 .../catalog/karaf/dataformats/jacksonxml.json      |  36 +
 .../camel/catalog/karaf/dataformats/jaxb.json      |  40 +
 .../catalog/karaf/dataformats/json-fastjson.json   |  22 +
 .../camel/catalog/karaf/dataformats/json-gson.json |  23 +
 .../catalog/karaf/dataformats/json-jackson.json    |  41 +
 .../catalog/karaf/dataformats/json-johnzon.json    |  23 +
 .../catalog/karaf/dataformats/json-jsonb.json      |  23 +
 .../catalog/karaf/dataformats/json-xstream.json    |  23 +
 .../camel/catalog/karaf/dataformats/jsonApi.json   |  23 +
 .../camel/catalog/karaf/dataformats/lzf.json       |  22 +
 .../catalog/karaf/dataformats/mime-multipart.json  |  26 +
 .../camel/catalog/karaf/dataformats/pgp.json       |  35 +
 .../karaf/dataformats/protobuf-jackson.json        |  39 +
 .../camel/catalog/karaf/dataformats/protobuf.json  |  24 +
 .../camel/catalog/karaf/dataformats/rss.json       |  21 +
 .../camel/catalog/karaf/dataformats/secureXML.json |  33 +
 .../camel/catalog/karaf/dataformats/soapjaxb.json  |  27 +
 .../camel/catalog/karaf/dataformats/syslog.json    |  21 +
 .../camel/catalog/karaf/dataformats/tarfile.json   |  25 +
 .../camel/catalog/karaf/dataformats/thrift.json    |  24 +
 .../catalog/karaf/dataformats/tidyMarkup.json      |  23 +
 .../catalog/karaf/dataformats/univocity-csv.json   |  38 +
 .../catalog/karaf/dataformats/univocity-fixed.json |  37 +
 .../catalog/karaf/dataformats/univocity-tsv.json   |  35 +
 .../camel/catalog/karaf/dataformats/xstream.json   |  28 +
 .../catalog/karaf/dataformats/yaml-snakeyaml.json  |  33 +
 .../catalog/karaf/dataformats/zipdeflater.json     |  22 +
 .../camel/catalog/karaf/dataformats/zipfile.json   |  25 +
 .../camel/catalog/karaf/languages.properties       |  20 +
 .../apache/camel/catalog/karaf/languages/bean.json |  26 +
 .../camel/catalog/karaf/languages/constant.json    |  24 +
 .../camel/catalog/karaf/languages/csimple.json     |  24 +
 .../camel/catalog/karaf/languages/datasonnet.json  |  26 +
 .../catalog/karaf/languages/exchangeProperty.json  |  23 +
 .../apache/camel/catalog/karaf/languages/file.json |  24 +
 .../camel/catalog/karaf/languages/groovy.json      |  23 +
 .../camel/catalog/karaf/languages/header.json      |  23 +
 .../camel/catalog/karaf/languages/hl7terser.json   |  23 +
 .../apache/camel/catalog/karaf/languages/joor.json |  26 +
 .../camel/catalog/karaf/languages/jsonpath.json    |  30 +
 .../apache/camel/catalog/karaf/languages/mvel.json |  23 +
 .../apache/camel/catalog/karaf/languages/ognl.json |  23 +
 .../apache/camel/catalog/karaf/languages/ref.json  |  23 +
 .../camel/catalog/karaf/languages/simple.json      |  24 +
 .../apache/camel/catalog/karaf/languages/spel.json |  23 +
 .../camel/catalog/karaf/languages/tokenize.json    |  32 +
 .../camel/catalog/karaf/languages/xpath.json       |  32 +
 .../camel/catalog/karaf/languages/xquery.json      |  26 +
 .../camel/catalog/karaf/languages/xtokenize.json   |  25 +
 .../apache/camel/catalog/karaf/others.properties   |  19 +
 .../camel/catalog/karaf/others/aws-xray.json       |  15 +
 .../camel/catalog/karaf/others}/blueprint.json     |   0
 .../catalog/karaf/others/caffeine-lrucache.json    |  16 +
 .../camel/catalog/karaf/others/headersmap.json     |  15 +
 .../apache/camel/catalog/karaf/others/hystrix.json |  15 +
 .../apache/camel/catalog/karaf/others/jasypt.json  |  15 +
 .../apache/camel/catalog/karaf/others}/kura.json   |   0
 .../camel/catalog/karaf/others/leveldb-legacy.json |  15 +
 .../apache/camel/catalog/karaf/others/leveldb.json |  15 +
 .../org/apache/camel/catalog/karaf/others/lra.json |  15 +
 .../camel/catalog/karaf/others/openapi-java.json   |  15 +
 .../camel/catalog/karaf/others/opentelemetry.json  |  15 +
 .../camel/catalog/karaf/others/opentracing.json    |  15 +
 .../apache/camel/catalog/karaf/others/reactor.json |  15 +
 .../apache/camel/catalog/karaf/others/shiro.json   |  15 +
 .../camel/catalog/karaf/others/swagger-java.json   |  15 +
 .../camel/catalog/karaf/others/test-spring.json    |  15 +
 .../apache/camel/catalog/karaf/others/tracing.json |  15 +
 .../apache/camel/catalog/karaf/others/zipkin.json  |  15 +
 docs/antora.yml                                    |   5 +
 docs/modules/ROOT/examples/js/karaf.js             |  79 ++
 docs/modules/ROOT/examples/json                    |   1 +
 docs/modules/ROOT/pages/blueprint.adoc             |  47 +-
 docs/modules/ROOT/pages/components.adoc            | 925 +--------------------
 docs/modules/ROOT/pages/eventadmin-component.adoc  | 111 +--
 docs/modules/ROOT/pages/kura.adoc                  | 300 +------
 docs/modules/ROOT/pages/paxlogging-component.adoc  | 115 +--
 docs/modules/ROOT/partials/summary-table.adoc      |   7 +
 .../camel/karaf/maven/PrepareCatalogKarafMojo.java |  24 +-
 tooling/camel-karaf-docs-maven-plugin/pom.xml      | 220 -----
 .../apache/camel/karaf/maven/ExtMvelHelper.java    |  98 ---
 .../karaf/maven/UpdateDocComponentsListMojo.java   | 658 ---------------
 .../src/main/resources/META-INF/LICENSE.txt        | 203 -----
 .../src/main/resources/META-INF/NOTICE.txt         |  11 -
 .../src/main/resources/components.mvel             |  14 -
 .../src/main/resources/dataformats.mvel            |  13 -
 .../src/main/resources/languages.mvel              |  13 -
 .../src/main/resources/others.mvel                 |  13 -
 tooling/pom.xml                                    |   1 -
 315 files changed, 15762 insertions(+), 2743 deletions(-)
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/activemq.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc-ws.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/amqp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/arangodb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/as2.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/asterisk.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/atom.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/avro.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws-secrets-manager.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-athena.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-cw.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ddb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ec2.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ecs.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eks.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eventbridge.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-iam.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kinesis.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kms.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-lambda.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-mq.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-msk.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-s3.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ses.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sns.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sqs.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sts.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-translate.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-eventhubs.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-blob.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-datalake.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-queue.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean-validator.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/beanstalk.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/box.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/braintree.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/browse.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/chatscript.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cm-sms.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cmis.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/coap.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cometd.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/consul.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/controlbus.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/corda.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/couchdb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cron.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/crypto.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cxf.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataformat.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataset.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/digitalocean.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/direct.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/disruptor.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/djl.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dns.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/docker.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dozer.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/drill.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dropbox.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ehcache.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elasticsearch-rest.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elsql.json
 copy {components/camel-eventadmin/src/generated/resources/org/apache/camel/component/eventadmin => catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components}/eventadmin.json (100%)
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/exec.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/facebook.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file-watch.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/flatpack.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/fop.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/freemarker.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ftp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ganglia.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/git.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/github.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-bigquery.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-calendar.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-drive.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-mail.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-sheets.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/grape.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/graphql.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/guava-eventbus.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/http.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/influxdb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/iota.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/irc.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ironmq.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcache.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcr.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jdbc.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jetty.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jing.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jms.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jmx.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jolt.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jooq.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jpa.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jslt.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/json-validator.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jsonata.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jt400.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kafka.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kamelet.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kudu.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/language.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldap.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldif.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/log.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lucene.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lumberjack.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/master.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/metrics.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/micrometer.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mina.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/minio.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mllp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mock.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb-gridfs.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/msv.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mustache.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mvel.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mybatis.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nagios.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty-http.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nitrite.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nsq.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/olingo2.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/olingo4.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/paho.json
 copy {components/camel-paxlogging/src/generated/resources/org/apache/camel/component/paxlogging => catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components}/paxlogging.json (100%)
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/pdf.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/pg-replication-slot.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/pgevent.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/pubnub.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/quartz.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/quickfix.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/rabbitmq.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/reactive-streams.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ref.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/rest-openapi.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/rest-swagger.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/rest.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/robotframework.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/rss.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/saga.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/salesforce.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/sap-netweaver.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/scheduler.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/schematron.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/seda.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/service.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/servicenow.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/servlet.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/sip.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/sjms.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/sjms2.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/slack.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/smpp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/snmp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/solr.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/soroush.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/splunk.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/spring-batch.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/spring-jdbc.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/spring-ldap.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/spring-ws.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/sql.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ssh.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/stax.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/stomp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/stream.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/string-template.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/stub.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/telegram.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/thrift.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/tika.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/timer.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/twilio.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/validator.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/velocity.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/vertx.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/vm.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/weather.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/web3j.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/webhook.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/websocket-jsr356.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/websocket.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/wordpress.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/workday.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/xchange.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/xj.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/xmpp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/xslt-saxon.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/xslt.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/yammer.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/zendesk.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/zookeeper-master.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/zookeeper.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats.properties
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/any23.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/asn1.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/avro-jackson.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/avro.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/barcode.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/base64.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/beanio.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/bindy-csv.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/bindy-fixed.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/bindy-kvp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/cbor.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/crypto.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/csv.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/fhirJson.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/fhirXml.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/flatpack.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/grok.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/gzipdeflater.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/hl7.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/ical.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/jacksonxml.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/jaxb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/json-fastjson.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/json-gson.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/json-jackson.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/json-johnzon.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/json-jsonb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/json-xstream.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/jsonApi.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/lzf.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/mime-multipart.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/pgp.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/protobuf-jackson.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/protobuf.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/rss.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/secureXML.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/soapjaxb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/syslog.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/tarfile.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/thrift.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/tidyMarkup.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/univocity-csv.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/univocity-fixed.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/univocity-tsv.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/xstream.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/yaml-snakeyaml.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/zipdeflater.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/dataformats/zipfile.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages.properties
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/bean.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/constant.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/csimple.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/datasonnet.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/exchangeProperty.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/file.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/groovy.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/header.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/hl7terser.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/joor.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/jsonpath.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/mvel.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/ognl.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/ref.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/simple.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/spel.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/tokenize.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/xpath.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/xquery.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/languages/xtokenize.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others.properties
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/aws-xray.json
 copy {components/camel-blueprint/src/generated/resources => catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others}/blueprint.json (100%)
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/caffeine-lrucache.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/headersmap.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/hystrix.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/jasypt.json
 copy {components/camel-kura/src/generated/resources => catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others}/kura.json (100%)
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/leveldb-legacy.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/leveldb.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/lra.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/openapi-java.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/opentelemetry.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/opentracing.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/reactor.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/shiro.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/swagger-java.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/test-spring.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/tracing.json
 create mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/others/zipkin.json
 create mode 100644 docs/modules/ROOT/examples/js/karaf.js
 create mode 120000 docs/modules/ROOT/examples/json
 mode change 100644 => 120000 docs/modules/ROOT/pages/blueprint.adoc
 mode change 100644 => 120000 docs/modules/ROOT/pages/eventadmin-component.adoc
 mode change 100644 => 120000 docs/modules/ROOT/pages/kura.adoc
 mode change 100644 => 120000 docs/modules/ROOT/pages/paxlogging-component.adoc
 create mode 100644 docs/modules/ROOT/partials/summary-table.adoc
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/pom.xml
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/ExtMvelHelper.java
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/UpdateDocComponentsListMojo.java
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/LICENSE.txt
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/NOTICE.txt
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/resources/components.mvel
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/resources/dataformats.mvel
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/resources/languages.mvel
 delete mode 100644 tooling/camel-karaf-docs-maven-plugin/src/main/resources/others.mvel

[camel-karaf] 05/05: use symlinks to camel-karaf specific component doc pages

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

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit e976acc7c1d6405b283ffe3e69d336aab854bd5b
Author: David Jencks <dj...@apache.org>
AuthorDate: Wed Dec 29 21:06:15 2021 -0800

    use symlinks to camel-karaf specific component doc pages
---
 docs/modules/ROOT/pages/blueprint.adoc            |  47 +---
 docs/modules/ROOT/pages/eventadmin-component.adoc | 111 +-------
 docs/modules/ROOT/pages/kura.adoc                 | 300 +---------------------
 docs/modules/ROOT/pages/paxlogging-component.adoc | 115 +--------
 4 files changed, 4 insertions(+), 569 deletions(-)

diff --git a/docs/modules/ROOT/pages/blueprint.adoc b/docs/modules/ROOT/pages/blueprint.adoc
deleted file mode 100644
index 953031b..0000000
--- a/docs/modules/ROOT/pages/blueprint.adoc
+++ /dev/null
@@ -1,46 +0,0 @@
-= Using OSGi blueprint with Camel
-:page-source: components/camel-blueprint/src/main/docs/blueprint.adoc
-
-A custom XML namespace for Blueprint has been created to let you leverage the nice XML dialect.
-Given Blueprint custom namespaces are not standardized yet, this namespace can only be used on the Apache Aries Blueprint
-implementation, which is the one used by Apache Karaf.
-
-== Overview
-
-The XML schema is mostly the same as the one for Spring, so all the XML snippets throughout the documentation
-referring to Spring XML also apply to Blueprint routes.
-
-Here is a very simple route definition using Blueprint:
-
-[source,xml]
-----
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
-        <route>
-            <from uri="timer:test" />
-            <to uri="log:test" />
-        </route>
-    </camelContext>
-
-</blueprint>
-----
-
-There are a few limitations at this point about the supported xml elements (compared to the Spring XML syntax):
-
-- `beanPostProcessor` and `<export>` are specific to Spring and are not in use
-
-However, using Blueprint when you deploy your applications in an OSGi environment has several advantages:
-
-- when upgrading to a new Camel version, you don't have to change the namespace, as the correct version will be
-  selected based on the Camel packages that are imported by your bundle
-- no startup ordering issue with respect to the custom namespaces and your bundles
-- you can use Blueprint property placeholders
-
-
-== Using camel-blueprint
-
-To leverage camel-blueprint in OSGi, you only need the Aries Blueprint bundle and the camel-blueprint bundle,
-in addition to camel-core-xml and its dependencies.
-
-If you use Karaf, you can use the feature named camel-blueprint which will install all the required bundles.
diff --git a/docs/modules/ROOT/pages/blueprint.adoc b/docs/modules/ROOT/pages/blueprint.adoc
new file mode 120000
index 0000000..41fed46
--- /dev/null
+++ b/docs/modules/ROOT/pages/blueprint.adoc
@@ -0,0 +1 @@
+../../../../components/camel-blueprint/src/main/docs/blueprint.adoc
\ No newline at end of file
diff --git a/docs/modules/ROOT/pages/eventadmin-component.adoc b/docs/modules/ROOT/pages/eventadmin-component.adoc
deleted file mode 100644
index 1c08cac..0000000
--- a/docs/modules/ROOT/pages/eventadmin-component.adoc
+++ /dev/null
@@ -1,110 +0,0 @@
-[[eventadmin-component]]
-= OSGi EventAdmin Component
-:page-source: components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
-
-*Since Camel 2.6*
-
-// HEADER START
-*Both producer and consumer is supported*
-// HEADER END
-
-The Eventadmin component can be used in an OSGi environment to receive
-OSGi EventAdmin events and process them.
-
-== Dependencies
-
-Maven users need to add the following dependency to their `pom.xml`
-
-[source,xml]
--------------------------------------------
-<dependency>
-  <groupId>org.apache.camel</groupId>
-  <artifactId>camel-eventadmin</artifactId>
-  <version>${camel-version}</version>
-</dependency>
--------------------------------------------
-
-where `${camel-version`} must be replaced by the actual version of Camel.
-
-== URI format
-
-[source,xml]
---------------------------
-eventadmin:topic[?options]
---------------------------
-
-where `topic` is the name of the topic to listen too.
-
-== URI options
-
-// component options: START
-The OSGi EventAdmin component supports 4 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *bundleContext* (common) | The OSGi BundleContext is automatic injected by Camel |  | BundleContext
-| *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
-|===
-// component options: END
-
-// endpoint options: START
-The OSGi EventAdmin endpoint is configured using URI syntax:
-
-----
-eventadmin:topic
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *topic* | Name of topic to listen or send to |  | String
-|===
-
-
-=== Query Parameters (7 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *send* (common) | Whether to use 'send' or 'synchronous' deliver. Default false (async delivery) | 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
-| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. The value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
-| *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 endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
-|===
-// endpoint options: END
-
-== Message headers
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Name |Type |Message |Description
-| | |
-|=======================================================================
-
-== Message body
-
-The `in` message body will be set to the received Event.
-
-== Example usage
-
-[source,xml]
-------------------------------
-<route>
-    <from uri="eventadmin:*"/>
-    <to uri="stream:out"/>
-</route>
-------------------------------
diff --git a/docs/modules/ROOT/pages/eventadmin-component.adoc b/docs/modules/ROOT/pages/eventadmin-component.adoc
new file mode 120000
index 0000000..15d4950
--- /dev/null
+++ b/docs/modules/ROOT/pages/eventadmin-component.adoc
@@ -0,0 +1 @@
+../../../../components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
\ No newline at end of file
diff --git a/docs/modules/ROOT/pages/kura.adoc b/docs/modules/ROOT/pages/kura.adoc
deleted file mode 100644
index 6fb6246..0000000
--- a/docs/modules/ROOT/pages/kura.adoc
+++ /dev/null
@@ -1,299 +0,0 @@
-[[Kura-EclipseKuracomponent]]
-= Eclipse Kura component
-:page-source: components/camel-kura/src/main/docs/kura.adoc
-
-*Since Camel 2.15*
-
-This documentation page covers the integration options of Camel with the
-https://eclipse.org/kura/[Eclipse Kura] M2M gateway. The common reason
-to deploy Camel routes into the Eclipse Kura is to provide enterprise
-integration patterns and Camel components to the messaging M2M gateway.
-For example you might want to install Kura on Raspberry PI, then read
-temperature from the sensor attached to that Raspberry PI using Kura
-services and finally forward the current temperature value to your data
-center service using Camel EIP and components.
-
-[[Kura-KuraRouteractivator]]
-== KuraRouter activator
-
-Bundles deployed to the Eclipse Kura are usually
-http://eclipse.github.io/kura/doc/hello-example.html#create-java-class[developed
-as bundle activators]. So the easiest way to deploy Apache Camel routes
-into the Kura is to create an OSGi bundle containing the class extending
-`org.apache.camel.kura.KuraRouter` class:
-
-[source,java]
--------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-  @Override
-  public void configure() throws Exception {
-    from("timer:trigger").
-      to("netty-http:http://app.mydatacenter.com/api");
-  }
-
-}
--------------------------------------------------------
-
-Keep in mind that `KuraRouter` implements
-the `org.osgi.framework.BundleActivator` interface, so you need to
-register its `start` and `stop` lifecycle methods
-while http://eclipse.github.io/kura/doc/hello-example.html#create-component-class[creating
-Kura bundle component class].
-
-Kura router starts its own OSGi-aware `CamelContext`. It means that for
-every class extending `KuraRouter`, there will be a dedicated
-`CamelContext` instance. Ideally we recommend to deploy one `KuraRouter`
-per OSGi bundle.
-
-[[Kura-DeployingKuraRouter]]
-=== Deploying KuraRouter
-
-Bundle containing your Kura router class should import the following
-packages in the OSGi manifest:
-
-[source,xml]
---------------------------------------------------------------------------------------------------------------------
-Import-Package: org.osgi.framework;version="1.3.0",
-  org.slf4j;version="1.6.4",
-  org.apache.camel,org.apache.camel.impl,org.apache.camel.core.osgi,org.apache.camel.builder,org.apache.camel.model,
-  org.apache.camel.component.kura
---------------------------------------------------------------------------------------------------------------------
-
-Keep in mind that you don't have to import every Camel component bundle
-you plan to use in your routes, as Camel components are resolved as the
-services on the runtime level.
-
-Before you deploy your router bundle, be sure that you have deployed
-(and started) the following Camel core bundles (using Kura GoGo
-shell)...
-
-[source,xml]
------------------------------------------------------------------------------------------------------------
-install file:///home/user/.m2/repository/org/apache/camel/camel-core/2.15.0/camel-core-2.15.0.jar
-start <camel-core-bundle-id>
-install file:///home/user/.m2/repository/org/apache/camel/camel-core-osgi/2.15.0/camel-core-osgi-2.15.0.jar
-start <camel-core-osgi-bundle-id>
-install file:///home/user/.m2/repository/org/apache/camel/camel-kura/2.15.0/camel-kura-2.15.0.jar 
-start <camel-kura-bundle-id>
------------------------------------------------------------------------------------------------------------
-
-...and all the components you plan to use in your routes:
-
-[source,xml]
------------------------------------------------------------------------------------------------------
-install file:///home/user/.m2/repository/org/apache/camel/camel-stream/2.15.0/camel-stream-2.15.0.jar
-start <camel-stream-bundle-id>
------------------------------------------------------------------------------------------------------
-
-Then finally deploy your router bundle:
-
-[source,xml]
-----------------------------------------------------------------------------------
-install file:///home/user/.m2/repository/com/example/myrouter/1.0/myrouter-1.0.jar
-start <your-bundle-id>
-----------------------------------------------------------------------------------
-
-[[Kura-KuraRouterutilities]]
-=== KuraRouter utilities 
-
- Kura router base class provides many useful utilities. This section
-explores each of them.
-
-[[Kura-SLF4Jlogger]]
-==== SLF4J logger
-
-Kura uses SLF4J facade for logging purposes. Protected member `log`
-returns SLF4J logger instance associated with the given Kura router.
-
-[source,java]
-----------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        log.info("Configuring Camel routes!");
-        ...
-    }
-
-}
-----------------------------------------------
-
-[[Kura-BundleContext]]
-==== BundleContext
-
-Protected member `bundleContext` returns bundle context associated with
-the given Kura router.
-
-[source,java]
----------------------------------------------------------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        ServiceReference<MyService> serviceRef = bundleContext.getServiceReference(LogService.class.getName());
-        MyService myService = bundleContext.getService(serviceRef);
-        ...
-    }
-
-}
----------------------------------------------------------------------------------------------------------------
-
-[[Kura-CamelContext]]
-==== CamelContext
-
-Protected member `camelContext` is the `CamelContext` associated with
-the given Kura router.
-
-[source,java]
-----------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        camelContext.getStatus();
-        ...
-    }
-
-}
-----------------------------------------------
-
-[[Kura-ProducerTemplate]]
-==== ProducerTemplate
-
-Protected member `producerTemplate` is the `ProducerTemplate` instance
-associated with the given Camel context.
-
-[source,java]
------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        producerTemplate.sendBody("jms:temperature", 22.0);
-        ...
-    }
-
-}
------------------------------------------------------------
-
-[[Kura-ConsumerTemplate]]
-==== ConsumerTemplate
-
-Protected member `consumerTemplate` is the `ConsumerTemplate` instance
-associated with the given Camel context.
-
-[source,java]
---------------------------------------------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        double currentTemperature = producerTemplate.receiveBody("jms:temperature", Double.class);
-        ...
-    }
-
-}
---------------------------------------------------------------------------------------------------
-
-[[Kura-OSGiserviceresolver]]
-==== OSGi service resolver
-
-OSGi service resolver (`service(Class<T> serviceType)`) can be used to
-easily retrieve service by type from the OSGi bundle context.
-
-[source,java]
--------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        MyService myService = service(MyService.class);
-        ...
-    }
-
-}
--------------------------------------------------------
-
-If service is not found, a `null` value is returned. If you want your
-application to fail if the service is not available, use
-`requiredService(Class)` method instead. The `requiredService` throws
-`IllegalStateException` if a service cannot be found.
-
-[source,java]
----------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        MyService myService = requiredService(MyService.class);
-        ...
-    }
-
-}
----------------------------------------------------------------
-
-[[Kura-KuraRouteractivatorcallbacks]]
-=== KuraRouter activator callbacks
-
-Kura router comes with the lifecycle callbacks that can be used to
-customize the way the Camel router works. For example to configure the
-`CamelContext` instance associated with the router just before the
-former is started, override `beforeStart` method of the `KuraRouter`
-class:
-
-[source,java]
---------------------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
- 
-  ...
-
-  protected void beforeStart(CamelContext camelContext) {
-    OsgiDefaultCamelContext osgiContext = (OsgiCamelContext) camelContext;
-    osgiContext.setName("NameOfTheRouter");
-  }
-
-}
---------------------------------------------------------------------------
-
-[[Kura-LoadingXMLroutesfromConfigurationAdmin]]
-=== Loading XML routes from ConfigurationAdmin
-
-Sometimes it is desired to read the XML definition of the routes from
-the server configuration. This a common scenario for IoT gateways where
-over-the-air redeployment cost may be significant. To address this
-requirement each `KuraRouter` looks for the
-`kura.camel.BUNDLE-SYMBOLIC-NAME.route` property from the `kura.camel`
-PID using the OSGi ConfigurationAdmin. This approach allows you to
-define Camel XML routes file per deployed `KuraRouter`. In order to
-update a route, just edit an appropriate configuration property and
-restart a bundle associated with it. The content of
-the `kura.camel.BUNDLE-SYMBOLIC-NAME.route` property is expected to be
-Camel XML route file, for example:
-
-[source,java]
-------------------------------------------------------
-<routes xmlns="http://camel.apache.org/schema/spring">
-    <route id="loaded">
-        <from uri="direct:bar"/>
-        <to uri="mock:bar"/>
-    </route>
-</routes>
-------------------------------------------------------
-
- 
-
-[[Kura-DeployingKurarouterasadeclarativeOSGiservice]]
-=== Deploying Kura router as a declarative OSGi service
-
-If you would like to deploy your Kura router as a declarative OSGi
-service, you can use `activate` and `deactivate` methods provided by
-`KuraRouter`.
-
-[source,java]
-----------------------------------------------------------------------------------------------------------------------------------------------
-<scr:component name="org.eclipse.kura.example.camel.MyKuraRouter" activate="activate" deactivate="deactivate" enabled="true" immediate="true">
-  <implementation class="org.eclipse.kura.example.camel.MyKuraRouter"/>
-</scr:component>
-----------------------------------------------------------------------------------------------------------------------------------------------
-
diff --git a/docs/modules/ROOT/pages/kura.adoc b/docs/modules/ROOT/pages/kura.adoc
new file mode 120000
index 0000000..d4d3dfa
--- /dev/null
+++ b/docs/modules/ROOT/pages/kura.adoc
@@ -0,0 +1 @@
+../../../../components/camel-kura/src/main/docs/kura.adoc
\ No newline at end of file
diff --git a/docs/modules/ROOT/pages/paxlogging-component.adoc b/docs/modules/ROOT/pages/paxlogging-component.adoc
deleted file mode 100644
index f469cd9..0000000
--- a/docs/modules/ROOT/pages/paxlogging-component.adoc
+++ /dev/null
@@ -1,114 +0,0 @@
-[[paxlogging-component]]
-= OSGi PAX Logging Component
-:page-source: components/camel-paxlogging/src/main/docs/paxlogging-component.adoc
-
-*Since Camel 2.6*
-
-// HEADER START
-*Only consumer is supported*
-// HEADER END
-
-The PAX Logging component can be used in an OSGi environment to receive
-http://wiki.ops4j.org/display/paxlogging/Pax+Logging[PaxLogging] events
-and process them.
-
-== Dependencies
-
-Maven users need to add the following dependency to their `pom.xml`
-
-[source,xml]
--------------------------------------------
-<dependency>
-  <groupId>org.apache.camel</groupId>
-  <artifactId>camel-paxlogging</artifactId>
-  <version>${camel-version}</version>
-</dependency>
--------------------------------------------
-
-where `${camel-version`} must be replaced by the actual version of Camel.
-
-== URI format
-
-[source,xml]
------------------------------
-paxlogging:appender[?options]
------------------------------
-
-where `appender` is the name of the pax appender that need to be
-configured in the PaxLogging service configuration.
-
-== URI options
-
-
-
-// component options: START
-The OSGi PAX Logging component supports 3 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| 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
-| *bundleContext* (consumer) | The OSGi BundleContext is automatic injected by Camel |  | BundleContext
-| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-|===
-// component options: END
-
-
-
-
-// endpoint options: START
-The OSGi PAX Logging endpoint is configured using URI syntax:
-
-----
-paxlogging:appender
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *appender* | *Required* Appender is the name of the pax appender that need to be configured in the PaxLogging service configuration. |  | String
-|===
-
-
-=== Query Parameters (5 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| 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
-| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. The value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
-| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
-|===
-// endpoint options: END
-
-
-== Message body
-
-The `in` message body will be set to the received PaxLoggingEvent.
-
-== Example usage
-
-[source,xml]
-----------------------------------
-<route>
-    <from uri="paxlogging:camel"/>
-    <to uri="stream:out"/>
-</route>
-----------------------------------
-
-Configuration:
-
-[source,java]
-----------------------------------------------------------
-log4j.rootLogger=INFO, out, osgi:VmLogAppender, osgi:camel
-----------------------------------------------------------
diff --git a/docs/modules/ROOT/pages/paxlogging-component.adoc b/docs/modules/ROOT/pages/paxlogging-component.adoc
new file mode 120000
index 0000000..6be7caa
--- /dev/null
+++ b/docs/modules/ROOT/pages/paxlogging-component.adoc
@@ -0,0 +1 @@
+../../../../components/camel-paxlogging/src/main/docs/paxlogging-component.adoc
\ No newline at end of file

[camel-karaf] 04/05: Generate components/etc tables with Antora

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

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit 85954744fd37077679316522c3b4405148da9433
Author: David Jencks <dj...@apache.org>
AuthorDate: Wed Dec 29 18:38:54 2021 -0800

    Generate components/etc tables with Antora
---
 docs/antora.yml                               |   5 +
 docs/modules/ROOT/examples/js/karaf.js        |  79 +++
 docs/modules/ROOT/pages/components.adoc       | 925 +-------------------------
 docs/modules/ROOT/partials/summary-table.adoc |   7 +
 4 files changed, 115 insertions(+), 901 deletions(-)

diff --git a/docs/antora.yml b/docs/antora.yml
index 55326b0..8c263ad 100644
--- a/docs/antora.yml
+++ b/docs/antora.yml
@@ -22,3 +22,8 @@ prerelease: true
 display_version: Next (Pre-release)
 nav:
 - modules/ROOT/nav.adoc
+
+asciidoc:
+  attributes:
+    requires: "'util=camel-website-util,karaf=xref:js/karaf.js'"
+
diff --git a/docs/modules/ROOT/examples/js/karaf.js b/docs/modules/ROOT/examples/js/karaf.js
new file mode 100644
index 0000000..91d3be4
--- /dev/null
+++ b/docs/modules/ROOT/examples/js/karaf.js
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+const KARAF_GROUPID = 'org.apache.camel.karaf'
+
+module.exports = {
+  v: function (name, kind, $) {
+    return $[kind][name]
+  },
+
+  extensionRef: function (version, module, kind, $) {
+    const thing = $[kind]
+    const name = thing.name.startsWith('bindy') ? 'bindy' : thing.name
+    const pageName = kind === 'other' ? name : `${name}-${kind}`
+    if (thing.groupId === KARAF_GROUPID) {
+      return `xref:${pageName}.adoc[${thing.title}]`
+    }
+    return `xref:${version}@components:${module}:${pageName}.adoc[${thing.title}]`
+  },
+
+  deprecatedFilterComponent: function (items) {
+    return deprecatedFilter(items, 'component')
+  },
+
+  sortComponent: function (items) {
+    return sort(items, 'component')
+  },
+
+  deprecatedFilterDataformat: function (items) {
+    return deprecatedFilter(items, 'dataformat')
+  },
+
+  sortDataformat: function (items) {
+    return sort(items, 'dataformat')
+  },
+
+  deprecatedFilterLanguage: function (items) {
+    return deprecatedFilter(items, 'language')
+  },
+
+  sortLanguage: function (items) {
+    return sort(items, 'language')
+  },
+
+  deprecatedFilterMiscellaneous: function (items) {
+    return deprecatedFilter(items, 'other')
+  },
+
+  sortMiscellaneous: function (items) {
+    return sort(items, 'other')
+  },
+}
+
+function deprecatedFilter (items, kind) {
+  return items.filter((item) => item.$[kind].deprecated === true)
+}
+
+function sort (items, kind) {
+  return items.sort((f1, f2) => {
+      const t1 = f1.$[kind].title.toLowerCase()
+      const t2 = f2.$[kind].title.toLowerCase()
+      return t1 < t2 ? -1 : t1 > t2 ? 1 : 0
+    }
+  )
+}
diff --git a/docs/modules/ROOT/pages/components.adoc b/docs/modules/ROOT/pages/components.adoc
index c902355..3e1adc3 100644
--- a/docs/modules/ROOT/pages/components.adoc
+++ b/docs/modules/ROOT/pages/components.adoc
@@ -4,917 +4,40 @@ Apache Camel Karaf supports the following Camel artifacts as Karaf features
 
 == Camel Components
 
-// components: START
-Number of Camel components: 203 in 203 JAR artifacts (10 deprecated)
+:indexer-module: ROOT
+:indexer-rel-filter: json/components/*.json
+:indexer-kind: component
+:indexer-human-readable-kind: Component
+:indexer-human-readable-kind-plural: components
 
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Component | Since | Description
-
-| xref:next@components::activemq-component.adoc[ActiveMQ] (camel-activemq) +
-`activemq:destinationType:destinationName` | 1.0 | Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.
-
-| xref:next@components::amqp-component.adoc[AMQP] (camel-amqp) +
-`amqp:destinationType:destinationName` | 1.2 | Messaging with AMQP protocol using Apache QPid Client.
-
-| xref:next@components::arangodb-component.adoc[ArangoDb] (camel-arangodb) +
-`arangodb:database` | 3.5 | Perform operations on ArangoDb when used as a Document Database, or as a Graph Database
-
-| xref:next@components::as2-component.adoc[AS2] (camel-as2) +
-`as2:apiName/methodName` | 2.22 | Transfer data securely and reliably using the AS2 protocol (RFC4130).
-
-| xref:next@components::asterisk-component.adoc[Asterisk] (camel-asterisk) +
-`asterisk:name` | 2.18 | Interact with Asterisk PBX Server.
-
-| xref:next@components::ahc-component.adoc[Async HTTP Client (AHC)] (camel-ahc) +
-`ahc:httpUri` | 2.8 | Call external HTTP services using Async Http Client.
-
-| xref:next@components::ahc-ws-component.adoc[Async HTTP Client (AHC) Websocket] (camel-ahc-ws) +
-`ahc-ws:httpUri` | 2.14 | Exchange data with external Websocket servers using Async Http Client.
-
-| xref:next@components::atom-component.adoc[Atom] (camel-atom) +
-`atom:feedUri` | 1.2 | Poll Atom RSS feeds.
-
-| xref:next@components::avro-component.adoc[Avro RPC] (camel-avro-rpc) +
-`avro:transport:host:port/messageName` | 2.10 | Produce or consume Apache Avro RPC services.
-
-| xref:next@components::aws2-athena-component.adoc[AWS Athena] (camel-aws2-athena) +
-`aws2-athena:label` | 3.4 | Access AWS Athena service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-cw-component.adoc[AWS CloudWatch] (camel-aws2-cw) +
-`aws2-cw:namespace` | 3.1 | Sending metrics to AWS CloudWatch using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ddb-component.adoc[AWS DynamoDB] (camel-aws2-ddb) +
-`aws2-ddb:tableName` | 3.1 | Store and retrieve data from AWS DynamoDB service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ec2-component.adoc[AWS Elastic Compute Cloud (EC2)] (camel-aws2-ec2) +
-`aws2-ec2:label` | 3.1 | Manage AWS EC2 instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ecs-component.adoc[AWS Elastic Container Service (ECS)] (camel-aws2-ecs) +
-`aws2-ecs:label` | 3.1 | Manage AWS ECS cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-eks-component.adoc[AWS Elastic Kubernetes Service (EKS)] (camel-aws2-eks) +
-`aws2-eks:label` | 3.1 | Manage AWS EKS cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-eventbridge-component.adoc[AWS Eventbridge] (camel-aws2-eventbridge) +
-`aws2-eventbridge://eventbusNameOrArn` | 3.6 | Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-iam-component.adoc[AWS Identity and Access Management (IAM)] (camel-aws2-iam) +
-`aws2-iam:label` | 3.1 | Manage AWS IAM instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-kms-component.adoc[AWS Key Management Service (KMS)] (camel-aws2-kms) +
-`aws2-kms:label` | 3.1 | Manage keys stored in AWS KMS instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-kinesis-component.adoc[AWS Kinesis] (camel-aws2-kinesis) +
-`aws2-kinesis:streamName` | 3.2 | Consume and produce records from and to AWS Kinesis Streams using AWS SDK version 2.x.
-
-| xref:next@components::aws2-lambda-component.adoc[AWS Lambda] (camel-aws2-lambda) +
-`aws2-lambda:function` | 3.2 | Manage and invoke AWS Lambda functions using AWS SDK version 2.x.
-
-| xref:next@components::aws2-msk-component.adoc[AWS Managed Streaming for Apache Kafka (MSK)] (camel-aws2-msk) +
-`aws2-msk:label` | 3.1 | Manage AWS MSK instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-mq-component.adoc[AWS MQ] (camel-aws2-mq) +
-`aws2-mq:label` | 3.1 | Manage AWS MQ instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-s3-component.adoc[AWS S3 Storage Service] (camel-aws2-s3) +
-`aws2-s3://bucketNameOrArn` | 3.2 | Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
-
-| xref:next@components::aws-secrets-manager-component.adoc[AWS Secrets Manager] (camel-aws-secrets-manager) +
-`aws-secrets-manager:label` | 3.9 | Manage AWS Secrets Manager services using AWS SDK version 2.x.
-
-| xref:next@components::aws2-sts-component.adoc[AWS Security Token Service (STS)] (camel-aws2-sts) +
-`aws2-sts:label` | 3.5 | Manage AWS STS cluster instances using AWS SDK version 2.x.
-
-| xref:next@components::aws2-ses-component.adoc[AWS Simple Email Service (SES)] (camel-aws2-ses) +
-`aws2-ses:from` | 3.1 | Send e-mails through AWS SES service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-sns-component.adoc[AWS Simple Notification System (SNS)] (camel-aws2-sns) +
-`aws2-sns:topicNameOrArn` | 3.1 | Send messages to an AWS Simple Notification Topic using AWS SDK version 2.x.
-
-| xref:next@components::aws2-sqs-component.adoc[AWS Simple Queue Service (SQS)] (camel-aws2-sqs) +
-`aws2-sqs:queueNameOrArn` | 3.1 | Send and receive messages to/from AWS SQS service using AWS SDK version 2.x.
-
-| xref:next@components::aws2-translate-component.adoc[AWS Translate] (camel-aws2-translate) +
-`aws2-translate:label` | 3.1 | Translate texts using AWS Translate and AWS SDK version 2.x.
-
-| xref:next@components::azure-eventhubs-component.adoc[Azure Event Hubs] (camel-azure-eventhubs) +
-`azure-eventhubs:namespace/eventHubName` | 3.5 | Send and receive events to/from Azure Event Hubs using AMQP protocol.
-
-| xref:next@components::azure-storage-blob-component.adoc[Azure Storage Blob Service] (camel-azure-storage-blob) +
-`azure-storage-blob:accountName/containerName` | 3.3 | Store and retrieve blobs from Azure Storage Blob Service.
-
-| xref:next@components::azure-storage-datalake-component.adoc[Azure Storage Datalake Service] (camel-azure-storage-datalake) +
-`azure-storage-datalake:accountName/fileSystemName` | 3.8 | Sends and receives files to/from Azure DataLake Storage.
-
-| xref:next@components::azure-storage-queue-component.adoc[Azure Storage Queue Service] (camel-azure-storage-queue) +
-`azure-storage-queue:accountName/queueName` | 3.3 | Stores and retrieves messages to/from Azure Storage Queue.
-
-| xref:next@components::bean-component.adoc[Bean] (camel-bean) +
-`bean:beanName` | 1.0 | Invoke methods of Java beans stored in Camel registry.
-
-| xref:next@components::bean-validator-component.adoc[Bean Validator] (camel-bean-validator) +
-`bean-validator:label` | 2.3 | Validate the message body using the Java Bean Validation API.
-
-| xref:next@components::beanstalk-component.adoc[Beanstalk] (camel-beanstalk) +
-`beanstalk:connectionSettings` | 2.15 | *deprecated* Retrieve and post-process Beanstalk jobs.
-
-| xref:next@components::box-component.adoc[Box] (camel-box) +
-`box:apiName/methodName` | 2.14 | Upload, download and manage files, folders, groups, collaborations, etc. on box.com.
-
-| xref:next@components::braintree-component.adoc[Braintree] (camel-braintree) +
-`braintree:apiName/methodName` | 2.17 | Process payments using Braintree Payments.
-
-| xref:next@components::browse-component.adoc[Browse] (camel-browse) +
-`browse:name` | 1.3 | Inspect the messages received on endpoints supporting BrowsableEndpoint.
-
-| xref:next@components::chatscript-component.adoc[ChatScript] (camel-chatscript) +
-`chatscript:host:port/botName` | 3.0 | Chat with a ChatScript Server.
-
-| xref:next@components::cm-sms-component.adoc[CM SMS Gateway] (camel-cm-sms) +
-`cm-sms:host` | 2.18 | Send SMS messages via CM SMS Gateway.
-
-| xref:next@components::cmis-component.adoc[CMIS] (camel-cmis) +
-`cmis:cmsUrl` | 2.11 | Read and write data from to/from a CMIS compliant content repositories.
-
-| xref:next@components::coap-component.adoc[CoAP] (camel-coap) +
-`coap:uri` | 2.16 | Send and receive messages to/from COAP capable devices.
-
-| xref:next@components::cometd-component.adoc[CometD] (camel-cometd) +
-`cometd:host:port/channelName` | 2.0 | Offers publish/subscribe, peer-to-peer (via a server), and RPC style messaging using the CometD/Bayeux protocol.
-
-| xref:next@components::consul-component.adoc[Consul] (camel-consul) +
-`consul:apiEndpoint` | 2.18 | Integrate with Consul service discovery and configuration store.
-
-| xref:next@components::controlbus-component.adoc[Control Bus] (camel-controlbus) +
-`controlbus:command:language` | 2.11 | Manage and monitor Camel routes.
-
-| xref:next@components::corda-component.adoc[Corda] (camel-corda) +
-`corda:node` | 2.23 | Perform operations against Corda blockchain platform using corda-rpc library.
-
-| xref:next@components::couchdb-component.adoc[CouchDB] (camel-couchdb) +
-`couchdb:protocol:hostname:port/database` | 2.11 | Consume changesets for inserts, updates and deletes in a CouchDB database, as well as get, save, update and delete documents from a CouchDB database.
-
-| xref:next@components::cron-component.adoc[Cron] (camel-cron) +
-`cron:name` | 3.1 | A generic interface for triggering events at times specified through the Unix cron syntax.
-
-| xref:next@components::crypto-component.adoc[Crypto (JCE)] (camel-crypto) +
-`crypto:cryptoOperation:name` | 2.3 | Sign and verify exchanges using the Signature Service of the Java Cryptographic Extension (JCE).
-
-| xref:next@components::cxf-component.adoc[CXF] (camel-cxf) +
-`cxf:beanId:address` | 1.0 | Expose SOAP WebServices using Apache CXF or connect to external WebServices using CXF WS client.
-
-| xref:next@components::dataformat-component.adoc[Data Format] (camel-dataformat) +
-`dataformat:name:operation` | 2.12 | Use a Camel Data Format as a regular Camel Component.
-
-| xref:next@components::dataset-component.adoc[Dataset] (camel-dataset) +
-`dataset:name` | 1.3 | Provide data for load and soak testing of your Camel application.
-
-| xref:next@components::djl-component.adoc[Deep Java Library] (camel-djl) +
-`djl:application` | 3.3 | Infer Deep Learning models from message exchanges data using Deep Java Library (DJL).
-
-| xref:next@components::digitalocean-component.adoc[DigitalOcean] (camel-digitalocean) +
-`digitalocean:operation` | 2.19 | Manage Droplets and resources within the DigitalOcean cloud.
-
-| xref:next@components::direct-component.adoc[Direct] (camel-direct) +
-`direct:name` | 1.0 | Call another endpoint from the same Camel Context synchronously.
-
-| xref:next@components::disruptor-component.adoc[Disruptor] (camel-disruptor) +
-`disruptor:name` | 2.12 | Provides asynchronous SEDA behavior using LMAX Disruptor.
-
-| xref:next@components::dns-component.adoc[DNS] (camel-dns) +
-`dns:dnsType` | 2.7 | Perform DNS queries using DNSJava.
-
-| xref:next@components::docker-component.adoc[Docker] (camel-docker) +
-`docker:operation` | 2.15 | Manage Docker containers.
-
-| xref:next@components::dozer-component.adoc[Dozer] (camel-dozer) +
-`dozer:name` | 2.15 | Map between Java beans using the Dozer mapping library.
-
-| xref:next@components::drill-component.adoc[Drill] (camel-drill) +
-`drill:host` | 2.19 | Perform queries against an Apache Drill cluster.
-
-| xref:next@components::dropbox-component.adoc[Dropbox] (camel-dropbox) +
-`dropbox:operation` | 2.14 | Upload, download and manage files, folders, groups, collaborations, etc on Dropbox.
-
-| xref:next@components::ehcache-component.adoc[Ehcache] (camel-ehcache) +
-`ehcache:cacheName` | 2.18 | Perform caching operations using Ehcache.
-
-| xref:next@components::elasticsearch-rest-component.adoc[Elasticsearch Rest] (camel-elasticsearch-rest) +
-`elasticsearch-rest:clusterName` | 2.21 | Send requests to ElasticSearch via REST API
-
-| xref:next@components::elsql-component.adoc[ElSQL] (camel-elsql) +
-`elsql:elsqlName:resourceUri` | 2.16 | *deprecated* Use ElSql to define SQL queries. Extends the SQL Component.
-
-| xref:next@components::exec-component.adoc[Exec] (camel-exec) +
-`exec:executable` | 2.3 | Execute commands on the underlying operating system.
-
-| xref:next@components::facebook-component.adoc[Facebook] (camel-facebook) +
-`facebook:methodName` | 2.14 | Send requests to Facebook APIs supported by Facebook4J.
-
-| xref:next@components::file-component.adoc[File] (camel-file) +
-`file:directoryName` | 1.0 | Read and write files.
-
-| xref:next@components::file-watch-component.adoc[File Watch] (camel-file-watch) +
-`file-watch:path` | 3.0 | Get notified about file events in a directory using java.nio.file.WatchService.
-
-| xref:next@components::flatpack-component.adoc[Flatpack] (camel-flatpack) +
-`flatpack:type:resourceUri` | 1.4 | Parse fixed width and delimited files using the FlatPack library.
-
-| xref:next@components::fop-component.adoc[FOP] (camel-fop) +
-`fop:outputType` | 2.10 | Render messages into PDF and other output formats supported by Apache FOP.
-
-| xref:next@components::freemarker-component.adoc[Freemarker] (camel-freemarker) +
-`freemarker:resourceUri` | 2.10 | Transform messages using FreeMarker templates.
-
-| xref:next@components::ftp-component.adoc[FTP] (camel-ftp) +
-`ftp:host:port/directoryName` | 1.1 | Upload and download files to/from FTP servers.
-
-| xref:next@components::ganglia-component.adoc[Ganglia] (camel-ganglia) +
-`ganglia:host:port` | 2.15 | *deprecated* Send metrics to Ganglia monitoring system.
-
-| xref:next@components::git-component.adoc[Git] (camel-git) +
-`git:localPath` | 2.16 | Perform operations on git repositories.
-
-| xref:next@components::github-component.adoc[GitHub] (camel-github) +
-`github:type/branchName` | 2.15 | Interact with the GitHub API.
-
-| xref:next@components::google-bigquery-component.adoc[Google BigQuery] (camel-google-bigquery) +
-`google-bigquery:projectId:datasetId:tableId` | 2.20 | Google BigQuery data warehouse for analytics.
-
-| xref:next@components::google-calendar-component.adoc[Google Calendar] (camel-google-calendar) +
-`google-calendar:apiName/methodName` | 2.15 | Perform various operations on a Google Calendar.
-
-| xref:next@components::google-drive-component.adoc[Google Drive] (camel-google-drive) +
-`google-drive:apiName/methodName` | 2.14 | Manage files in Google Drive.
-
-| xref:next@components::google-mail-component.adoc[Google Mail] (camel-google-mail) +
-`google-mail:apiName/methodName` | 2.15 | Manage messages in Google Mail.
-
-| xref:next@components::google-sheets-component.adoc[Google Sheets] (camel-google-sheets) +
-`google-sheets:apiName/methodName` | 2.23 | Manage spreadsheets in Google Sheets.
-
-| xref:next@components::grape-component.adoc[Grape] (camel-grape) +
-`grape:defaultCoordinates` | 2.16 | Fetch, load and manage additional jars dynamically after Camel Context was started.
-
-| xref:next@components::graphql-component.adoc[GraphQL] (camel-graphql) +
-`graphql:httpUri` | 3.0 | Send GraphQL queries and mutations to external systems.
-
-| xref:next@components::guava-eventbus-component.adoc[Guava EventBus] (camel-guava-eventbus) +
-`guava-eventbus:eventBusRef` | 2.10 | Send and receive messages to/from Guava EventBus.
-
-| xref:next@components::http-component.adoc[HTTP] (camel-http) +
-`http://httpUri` | 2.3 | Send requests to external HTTP servers using Apache HTTP Client 4.x.
-
-| xref:next@components::influxdb-component.adoc[InfluxDB] (camel-influxdb) +
-`influxdb:connectionBean` | 2.18 | Interact with InfluxDB, a time series database.
-
-| xref:next@components::iota-component.adoc[IOTA] (camel-iota) +
-`iota:name` | 2.23 | Manage financial transactions using IOTA distributed ledger.
-
-| xref:next@components::irc-component.adoc[IRC] (camel-irc) +
-`irc:hostname:port` | 1.1 | Send and receive messages to/from and IRC chat.
-
-| xref:next@components::ironmq-component.adoc[IronMQ] (camel-ironmq) +
-`ironmq:queueName` | 2.17 | Send and receive messages to/from IronMQ an elastic and durable hosted message queue as a service.
-
-| xref:next@components::websocket-jsr356-component.adoc[Javax Websocket] (camel-websocket-jsr356) +
-`websocket-jsr356:uri` | 2.23 | Expose websocket endpoints using JSR356.
-
-| xref:next@components::jcache-component.adoc[JCache] (camel-jcache) +
-`jcache:cacheName` | 2.17 | Perform caching operations against JSR107/JCache.
-
-| xref:next@components::jcr-component.adoc[JCR] (camel-jcr) +
-`jcr:host/base` | 1.3 | Read and write nodes to/from a JCR compliant content repository.
-
-| xref:next@components::jdbc-component.adoc[JDBC] (camel-jdbc) +
-`jdbc:dataSourceName` | 1.2 | Access databases through SQL and JDBC.
-
-| xref:next@components::jetty-component.adoc[Jetty] (camel-jetty) +
-`jetty:httpUri` | 1.2 | Expose HTTP endpoints using Jetty 9.
-
-| xref:next@components::websocket-component.adoc[Jetty Websocket] (camel-websocket) +
-`websocket:host:port/resourceUri` | 2.10 | Expose websocket endpoints using Jetty.
-
-| xref:next@components::jing-component.adoc[Jing] (camel-jing) +
-`jing:resourceUri` | 1.1 | *deprecated* Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.
-
-| xref:next@components::jms-component.adoc[JMS] (camel-jms) +
-`jms:destinationType:destinationName` | 1.0 | Sent and receive messages to/from a JMS Queue or Topic.
-
-| xref:next@components::jmx-component.adoc[JMX] (camel-jmx) +
-`jmx:serverURL` | 2.6 | Receive JMX notifications.
-
-| xref:next@components::jolt-component.adoc[JOLT] (camel-jolt) +
-`jolt:resourceUri` | 2.16 | JSON to JSON transformation using JOLT.
-
-| xref:next@components::jooq-component.adoc[JOOQ] (camel-jooq) +
-`jooq:entityType` | 3.0 | Store and retrieve Java objects from an SQL database using JOOQ.
-
-| xref:next@components::jpa-component.adoc[JPA] (camel-jpa) +
-`jpa:entityType` | 1.0 | Store and retrieve Java objects from databases using Java Persistence API (JPA).
-
-| xref:next@components::jslt-component.adoc[JSLT] (camel-jslt) +
-`jslt:resourceUri` | 3.1 | Query or transform JSON payloads using an JSLT.
-
-| xref:next@components::json-validator-component.adoc[JSON Schema Validator] (camel-json-validator) +
-`json-validator:resourceUri` | 2.20 | Validate JSON payloads using NetworkNT JSON Schema.
-
-| xref:next@components::jsonata-component.adoc[JSONata] (camel-jsonata) +
-`jsonata:resourceUri` | 3.5 | Transforms JSON payload using JSONata transformation.
-
-| xref:next@components::jt400-component.adoc[JT400] (camel-jt400) +
-`jt400:userID:password/systemName/objectPath.type` | 1.5 | Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS/400 and iSeries servers.
-
-| xref:next@components::kafka-component.adoc[Kafka] (camel-kafka) +
-`kafka:topic` | 2.13 | Sent and receive messages to/from an Apache Kafka broker.
-
-| xref:next@components::kamelet-component.adoc[Kamelet] (camel-kamelet) +
-`kamelet:templateId/routeId` | 3.8 | To call Kamelets
-
-| xref:next@components::kudu-component.adoc[Kudu] (camel-kudu) +
-`kudu:host:port/tableName` | 3.0 | Interact with Apache Kudu, a free and open source column-oriented data store of the Apache Hadoop ecosystem.
-
-| xref:next@components::language-component.adoc[Language] (camel-language) +
-`language:languageName:resourceUri` | 2.5 | Execute scripts in any of the languages supported by Camel.
-
-| xref:next@components::ldap-component.adoc[LDAP] (camel-ldap) +
-`ldap:dirContextName` | 1.5 | Perform searches on LDAP servers.
-
-| xref:next@components::ldif-component.adoc[LDIF] (camel-ldif) +
-`ldif:ldapConnectionName` | 2.20 | Perform updates on an LDAP server from an LDIF body content.
-
-| xref:next@components::log-component.adoc[Log] (camel-log) +
-`log:loggerName` | 1.1 | Log messages to the underlying logging mechanism.
-
-| xref:next@components::lucene-component.adoc[Lucene] (camel-lucene) +
-`lucene:host:operation` | 2.2 | Perform inserts or queries against Apache Lucene databases.
-
-| xref:next@components::lumberjack-component.adoc[Lumberjack] (camel-lumberjack) +
-`lumberjack:host:port` | 2.18 | Receive logs messages using the Lumberjack protocol.
-
-| xref:next@components::master-component.adoc[Master] (camel-master) +
-`master:namespace:delegateUri` | 2.20 | Have only a single consumer in a cluster consuming from a given endpoint; with automatic failover if the JVM dies.
-
-| xref:next@components::metrics-component.adoc[Metrics] (camel-metrics) +
-`metrics:metricsType:metricsName` | 2.14 | Collect various metrics directly from Camel routes using the DropWizard metrics library.
-
-| xref:next@components::micrometer-component.adoc[Micrometer] (camel-micrometer) +
-`micrometer:metricsType:metricsName` | 2.22 | Collect various metrics directly from Camel routes using the Micrometer library.
-
-| xref:next@components::mina-component.adoc[Mina] (camel-mina) +
-`mina:protocol:host:port` | 2.10 | Socket level networking using TCP or UDP with Apache Mina 2.x.
-
-| xref:next@components::minio-component.adoc[Minio] (camel-minio) +
-`minio:bucketName` | 3.5 | Store and retrieve objects from Minio Storage Service using Minio SDK.
-
-| xref:next@components::mllp-component.adoc[MLLP] (camel-mllp) +
-`mllp:hostname:port` | 2.17 | Communicate with external systems using the MLLP protocol.
-
-| xref:next@components::mock-component.adoc[Mock] (camel-mock) +
-`mock:name` | 1.0 | Test routes and mediation rules using mocks.
-
-| xref:next@components::mongodb-component.adoc[MongoDB] (camel-mongodb) +
-`mongodb:connectionBean` | 2.19 | Perform operations on MongoDB documents and collections.
-
-| xref:next@components::mongodb-gridfs-component.adoc[MongoDB GridFS] (camel-mongodb-gridfs) +
-`mongodb-gridfs:connectionBean` | 2.18 | Interact with MongoDB GridFS.
-
-| xref:next@components::msv-component.adoc[MSV] (camel-msv) +
-`msv:resourceUri` | 1.1 | *deprecated* Validate XML payloads using Multi-Schema Validator (MSV).
-
-| xref:next@components::mustache-component.adoc[Mustache] (camel-mustache) +
-`mustache:resourceUri` | 2.12 | Transform messages using a Mustache template.
-
-| xref:next@components::mvel-component.adoc[MVEL] (camel-mvel) +
-`mvel:resourceUri` | 2.12 | Transform messages using an MVEL template.
-
-| xref:next@components::mybatis-component.adoc[MyBatis] (camel-mybatis) +
-`mybatis:statement` | 2.7 | Performs a query, poll, insert, update or delete in a relational database using MyBatis.
-
-| xref:next@components::nagios-component.adoc[Nagios] (camel-nagios) +
-`nagios:host:port` | 2.3 | *deprecated* Send passive checks to Nagios using JSendNSCA.
-
-| xref:next@components::netty-component.adoc[Netty] (camel-netty) +
-`netty:protocol://host:port` | 2.14 | Socket level networking using TCP or UDP with Netty 4.x.
-
-| xref:next@components::netty-http-component.adoc[Netty HTTP] (camel-netty-http) +
-`netty-http:protocol://host:port/path` | 2.14 | Netty HTTP server and client using the Netty 4.x.
-
-| xref:next@components::nitrite-component.adoc[Nitrite] (camel-nitrite) +
-`nitrite:database` | 3.0 | Access Nitrite databases.
-
-| xref:next@components::nsq-component.adoc[NSQ] (camel-nsq) +
-`nsq:topic` | 2.23 | *deprecated* Send and receive messages from NSQ realtime distributed messaging platform.
-
-| xref:next@components::olingo2-component.adoc[Olingo2] (camel-olingo2) +
-`olingo2:apiName/methodName` | 2.14 | Communicate with OData 2.0 services using Apache Olingo.
-
-| xref:next@components::olingo4-component.adoc[Olingo4] (camel-olingo4) +
-`olingo4:apiName/methodName` | 2.19 | Communicate with OData 4.0 services using Apache Olingo OData API.
-
-| xref:eventadmin-component.adoc[OSGi EventAdmin] (camel-eventadmin) +
-`eventadmin:topic` | 2.6 | The eventadmin component can be used in an OSGi environment to receive OSGi EventAdmin events and process them.
-
-| xref:paxlogging-component.adoc[OSGi PAX Logging] (camel-paxlogging) +
-`paxlogging:appender` | 2.6 | The paxlogging component can be used in an OSGi environment to receive PaxLogging events and process them.
-
-| xref:next@components::paho-component.adoc[Paho] (camel-paho) +
-`paho:topic` | 2.16 | Communicate with MQTT message brokers using Eclipse Paho MQTT Client.
-
-| xref:next@components::pdf-component.adoc[PDF] (camel-pdf) +
-`pdf:operation` | 2.16 | Create, modify or extract content from PDF documents.
-
-| xref:next@components::pgevent-component.adoc[PostgresSQL Event] (camel-pgevent) +
-`pgevent:host:port/database/channel` | 2.15 | Send and receive PostgreSQL events via LISTEN and NOTIFY commands.
-
-| xref:next@components::pg-replication-slot-component.adoc[PostgresSQL Replication Slot] (camel-pg-replication-slot) +
-`pg-replication-slot:host:port/database/slot:outputPlugin` | 3.0 | Poll for PostgreSQL Write-Ahead Log (WAL) records using Streaming Replication Slots.
-
-| xref:next@components::pubnub-component.adoc[PubNub] (camel-pubnub) +
-`pubnub:channel` | 2.19 | Send and receive messages to/from PubNub data stream network for connected devices.
-
-| xref:next@components::quartz-component.adoc[Quartz] (camel-quartz) +
-`quartz:groupName/triggerName` | 2.12 | Schedule sending of messages using the Quartz 2.x scheduler.
-
-| xref:next@components::quickfix-component.adoc[QuickFix] (camel-quickfix) +
-`quickfix:configurationName` | 2.1 | Open a Financial Interchange (FIX) session using an embedded QuickFix/J engine.
-
-| xref:next@components::rabbitmq-component.adoc[RabbitMQ] (camel-rabbitmq) +
-`rabbitmq:exchangeName` | 2.12 | Send and receive messages from RabbitMQ instances.
-
-| xref:next@components::reactive-streams-component.adoc[Reactive Streams] (camel-reactive-streams) +
-`reactive-streams:stream` | 2.19 | Exchange messages with reactive stream processing libraries compatible with the reactive streams standard.
-
-| xref:next@components::ref-component.adoc[Ref] (camel-ref) +
-`ref:name` | 1.2 | Route messages to an endpoint looked up dynamically by name in the Camel Registry.
-
-| xref:next@components::rest-component.adoc[REST] (camel-rest) +
-`rest:method:path:uriTemplate` | 2.14 | Expose REST services or call external REST services.
-
-| xref:next@components::rest-openapi-component.adoc[REST OpenApi] (camel-rest-openapi) +
-`rest-openapi:specificationUri#operationId` | 3.1 | Configure REST producers based on an OpenAPI specification document delegating to a component implementing the RestProducerFactory interface.
-
-| xref:next@components::rest-swagger-component.adoc[REST Swagger] (camel-rest-swagger) +
-`rest-swagger:specificationUri#operationId` | 2.19 | Configure REST producers based on a Swagger (OpenAPI) specification document delegating to a component implementing the RestProducerFactory interface.
-
-| xref:next@components::robotframework-component.adoc[Robot Framework] (camel-robotframework) +
-`robotframework:resourceUri` | 3.0 | Pass camel exchanges to acceptence test written in Robot DSL.
-
-| xref:next@components::rss-component.adoc[RSS] (camel-rss) +
-`rss:feedUri` | 2.0 | Poll RSS feeds.
-
-| xref:next@components::saga-component.adoc[Saga] (camel-saga) +
-`saga:action` | 2.21 | Execute custom actions within a route using the Saga EIP.
-
-| xref:next@components::salesforce-component.adoc[Salesforce] (camel-salesforce) +
-`salesforce:operationName:topicName` | 2.12 | Communicate with Salesforce using Java DTOs.
-
-| xref:next@components::sap-netweaver-component.adoc[SAP NetWeaver] (camel-sap-netweaver) +
-`sap-netweaver:url` | 2.12 | Send requests to SAP NetWeaver Gateway using HTTP.
-
-| xref:next@components::scheduler-component.adoc[Scheduler] (camel-scheduler) +
-`scheduler:name` | 2.15 | Generate messages in specified intervals using java.util.concurrent.ScheduledExecutorService.
-
-| xref:next@components::schematron-component.adoc[Schematron] (camel-schematron) +
-`schematron:path` | 2.15 | Validate XML payload using the Schematron Library.
-
-| xref:next@components::seda-component.adoc[SEDA] (camel-seda) +
-`seda:name` | 1.1 | Asynchronously call another endpoint from any Camel Context in the same JVM.
-
-| xref:next@components::service-component.adoc[Service] (camel-service) +
-`service:delegateUri` | 2.22 | Register a Camel endpoint to a Service Registry (such as Consul, Etcd) and delegate to it.
-
-| xref:next@components::servicenow-component.adoc[ServiceNow] (camel-servicenow) +
-`servicenow:instanceName` | 2.18 | Interact with ServiceNow via its REST API.
-
-| xref:next@components::servlet-component.adoc[Servlet] (camel-servlet) +
-`servlet:contextPath` | 2.0 | Serve HTTP requests by a Servlet.
-
-| xref:next@components::sjms-component.adoc[Simple JMS] (camel-sjms) +
-`sjms:destinationType:destinationName` | 2.11 | Send and receive messages to/from a JMS Queue or Topic using plain JMS 1.x API.
-
-| xref:next@components::sjms2-component.adoc[Simple JMS2] (camel-sjms2) +
-`sjms2:destinationType:destinationName` | 2.19 | Send and receive messages to/from a JMS Queue or Topic using plain JMS 2.x API.
-
-| xref:next@components::sip-component.adoc[SIP] (camel-sip) +
-`sip:uri` | 2.5 | *deprecated* Send and receive messages using the SIP protocol (used in telecommunications).
-
-| xref:next@components::slack-component.adoc[Slack] (camel-slack) +
-`slack:channel` | 2.16 | Send and receive messages to/from Slack.
-
-| xref:next@components::smpp-component.adoc[SMPP] (camel-smpp) +
-`smpp:host:port` | 2.2 | Send and receive SMS messages using a SMSC (Short Message Service Center).
-
-| xref:next@components::snmp-component.adoc[SNMP] (camel-snmp) +
-`snmp:host:port` | 2.1 | Receive traps and poll SNMP (Simple Network Management Protocol) capable devices.
-
-| xref:next@components::solr-component.adoc[Solr] (camel-solr) +
-`solr:url` | 2.9 | Perform operations against Apache Lucene Solr.
-
-| xref:next@components::soroush-component.adoc[Soroush] (camel-soroush) +
-`soroush:action` | 3.0 | *deprecated* Send and receive messages as a Soroush chat bot.
-
-| xref:next@components::splunk-component.adoc[Splunk] (camel-splunk) +
-`splunk:name` | 2.13 | Publish or search for events in Splunk.
-
-| xref:next@components::spring-batch-component.adoc[Spring Batch] (camel-spring-batch) +
-`spring-batch:jobName` | 2.10 | Send messages to Spring Batch for further processing.
-
-| xref:next@components::spring-jdbc-component.adoc[Spring JDBC] (camel-spring-jdbc) +
-`spring-jdbc:dataSourceName` | 3.10 | Access databases through SQL and JDBC with Spring Transaction support.
-
-| xref:next@components::spring-ldap-component.adoc[Spring LDAP] (camel-spring-ldap) +
-`spring-ldap:templateName` | 2.11 | Perform searches in LDAP servers using filters as the message payload.
-
-| xref:next@components::spring-ws-component.adoc[Spring WebService] (camel-spring-ws) +
-`spring-ws:type:lookupKey:webServiceEndpointUri` | 2.6 | Access external web services as a client or expose your own web services.
-
-| xref:next@components::sql-component.adoc[SQL] (camel-sql) +
-`sql:query` | 1.4 | Perform SQL queries using Spring JDBC.
-
-| xref:next@components::ssh-component.adoc[SSH] (camel-ssh) +
-`ssh:host:port` | 2.10 | Execute commands on remote hosts using SSH.
-
-| xref:next@components::stax-component.adoc[StAX] (camel-stax) +
-`stax:contentHandlerClass` | 2.9 | Process XML payloads by a SAX ContentHandler.
-
-| xref:next@components::stomp-component.adoc[Stomp] (camel-stomp) +
-`stomp:destination` | 2.12 | Send and rececive messages to/from STOMP (Simple Text Oriented Messaging Protocol) compliant message brokers.
-
-| xref:next@components::stream-component.adoc[Stream] (camel-stream) +
-`stream:kind` | 1.3 | Read from system-in and write to system-out and system-err streams.
-
-| xref:next@components::string-template-component.adoc[String Template] (camel-stringtemplate) +
-`string-template:resourceUri` | 1.2 | Transform messages using StringTemplate engine.
-
-| xref:next@components::stub-component.adoc[Stub] (camel-stub) +
-`stub:name` | 2.10 | Stub out any physical endpoints while in development or testing.
-
-| xref:next@components::telegram-component.adoc[Telegram] (camel-telegram) +
-`telegram:type` | 2.18 | Send and receive messages acting as a Telegram Bot Telegram Bot API.
-
-| xref:next@components::thrift-component.adoc[Thrift] (camel-thrift) +
-`thrift:host:port/service` | 2.20 | Call and expose remote procedures (RPC) with Apache Thrift data format and serialization mechanism.
-
-| xref:next@components::tika-component.adoc[Tika] (camel-tika) +
-`tika:operation` | 2.19 | Parse documents and extract metadata and text using Apache Tika.
-
-| xref:next@components::timer-component.adoc[Timer] (camel-timer) +
-`timer:timerName` | 1.0 | Generate messages in specified intervals using java.util.Timer.
-
-| xref:next@components::twilio-component.adoc[Twilio] (camel-twilio) +
-`twilio:apiName/methodName` | 2.20 | Interact with Twilio REST APIs using Twilio Java SDK.
-
-| xref:next@components::validator-component.adoc[Validator] (camel-validator) +
-`validator:resourceUri` | 1.1 | Validate the payload using XML Schema and JAXP Validation.
-
-| xref:next@components::velocity-component.adoc[Velocity] (camel-velocity) +
-`velocity:resourceUri` | 1.2 | Transform messages using a Velocity template.
-
-| xref:next@components::vertx-component.adoc[Vert.x] (camel-vertx) +
-`vertx:address` | 2.12 | Send and receive messages to/from Vert.x Event Bus.
-
-| xref:next@components::vm-component.adoc[VM] (camel-vm) +
-`vm:name` | 1.1 | Call another endpoint in the same CamelContext asynchronously.
-
-| xref:next@components::weather-component.adoc[Weather] (camel-weather) +
-`weather:name` | 2.12 | Poll the weather information from Open Weather Map.
-
-| xref:next@components::web3j-component.adoc[Web3j Ethereum Blockchain] (camel-web3j) +
-`web3j:nodeAddress` | 2.22 | Interact with Ethereum nodes using web3j client API.
-
-| xref:next@components::webhook-component.adoc[Webhook] (camel-webhook) +
-`webhook:endpointUri` | 3.0 | Expose webhook endpoints to receive push notifications for other Camel components.
-
-| xref:next@components::wordpress-component.adoc[Wordpress] (camel-wordpress) +
-`wordpress:operation` | 2.21 | Manage posts and users using Wordpress API.
-
-| xref:next@components::workday-component.adoc[Workday] (camel-workday) +
-`workday:entity:path` | 3.1 | Detect and parse documents using Workday.
-
-| xref:next@components::xchange-component.adoc[XChange] (camel-xchange) +
-`xchange:name` | 2.21 | Access market data and trade on Bitcoin and Altcoin exchanges.
-
-| xref:next@components::xj-component.adoc[XJ] (camel-xj) +
-`xj:resourceUri` | 3.0 | Transform JSON and XML message using a XSLT.
-
-| xref:next@components::xmpp-component.adoc[XMPP] (camel-xmpp) +
-`xmpp:host:port/participant` | 1.0 | Send and receive messages to/from an XMPP chat server.
-
-| xref:next@components::xslt-component.adoc[XSLT] (camel-xslt) +
-`xslt:resourceUri` | 1.3 | Transforms XML payload using an XSLT template.
-
-| xref:next@components::xslt-saxon-component.adoc[XSLT Saxon] (camel-xslt-saxon) +
-`xslt-saxon:resourceUri` | 3.0 | Transform XML payloads using an XSLT template using Saxon.
-
-| xref:next@components::yammer-component.adoc[Yammer] (camel-yammer) +
-`yammer:function` | 2.12 | *deprecated* Interact with the Yammer enterprise social network.
-
-| xref:next@components::zendesk-component.adoc[Zendesk] (camel-zendesk) +
-`zendesk:methodName` | 2.19 | Manage Zendesk tickets, users, organizations, etc.
-
-| xref:next@components::zookeeper-component.adoc[ZooKeeper] (camel-zookeeper) +
-`zookeeper:serverUrls/path` | 2.9 | Manage ZooKeeper clusters.
-
-| xref:next@components::zookeeper-master-component.adoc[ZooKeeper Master] (camel-zookeeper-master) +
-`zookeeper-master:groupName:consumerEndpointUri` | 2.19 | Have only a single consumer in a cluster consuming from a given endpoint; with automatic failover if the JVM dies.
-
-|===
-// components: END
+include::partial$summary-table.adoc[]
 
 == Camel Data Formats
 
-// dataformats: START
-Number of Camel data formats: 48 in 40 JAR artifacts (0 deprecated)
-
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Data Format | Since | Description
-
-| xref:next@components:dataformats:any23-dataformat.adoc[Any23] +
-(camel-any23) | 3.0 | Extract RDF data from HTML documents.
-
-| xref:next@components:dataformats:asn1-dataformat.adoc[ASN.1 File] +
-(camel-asn1) | 2.20 | Encode and decode data structures using Abstract Syntax Notation One (ASN.1).
-
-| xref:next@components:dataformats:avro-dataformat.adoc[Avro] +
-(camel-avro) | 2.14 | Serialize and deserialize messages using Apache Avro binary data format.
-
-| xref:next@components:dataformats:avro-jackson-dataformat.adoc[Avro Jackson] +
-(camel-jackson-avro) | 3.10 | Marshal POJOs to Avro and back using Jackson.
-
-| xref:next@components:dataformats:barcode-dataformat.adoc[Barcode] +
-(camel-barcode) | 2.14 | Transform strings to various 1D/2D barcode bitmap formats and back.
-
-| xref:next@components:dataformats:base64-dataformat.adoc[Base64] +
-(camel-base64) | 2.11 | Encode and decode data using Base64.
-
-| xref:next@components:dataformats:beanio-dataformat.adoc[BeanIO] +
-(camel-beanio) | 2.10 | Marshal and unmarshal Java beans to and from flat files (such as CSV, delimited, or fixed length formats).
-
-| xref:next@components:dataformats:bindy-dataformat.adoc[Bindy CSV] +
-(camel-bindy) | 2.0 | Marshal and unmarshal between POJOs and Comma separated values (CSV) format using Camel Bindy
-
-| xref:next@components:dataformats:bindy-dataformat.adoc[Bindy Fixed Length] +
-(camel-bindy) | 2.0 | Marshal and unmarshal between POJOs and fixed field length format using Camel Bindy
-
-| xref:next@components:dataformats:bindy-dataformat.adoc[Bindy Key Value Pair] +
-(camel-bindy) | 2.0 | Marshal and unmarshal between POJOs and key-value pair (KVP) format using Camel Bindy
-
-| xref:next@components:dataformats:cbor-dataformat.adoc[CBOR] +
-(camel-cbor) | 3.0 | Unmarshal a CBOR payload to POJO and back.
-
-| xref:next@components:dataformats:crypto-dataformat.adoc[Crypto (Java Cryptographic Extension)] +
-(camel-crypto) | 2.3 | Encrypt and decrypt messages using Java Cryptography Extension (JCE).
-
-| xref:next@components:dataformats:csv-dataformat.adoc[CSV] +
-(camel-csv) | 1.3 | Handle CSV (Comma Separated Values) payloads.
-
-| xref:next@components:dataformats:fhirJson-dataformat.adoc[FHIR JSon] +
-(camel-fhir) | 2.21 | Marshall and unmarshall FHIR objects to/from JSON.
-
-| xref:next@components:dataformats:fhirXml-dataformat.adoc[FHIR XML] +
-(camel-fhir) | 2.21 | Marshall and unmarshall FHIR objects to/from XML.
+:indexer-module: dataformats
+:indexer-rel-filter: json/dataformats/*.json
+:indexer-kind: dataformat
+:indexer-human-readable-kind: Data Format
+:indexer-human-readable-kind-plural: dataformats
 
-| xref:next@components:dataformats:flatpack-dataformat.adoc[Flatpack] +
-(camel-flatpack) | 2.1 | Marshal and unmarshal Java lists and maps to/from flat files (such as CSV, delimited, or fixed length formats) using Flatpack library.
-
-| xref:next@components:dataformats:grok-dataformat.adoc[Grok] +
-(camel-grok) | 3.0 | Unmarshal unstructured data to objects using Logstash based Grok patterns.
-
-| xref:next@components:dataformats:gzipdeflater-dataformat.adoc[GZip Deflater] +
-(camel-zip-deflater) | 2.0 | Compress and decompress messages using java.util.zip.GZIPStream.
-
-| xref:next@components:dataformats:hl7-dataformat.adoc[HL7] +
-(camel-hl7) | 2.0 | Marshal and unmarshal HL7 (Health Care) model objects using the HL7 MLLP codec.
-
-| xref:next@components:dataformats:ical-dataformat.adoc[iCal] +
-(camel-ical) | 2.12 | Marshal and unmarshal iCal (.ics) documents to/from model objects provided by the iCal4j library.
-
-| xref:next@components:dataformats:jacksonxml-dataformat.adoc[JacksonXML] +
-(camel-jacksonxml) | 2.16 | Unmarshal a XML payloads to POJOs and back using XMLMapper extension of Jackson.
-
-| xref:next@components:dataformats:jaxb-dataformat.adoc[JAXB] +
-(camel-jaxb) | 1.0 | Unmarshal XML payloads to POJOs and back using JAXB2 XML marshalling standard.
-
-| xref:next@components:dataformats:json-fastjson-dataformat.adoc[JSON Fastjson] +
-(camel-fastjson) | 2.20 | Marshal POJOs to JSON and back using Fastjson
-
-| xref:next@components:dataformats:json-gson-dataformat.adoc[JSON Gson] +
-(camel-gson) | 2.10 | Marshal POJOs to JSON and back using Gson
-
-| xref:next@components:dataformats:json-jackson-dataformat.adoc[JSON Jackson] +
-(camel-jackson) | 2.0 | Marshal POJOs to JSON and back using Jackson
-
-| xref:next@components:dataformats:json-johnzon-dataformat.adoc[JSON Johnzon] +
-(camel-johnzon) | 2.18 | Marshal POJOs to JSON and back using Johnzon
-
-| xref:next@components:dataformats:json-jsonb-dataformat.adoc[JSON JSON-B] +
-(camel-jsonb) | 3.7 | Marshal POJOs to JSON and back using JSON-B.
-
-| xref:next@components:dataformats:json-xstream-dataformat.adoc[JSON XStream] +
-(camel-xstream) | 2.0 | Marshal POJOs to JSON and back using XStream
-
-| xref:next@components:dataformats:jsonApi-dataformat.adoc[JSonApi] +
-(camel-jsonapi) | 3.0 | Marshal and unmarshal JSON:API resources using JSONAPI-Converter library.
-
-| xref:next@components:dataformats:lzf-dataformat.adoc[LZF Deflate Compression] +
-(camel-lzf) | 2.17 | Compress and decompress streams using LZF deflate algorithm.
-
-| xref:next@components:dataformats:mime-multipart-dataformat.adoc[MIME Multipart] +
-(camel-mail) | 2.17 | Marshal Camel messages with attachments into MIME-Multipart messages and back.
-
-| xref:next@components:dataformats:pgp-dataformat.adoc[PGP] +
-(camel-crypto) | 2.9 | Encrypt and decrypt messages using Java Cryptographic Extension (JCE) and PGP.
-
-| xref:next@components:dataformats:protobuf-dataformat.adoc[Protobuf] +
-(camel-protobuf) | 2.2 | Serialize and deserialize Java objects using Google's Protocol buffers.
-
-| xref:next@components:dataformats:protobuf-jackson-dataformat.adoc[Protobuf Jackson] +
-(camel-jackson-protobuf) | 3.10 | Marshal POJOs to Protobuf and back using Jackson.
-
-| xref:next@components:dataformats:rss-dataformat.adoc[RSS] +
-(camel-rss) | 2.1 | Transform from ROME SyndFeed Java Objects to XML and vice-versa.
-
-| xref:next@components:dataformats:soapjaxb-dataformat.adoc[SOAP] +
-(camel-soap) | 2.3 | Marshal Java objects to SOAP messages and back.
-
-| xref:next@components:dataformats:syslog-dataformat.adoc[Syslog] +
-(camel-syslog) | 2.6 | Marshall SyslogMessages to RFC3164 and RFC5424 messages and back.
-
-| xref:next@components:dataformats:tarfile-dataformat.adoc[Tar File] +
-(camel-tarfile) | 2.16 | Archive files into tarballs or extract files from tarballs.
-
-| xref:next@components:dataformats:thrift-dataformat.adoc[Thrift] +
-(camel-thrift) | 2.20 | Serialize and deserialize messages using Apache Thrift binary data format.
-
-| xref:next@components:dataformats:tidyMarkup-dataformat.adoc[TidyMarkup] +
-(camel-tagsoup) | 2.0 | Parse (potentially invalid) HTML into valid HTML or DOM.
-
-| xref:next@components:dataformats:univocity-csv-dataformat.adoc[uniVocity CSV] +
-(camel-univocity-parsers) | 2.15 | Marshal and unmarshal Java objects from and to CSV (Comma Separated Values) using UniVocity Parsers.
-
-| xref:next@components:dataformats:univocity-fixed-dataformat.adoc[uniVocity Fixed Length] +
-(camel-univocity-parsers) | 2.15 | Marshal and unmarshal Java objects from and to fixed length records using UniVocity Parsers.
-
-| xref:next@components:dataformats:univocity-tsv-dataformat.adoc[uniVocity TSV] +
-(camel-univocity-parsers) | 2.15 | Marshal and unmarshal Java objects from and to TSV (Tab-Separated Values) records using UniVocity Parsers.
-
-| xref:next@components:dataformats:secureXML-dataformat.adoc[XML Security] +
-(camel-xmlsecurity) | 2.0 | Encrypt and decrypt XML payloads using Apache Santuario.
-
-| xref:next@components:dataformats:xstream-dataformat.adoc[XStream] +
-(camel-xstream) | 1.3 | Marshal and unmarshal POJOs to/from XML using XStream library.
-
-| xref:next@components:dataformats:yaml-snakeyaml-dataformat.adoc[YAML SnakeYAML] +
-(camel-snakeyaml) | 2.17 | Marshal and unmarshal Java objects to and from YAML using SnakeYAML
-
-| xref:next@components:dataformats:zipdeflater-dataformat.adoc[Zip Deflate Compression] +
-(camel-zip-deflater) | 2.12 | Compress and decompress streams using java.util.zip.Deflater and java.util.zip.Inflater.
-
-| xref:next@components:dataformats:zipfile-dataformat.adoc[Zip File] +
-(camel-zipfile) | 2.11 | Compression and decompress streams using java.util.zip.ZipStream.
-|===
-// dataformats: END
+include::partial$summary-table.adoc[]
 
 == Camel Languages
 
-// languages: START
-Number of Camel languages: 20 in 13 JAR artifacts (0 deprecated)
-
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Language | Since | Description
-
-| xref:next@components:languages:bean-language.adoc[Bean Method] +
-(camel-bean) | 1.3 | Calls a Java bean method.
-
-| xref:next@components:languages:constant-language.adoc[Constant] +
-(camel-core-languages) | 1.5 | A fixed value set only once during the route startup.
-
-| xref:next@components:languages:csimple-language.adoc[CSimple] +
-(camel-core-languages) | 3.7 | Evaluate a compiled simple expression.
-
-| xref:next@components:languages:datasonnet-language.adoc[DataSonnet] +
-(camel-datasonnet) | 3.7 | To use DataSonnet scripts for message transformations.
-
-| xref:next@components:languages:exchangeProperty-language.adoc[ExchangeProperty] +
-(camel-core-languages) | 2.0 | Gets a property from the Exchange.
-
-| xref:next@components:languages:file-language.adoc[File] +
-(camel-core-languages) | 1.1 | File related capabilities for the Simple language
-
-| xref:next@components:languages:groovy-language.adoc[Groovy] +
-(camel-groovy) | 1.3 | Evaluates a Groovy script.
-
-| xref:next@components:languages:header-language.adoc[Header] +
-(camel-core-languages) | 1.5 | Gets a header from the Exchange.
-
-| xref:next@components:languages:hl7terser-language.adoc[HL7 Terser] +
-(camel-hl7) | 2.11 | Get the value of a HL7 message field specified by terse location specification syntax.
-
-| xref:next@components:languages:joor-language.adoc[jOOR] +
-(camel-joor) | 3.7 | Evaluates a jOOR (Java compiled once at runtime) expression.
-
-| xref:next@components:languages:jsonpath-language.adoc[JSONPath] +
-(camel-jsonpath) | 2.13 | Evaluates a JSONPath expression against a JSON message body.
-
-| xref:next@components:languages:mvel-language.adoc[MVEL] +
-(camel-mvel) | 2.0 | Evaluates a MVEL template.
-
-| xref:next@components:languages:ognl-language.adoc[OGNL] +
-(camel-ognl) | 1.1 | Evaluates an OGNL expression (Apache Commons OGNL).
-
-| xref:next@components:languages:ref-language.adoc[Ref] +
-(camel-core-languages) | 2.8 | Uses an existing expression from the registry.
-
-| xref:next@components:languages:simple-language.adoc[Simple] +
-(camel-core-languages) | 1.1 | Evaluates a Camel simple expression.
-
-| xref:next@components:languages:spel-language.adoc[SpEL] +
-(camel-spring) | 2.7 | Evaluates a Spring expression (SpEL).
-
-| xref:next@components:languages:tokenize-language.adoc[Tokenize] +
-(camel-core-languages) | 2.0 | Tokenize text payloads using delimiter patterns.
-
-| xref:next@components:languages:xtokenize-language.adoc[XML Tokenize] +
-(camel-xml-jaxp) | 2.14 | Tokenize XML payloads.
-
-| xref:next@components:languages:xpath-language.adoc[XPath] +
-(camel-xpath) | 1.1 | Evaluates an XPath expression against an XML payload.
-
-| xref:next@components:languages:xquery-language.adoc[XQuery] +
-(camel-saxon) | 1.0 | Evaluates an XQuery expressions against an XML payload.
-|===
-// languages: END
+:indexer-module: languages
+:indexer-rel-filter: json/languages/*.json
+:indexer-kind: language
+:indexer-human-readable-kind: Language
+:indexer-human-readable-kind-plural: languages
 
+include::partial$summary-table.adoc[]
 
 == Miscellaneous Extensions
 
-// others: START
-Number of miscellaneous extensions: 19 in 19 JAR artifacts (4 deprecated)
-
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Extension | Since | Description
-
-| xref:next@components:others:aws-xray.adoc[AWS XRay] +
-(camel-aws-xray) | 2.21 | Distributed tracing using AWS XRay
-
-| xref:blueprint.adoc[Blueprint] +
-(camel-blueprint) | 2.4 | Using Camel with OSGi Blueprint
-
-| xref:next@components:others:caffeine-lrucache.adoc[Caffeine Lrucache] +
-(camel-caffeine-lrucache) | 3.0 | *deprecated* Camel Caffeine LRUCache support
-
-| xref:next@components:others:headersmap.adoc[Headersmap] +
-(camel-headersmap) | 2.20 | Fast case-insensitive headers map implementation
-
-| xref:next@components:others:hystrix.adoc[Hystrix] +
-(camel-hystrix) | 2.18 | *deprecated* Circuit Breaker EIP using Netflix Hystrix
-
-| xref:next@components:others:jasypt.adoc[Jasypt] +
-(camel-jasypt) | 2.5 | Security using Jasypt
-
-| xref:kura.adoc[Kura] +
-(camel-kura) | 2.15 | Using Camel with Eclipse Kura (OSGi)
-
-| xref:next@components:others:leveldb.adoc[LevelDB] +
-(camel-leveldb) | 2.10 | Using LevelDB as persistent EIP store
-
-| xref:next@components:others:leveldb-legacy.adoc[LevelDB-legacy] +
-(camel-leveldb-legacy) | 2.10 | *deprecated* Using LevelDB as persistent EIP store
-
-| xref:next@components:others:lra.adoc[LRA] +
-(camel-lra) | 2.21 | Camel saga binding for Long-Running-Action framework
-
-| xref:next@components:others:openapi-java.adoc[Openapi Java] +
-(camel-openapi-java) | 3.1 | Rest-dsl support for using openapi doc
-
-| xref:next@components:others:opentelemetry.adoc[OpenTelemetry] +
-(camel-opentelemetry) | 3.5 | Distributed tracing using OpenTelemetry
-
-| xref:next@components:others:opentracing.adoc[OpenTracing] +
-(camel-opentracing) | 2.19 | Distributed tracing using OpenTracing
-
-| xref:next@components:others:reactor.adoc[Reactor] +
-(camel-reactor) | 2.20 | Reactor based back-end for Camel's reactive streams component
-
-| xref:next@components:others:shiro.adoc[Shiro] +
-(camel-shiro) | 2.5 | Security using Shiro
-
-| xref:next@components:others:swagger-java.adoc[Swagger Java] +
-(camel-swagger-java) | 2.16 | Rest-dsl support for using swagger api-doc
-
-| xref:next@components:others:test-spring.adoc[Test Spring] +
-(camel-test-spring) | 2.10 | *deprecated* Camel unit testing with Spring
-
-| xref:next@components:others:tracing.adoc[Tracing] +
-(camel-tracing) | 3.5 | Distributed tracing common interfaces
-
-| xref:next@components:others:zipkin.adoc[Zipkin] +
-(camel-zipkin) | 2.18 | Distributed message tracing using Zipkin
-|===
-// others: END
+:indexer-module: others
+:indexer-rel-filter: json/others/*.json
+:indexer-kind: other
+:indexer-human-readable-kind: Miscellaneous
+:indexer-human-readable-kind-plural: miscellaneous extensions
 
+include::partial$summary-table.adoc[]
diff --git a/docs/modules/ROOT/partials/summary-table.adoc b/docs/modules/ROOT/partials/summary-table.adoc
new file mode 100644
index 0000000..22b49e1
--- /dev/null
+++ b/docs/modules/ROOT/partials/summary-table.adoc
@@ -0,0 +1,7 @@
+There are indexCount:[relative="{indexer-rel-filter}",family="example"] {indexer-human-readable-kind-plural} in indexUniqueCount:[relative="{indexer-rel-filter}",family="example",format="$.{indexer-kind}.artifactId",contentAs=json] features (indexCount:[relative="{indexer-rel-filter}",family="example",transform=karaf.deprecatedFilter{indexer-human-readable-kind},contentAs=json,requires={requires}] deprecated)
+
+[width="100%",cols="3,3,1,5",options="header"]
+|===
+| {indexer-human-readable-kind} | Feature | Since | Description
+|===
+indexTable::[relative="{indexer-rel-filter}",family="example",cellformats="karaf.extensionRef('{page-component-version}','{indexer-module}','{indexer-kind}',$)|karaf.v('artifactId','{indexer-kind}', $)|karaf.v('firstVersion','{indexer-kind}', $)|util.description($.{indexer-kind})",contentAs=json,transform=karaf.sort{indexer-human-readable-kind},requires={requires}]

[camel-karaf] 02/05: commit generated json files in src/main/resources

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

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit 6b1c168cb530f081d32e7f0147b8460c2a706cc4
Author: David Jencks <dj...@apache.org>
AuthorDate: Tue Dec 28 22:16:05 2021 -0800

    commit generated json files in src/main/resources
---
 .../camel/catalog/karaf/components.properties      | 203 ++++++++++++++++++
 .../camel/catalog/karaf/components/activemq.json   | 228 ++++++++++++++++++++
 .../camel/catalog/karaf/components/ahc-ws.json     |  58 +++++
 .../apache/camel/catalog/karaf/components/ahc.json |  51 +++++
 .../camel/catalog/karaf/components/amqp.json       | 224 ++++++++++++++++++++
 .../camel/catalog/karaf/components/arangodb.json   |  51 +++++
 .../apache/camel/catalog/karaf/components/as2.json |  75 +++++++
 .../camel/catalog/karaf/components/asterisk.json   |  40 ++++
 .../camel/catalog/karaf/components/atom.json       |  58 +++++
 .../camel/catalog/karaf/components/avro.json       |  52 +++++
 .../karaf/components/aws-secrets-manager.json      |  61 ++++++
 .../catalog/karaf/components/aws2-athena.json      |  87 ++++++++
 .../camel/catalog/karaf/components/aws2-cw.json    |  63 ++++++
 .../camel/catalog/karaf/components/aws2-ddb.json   |  71 +++++++
 .../camel/catalog/karaf/components/aws2-ec2.json   |  59 ++++++
 .../camel/catalog/karaf/components/aws2-ecs.json   |  59 ++++++
 .../camel/catalog/karaf/components/aws2-eks.json   |  59 ++++++
 .../catalog/karaf/components/aws2-eventbridge.json |  61 ++++++
 .../camel/catalog/karaf/components/aws2-iam.json   |  59 ++++++
 .../catalog/karaf/components/aws2-kinesis.json     |  89 ++++++++
 .../camel/catalog/karaf/components/aws2-kms.json   |  59 ++++++
 .../catalog/karaf/components/aws2-lambda.json      |  59 ++++++
 .../camel/catalog/karaf/components/aws2-mq.json    |  59 ++++++
 .../camel/catalog/karaf/components/aws2-msk.json   |  59 ++++++
 .../camel/catalog/karaf/components/aws2-s3.json    | 147 +++++++++++++
 .../camel/catalog/karaf/components/aws2-ses.json   |  63 ++++++
 .../camel/catalog/karaf/components/aws2-sns.json   |  76 +++++++
 .../camel/catalog/karaf/components/aws2-sqs.json   | 133 ++++++++++++
 .../camel/catalog/karaf/components/aws2-sts.json   |  59 ++++++
 .../catalog/karaf/components/aws2-translate.json   |  65 ++++++
 .../catalog/karaf/components/azure-eventhubs.json  |  70 ++++++
 .../karaf/components/azure-storage-blob.json       | 109 ++++++++++
 .../karaf/components/azure-storage-datalake.json   | 113 ++++++++++
 .../karaf/components/azure-storage-queue.json      |  76 +++++++
 .../catalog/karaf/components/bean-validator.json   |  45 ++++
 .../camel/catalog/karaf/components/bean.json       |  38 ++++
 .../camel/catalog/karaf/components/beanstalk.json  |  60 ++++++
 .../apache/camel/catalog/karaf/components/box.json |  94 +++++++++
 .../camel/catalog/karaf/components/braintree.json  |  81 +++++++
 .../camel/catalog/karaf/components/browse.json     |  36 ++++
 .../camel/catalog/karaf/components/chatscript.json |  36 ++++
 .../camel/catalog/karaf/components/cm-sms.json     |  36 ++++
 .../camel/catalog/karaf/components/cmis.json       |  46 ++++
 .../camel/catalog/karaf/components/coap.json       |  47 +++++
 .../camel/catalog/karaf/components/cometd.json     |  58 +++++
 .../camel/catalog/karaf/components/consul.json     |  86 ++++++++
 .../camel/catalog/karaf/components/controlbus.json |  38 ++++
 .../camel/catalog/karaf/components/corda.json      |  57 +++++
 .../camel/catalog/karaf/components/couchdb.json    |  47 +++++
 .../camel/catalog/karaf/components/cron.json       |  36 ++++
 .../camel/catalog/karaf/components/crypto.json     |  70 ++++++
 .../apache/camel/catalog/karaf/components/cxf.json |  71 +++++++
 .../camel/catalog/karaf/components/dataformat.json |  33 +++
 .../camel/catalog/karaf/components/dataset.json    |  55 +++++
 .../catalog/karaf/components/digitalocean.json     |  41 ++++
 .../camel/catalog/karaf/components/direct.json     |  42 ++++
 .../camel/catalog/karaf/components/disruptor.json  |  51 +++++
 .../apache/camel/catalog/karaf/components/djl.json |  35 +++
 .../apache/camel/catalog/karaf/components/dns.json |  32 +++
 .../camel/catalog/karaf/components/docker.json     |  71 +++++++
 .../camel/catalog/karaf/components/dozer.json      |  38 ++++
 .../camel/catalog/karaf/components/drill.json      |  36 ++++
 .../camel/catalog/karaf/components/dropbox.json    |  44 ++++
 .../camel/catalog/karaf/components/ehcache.json    |  62 ++++++
 .../karaf/components/elasticsearch-rest.json       |  59 ++++++
 .../camel/catalog/karaf/components/elsql.json      |  84 ++++++++
 .../camel/catalog/karaf/components/eventadmin.json |  38 ++++
 .../camel/catalog/karaf/components/exec.json       |  40 ++++
 .../camel/catalog/karaf/components/facebook.json   | 162 ++++++++++++++
 .../camel/catalog/karaf/components/file-watch.json |  48 +++++
 .../camel/catalog/karaf/components/file.json       | 126 +++++++++++
 .../camel/catalog/karaf/components/flatpack.json   |  59 ++++++
 .../apache/camel/catalog/karaf/components/fop.json |  34 +++
 .../camel/catalog/karaf/components/freemarker.json |  42 ++++
 .../apache/camel/catalog/karaf/components/ftp.json | 147 +++++++++++++
 .../camel/catalog/karaf/components/ganglia.json    |  58 +++++
 .../apache/camel/catalog/karaf/components/git.json |  45 ++++
 .../camel/catalog/karaf/components/github.json     |  62 ++++++
 .../catalog/karaf/components/google-bigquery.json  |  39 ++++
 .../catalog/karaf/components/google-calendar.json  |  93 ++++++++
 .../catalog/karaf/components/google-drive.json     |  98 +++++++++
 .../catalog/karaf/components/google-mail.json      |  85 ++++++++
 .../catalog/karaf/components/google-sheets.json    |  78 +++++++
 .../camel/catalog/karaf/components/grape.json      |  33 +++
 .../camel/catalog/karaf/components/graphql.json    |  43 ++++
 .../catalog/karaf/components/guava-eventbus.json   |  40 ++++
 .../camel/catalog/karaf/components/http.json       | 119 +++++++++++
 .../camel/catalog/karaf/components/influxdb.json   |  40 ++++
 .../camel/catalog/karaf/components/iota.json       |  38 ++++
 .../apache/camel/catalog/karaf/components/irc.json |  62 ++++++
 .../camel/catalog/karaf/components/ironmq.json     |  63 ++++++
 .../camel/catalog/karaf/components/jcache.json     |  60 ++++++
 .../apache/camel/catalog/karaf/components/jcr.json |  48 +++++
 .../camel/catalog/karaf/components/jdbc.json       |  47 +++++
 .../camel/catalog/karaf/components/jetty.json      |  95 +++++++++
 .../camel/catalog/karaf/components/jing.json       |  33 +++
 .../apache/camel/catalog/karaf/components/jms.json | 224 ++++++++++++++++++++
 .../apache/camel/catalog/karaf/components/jmx.json |  60 ++++++
 .../camel/catalog/karaf/components/jolt.json       |  40 ++++
 .../camel/catalog/karaf/components/jooq.json       |  61 ++++++
 .../apache/camel/catalog/karaf/components/jpa.json |  81 +++++++
 .../camel/catalog/karaf/components/jslt.json       |  41 ++++
 .../catalog/karaf/components/json-validator.json   |  39 ++++
 .../camel/catalog/karaf/components/jsonata.json    |  36 ++++
 .../camel/catalog/karaf/components/jt400.json      |  70 ++++++
 .../camel/catalog/karaf/components/kafka.json      | 235 +++++++++++++++++++++
 .../camel/catalog/karaf/components/kamelet.json    |  47 +++++
 .../camel/catalog/karaf/components/kudu.json       |  35 +++
 .../camel/catalog/karaf/components/language.json   |  39 ++++
 .../camel/catalog/karaf/components/ldap.json       |  36 ++++
 .../camel/catalog/karaf/components/ldif.json       |  32 +++
 .../apache/camel/catalog/karaf/components/log.json |  60 ++++++
 .../camel/catalog/karaf/components/lucene.json     |  42 ++++
 .../camel/catalog/karaf/components/lumberjack.json |  38 ++++
 .../camel/catalog/karaf/components/master.json     |  37 ++++
 .../camel/catalog/karaf/components/metrics.json    |  40 ++++
 .../camel/catalog/karaf/components/micrometer.json |  39 ++++
 .../camel/catalog/karaf/components/mina.json       |  86 ++++++++
 .../camel/catalog/karaf/components/minio.json      | 139 ++++++++++++
 .../camel/catalog/karaf/components/mllp.json       |  86 ++++++++
 .../camel/catalog/karaf/components/mock.json       |  45 ++++
 .../catalog/karaf/components/mongodb-gridfs.json   |  48 +++++
 .../camel/catalog/karaf/components/mongodb.json    |  60 ++++++
 .../apache/camel/catalog/karaf/components/msv.json |  43 ++++
 .../camel/catalog/karaf/components/mustache.json   |  41 ++++
 .../camel/catalog/karaf/components/mvel.json       |  38 ++++
 .../camel/catalog/karaf/components/mybatis.json    |  64 ++++++
 .../camel/catalog/karaf/components/nagios.json     |  43 ++++
 .../camel/catalog/karaf/components/netty-http.json | 190 +++++++++++++++++
 .../camel/catalog/karaf/components/netty.json      | 175 +++++++++++++++
 .../camel/catalog/karaf/components/nitrite.json    |  41 ++++
 .../apache/camel/catalog/karaf/components/nsq.json |  51 +++++
 .../camel/catalog/karaf/components/olingo2.json    |  89 ++++++++
 .../camel/catalog/karaf/components/olingo4.json    |  85 ++++++++
 .../camel/catalog/karaf/components/paho.json       |  91 ++++++++
 .../camel/catalog/karaf/components/paxlogging.json |  35 +++
 .../apache/camel/catalog/karaf/components/pdf.json |  40 ++++
 .../karaf/components/pg-replication-slot.json      |  59 ++++++
 .../camel/catalog/karaf/components/pgevent.json    |  42 ++++
 .../camel/catalog/karaf/components/pubnub.json     |  56 +++++
 .../camel/catalog/karaf/components/quartz.json     |  60 ++++++
 .../camel/catalog/karaf/components/quickfix.json   |  43 ++++
 .../camel/catalog/karaf/components/rabbitmq.json   | 151 +++++++++++++
 .../catalog/karaf/components/reactive-streams.json |  48 +++++
 .../apache/camel/catalog/karaf/components/ref.json |  36 ++++
 .../catalog/karaf/components/rest-openapi.json     |  46 ++++
 .../catalog/karaf/components/rest-swagger.json     |  49 +++++
 .../camel/catalog/karaf/components/rest.json       |  56 +++++
 .../catalog/karaf/components/robotframework.json   | 148 +++++++++++++
 .../apache/camel/catalog/karaf/components/rss.json |  58 +++++
 .../camel/catalog/karaf/components/saga.json       |  32 +++
 .../camel/catalog/karaf/components/salesforce.json | 178 ++++++++++++++++
 .../catalog/karaf/components/sap-netweaver.json    |  37 ++++
 .../camel/catalog/karaf/components/scheduler.json  |  53 +++++
 .../camel/catalog/karaf/components/schematron.json |  35 +++
 .../camel/catalog/karaf/components/seda.json       |  57 +++++
 .../camel/catalog/karaf/components/service.json    |  36 ++++
 .../camel/catalog/karaf/components/servicenow.json | 122 +++++++++++
 .../camel/catalog/karaf/components/servlet.json    |  63 ++++++
 .../apache/camel/catalog/karaf/components/sip.json |  77 +++++++
 .../camel/catalog/karaf/components/sjms.json       |  85 ++++++++
 .../camel/catalog/karaf/components/sjms2.json      |  88 ++++++++
 .../camel/catalog/karaf/components/slack.json      |  63 ++++++
 .../camel/catalog/karaf/components/smpp.json       | 113 ++++++++++
 .../camel/catalog/karaf/components/snmp.json       |  69 ++++++
 .../camel/catalog/karaf/components/solr.json       |  51 +++++
 .../camel/catalog/karaf/components/soroush.json    |  53 +++++
 .../camel/catalog/karaf/components/splunk.json     |  77 +++++++
 .../catalog/karaf/components/spring-batch.json     |  37 ++++
 .../catalog/karaf/components/spring-jdbc.json      |  47 +++++
 .../catalog/karaf/components/spring-ldap.json      |  34 +++
 .../camel/catalog/karaf/components/spring-ws.json  |  57 +++++
 .../apache/camel/catalog/karaf/components/sql.json |  79 +++++++
 .../apache/camel/catalog/karaf/components/ssh.json |  81 +++++++
 .../camel/catalog/karaf/components/stax.json       |  32 +++
 .../camel/catalog/karaf/components/stomp.json      |  54 +++++
 .../camel/catalog/karaf/components/stream.json     |  51 +++++
 .../catalog/karaf/components/string-template.json  |  39 ++++
 .../camel/catalog/karaf/components/stub.json       |  57 +++++
 .../camel/catalog/karaf/components/telegram.json   |  66 ++++++
 .../camel/catalog/karaf/components/thrift.json     |  48 +++++
 .../camel/catalog/karaf/components/tika.json       |  36 ++++
 .../camel/catalog/karaf/components/timer.json      |  44 ++++
 .../camel/catalog/karaf/components/twilio.json     | 176 +++++++++++++++
 .../camel/catalog/karaf/components/validator.json  |  42 ++++
 .../camel/catalog/karaf/components/velocity.json   |  41 ++++
 .../camel/catalog/karaf/components/vertx.json      |  43 ++++
 .../apache/camel/catalog/karaf/components/vm.json  |  57 +++++
 .../camel/catalog/karaf/components/weather.json    |  72 +++++++
 .../camel/catalog/karaf/components/web3j.json      | 105 +++++++++
 .../camel/catalog/karaf/components/webhook.json    |  45 ++++
 .../catalog/karaf/components/websocket-jsr356.json |  38 ++++
 .../camel/catalog/karaf/components/websocket.json  |  66 ++++++
 .../camel/catalog/karaf/components/wordpress.json  |  54 +++++
 .../camel/catalog/karaf/components/workday.json    |  40 ++++
 .../camel/catalog/karaf/components/xchange.json    |  36 ++++
 .../apache/camel/catalog/karaf/components/xj.json  |  56 +++++
 .../camel/catalog/karaf/components/xmpp.json       |  54 +++++
 .../camel/catalog/karaf/components/xslt-saxon.json |  55 +++++
 .../camel/catalog/karaf/components/xslt.json       |  49 +++++
 .../camel/catalog/karaf/components/yammer.json     |  74 +++++++
 .../camel/catalog/karaf/components/zendesk.json    |  72 +++++++
 .../catalog/karaf/components/zookeeper-master.json |  41 ++++
 .../camel/catalog/karaf/components/zookeeper.json  |  52 +++++
 .../camel/catalog/karaf/dataformats.properties     |  48 +++++
 .../camel/catalog/karaf/dataformats/any23.json     |  25 +++
 .../camel/catalog/karaf/dataformats/asn1.json      |  23 ++
 .../catalog/karaf/dataformats/avro-jackson.json    |  39 ++++
 .../camel/catalog/karaf/dataformats/avro.json      |  22 ++
 .../camel/catalog/karaf/dataformats/barcode.json   |  25 +++
 .../camel/catalog/karaf/dataformats/base64.json    |  24 +++
 .../camel/catalog/karaf/dataformats/beanio.json    |  29 +++
 .../camel/catalog/karaf/dataformats/bindy-csv.json |  26 +++
 .../catalog/karaf/dataformats/bindy-fixed.json     |  26 +++
 .../camel/catalog/karaf/dataformats/bindy-kvp.json |  26 +++
 .../camel/catalog/karaf/dataformats/cbor.json      |  31 +++
 .../camel/catalog/karaf/dataformats/crypto.json    |  30 +++
 .../camel/catalog/karaf/dataformats/csv.json       |  50 +++++
 .../camel/catalog/karaf/dataformats/fhirJson.json  |  34 +++
 .../camel/catalog/karaf/dataformats/fhirXml.json   |  34 +++
 .../camel/catalog/karaf/dataformats/flatpack.json  |  29 +++
 .../camel/catalog/karaf/dataformats/grok.json      |  25 +++
 .../catalog/karaf/dataformats/gzipdeflater.json    |  21 ++
 .../camel/catalog/karaf/dataformats/hl7.json       |  22 ++
 .../camel/catalog/karaf/dataformats/ical.json      |  22 ++
 .../catalog/karaf/dataformats/jacksonxml.json      |  36 ++++
 .../camel/catalog/karaf/dataformats/jaxb.json      |  40 ++++
 .../catalog/karaf/dataformats/json-fastjson.json   |  22 ++
 .../camel/catalog/karaf/dataformats/json-gson.json |  23 ++
 .../catalog/karaf/dataformats/json-jackson.json    |  41 ++++
 .../catalog/karaf/dataformats/json-johnzon.json    |  23 ++
 .../catalog/karaf/dataformats/json-jsonb.json      |  23 ++
 .../catalog/karaf/dataformats/json-xstream.json    |  23 ++
 .../camel/catalog/karaf/dataformats/jsonApi.json   |  23 ++
 .../camel/catalog/karaf/dataformats/lzf.json       |  22 ++
 .../catalog/karaf/dataformats/mime-multipart.json  |  26 +++
 .../camel/catalog/karaf/dataformats/pgp.json       |  35 +++
 .../karaf/dataformats/protobuf-jackson.json        |  39 ++++
 .../camel/catalog/karaf/dataformats/protobuf.json  |  24 +++
 .../camel/catalog/karaf/dataformats/rss.json       |  21 ++
 .../camel/catalog/karaf/dataformats/secureXML.json |  33 +++
 .../camel/catalog/karaf/dataformats/soapjaxb.json  |  27 +++
 .../camel/catalog/karaf/dataformats/syslog.json    |  21 ++
 .../camel/catalog/karaf/dataformats/tarfile.json   |  25 +++
 .../camel/catalog/karaf/dataformats/thrift.json    |  24 +++
 .../catalog/karaf/dataformats/tidyMarkup.json      |  23 ++
 .../catalog/karaf/dataformats/univocity-csv.json   |  38 ++++
 .../catalog/karaf/dataformats/univocity-fixed.json |  37 ++++
 .../catalog/karaf/dataformats/univocity-tsv.json   |  35 +++
 .../camel/catalog/karaf/dataformats/xstream.json   |  28 +++
 .../catalog/karaf/dataformats/yaml-snakeyaml.json  |  33 +++
 .../catalog/karaf/dataformats/zipdeflater.json     |  22 ++
 .../camel/catalog/karaf/dataformats/zipfile.json   |  25 +++
 .../camel/catalog/karaf/languages.properties       |  20 ++
 .../apache/camel/catalog/karaf/languages/bean.json |  26 +++
 .../camel/catalog/karaf/languages/constant.json    |  24 +++
 .../camel/catalog/karaf/languages/csimple.json     |  24 +++
 .../camel/catalog/karaf/languages/datasonnet.json  |  26 +++
 .../catalog/karaf/languages/exchangeProperty.json  |  23 ++
 .../apache/camel/catalog/karaf/languages/file.json |  24 +++
 .../camel/catalog/karaf/languages/groovy.json      |  23 ++
 .../camel/catalog/karaf/languages/header.json      |  23 ++
 .../camel/catalog/karaf/languages/hl7terser.json   |  23 ++
 .../apache/camel/catalog/karaf/languages/joor.json |  26 +++
 .../camel/catalog/karaf/languages/jsonpath.json    |  30 +++
 .../apache/camel/catalog/karaf/languages/mvel.json |  23 ++
 .../apache/camel/catalog/karaf/languages/ognl.json |  23 ++
 .../apache/camel/catalog/karaf/languages/ref.json  |  23 ++
 .../camel/catalog/karaf/languages/simple.json      |  24 +++
 .../apache/camel/catalog/karaf/languages/spel.json |  23 ++
 .../camel/catalog/karaf/languages/tokenize.json    |  32 +++
 .../camel/catalog/karaf/languages/xpath.json       |  32 +++
 .../camel/catalog/karaf/languages/xquery.json      |  26 +++
 .../camel/catalog/karaf/languages/xtokenize.json   |  25 +++
 .../apache/camel/catalog/karaf/others.properties   |  19 ++
 .../camel/catalog/karaf/others/aws-xray.json       |  15 ++
 .../camel/catalog/karaf/others/blueprint.json      |  15 ++
 .../catalog/karaf/others/caffeine-lrucache.json    |  16 ++
 .../camel/catalog/karaf/others/headersmap.json     |  15 ++
 .../apache/camel/catalog/karaf/others/hystrix.json |  15 ++
 .../apache/camel/catalog/karaf/others/jasypt.json  |  15 ++
 .../apache/camel/catalog/karaf/others/kura.json    |  15 ++
 .../camel/catalog/karaf/others/leveldb-legacy.json |  15 ++
 .../apache/camel/catalog/karaf/others/leveldb.json |  15 ++
 .../org/apache/camel/catalog/karaf/others/lra.json |  15 ++
 .../camel/catalog/karaf/others/openapi-java.json   |  15 ++
 .../camel/catalog/karaf/others/opentelemetry.json  |  15 ++
 .../camel/catalog/karaf/others/opentracing.json    |  15 ++
 .../apache/camel/catalog/karaf/others/reactor.json |  15 ++
 .../apache/camel/catalog/karaf/others/shiro.json   |  15 ++
 .../camel/catalog/karaf/others/swagger-java.json   |  15 ++
 .../camel/catalog/karaf/others/test-spring.json    |  15 ++
 .../apache/camel/catalog/karaf/others/tracing.json |  15 ++
 .../apache/camel/catalog/karaf/others/zipkin.json  |  15 ++
 294 files changed, 15719 insertions(+)

diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties
new file mode 100644
index 0000000..68a9911
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components.properties
@@ -0,0 +1,203 @@
+activemq
+ahc
+ahc-ws
+amqp
+arangodb
+as2
+asterisk
+atom
+avro
+aws-secrets-manager
+aws2-athena
+aws2-cw
+aws2-ddb
+aws2-ec2
+aws2-ecs
+aws2-eks
+aws2-eventbridge
+aws2-iam
+aws2-kinesis
+aws2-kms
+aws2-lambda
+aws2-mq
+aws2-msk
+aws2-s3
+aws2-ses
+aws2-sns
+aws2-sqs
+aws2-sts
+aws2-translate
+azure-eventhubs
+azure-storage-blob
+azure-storage-datalake
+azure-storage-queue
+bean
+bean-validator
+beanstalk
+box
+braintree
+browse
+chatscript
+cm-sms
+cmis
+coap
+cometd
+consul
+controlbus
+corda
+couchdb
+cron
+crypto
+cxf
+dataformat
+dataset
+digitalocean
+direct
+disruptor
+djl
+dns
+docker
+dozer
+drill
+dropbox
+ehcache
+elasticsearch-rest
+elsql
+eventadmin
+exec
+facebook
+file
+file-watch
+flatpack
+fop
+freemarker
+ftp
+ganglia
+git
+github
+google-bigquery
+google-calendar
+google-drive
+google-mail
+google-sheets
+grape
+graphql
+guava-eventbus
+http
+influxdb
+iota
+irc
+ironmq
+jcache
+jcr
+jdbc
+jetty
+jing
+jms
+jmx
+jolt
+jooq
+jpa
+jslt
+json-validator
+jsonata
+jt400
+kafka
+kamelet
+kudu
+language
+ldap
+ldif
+log
+lucene
+lumberjack
+master
+metrics
+micrometer
+mina
+minio
+mllp
+mock
+mongodb
+mongodb-gridfs
+msv
+mustache
+mvel
+mybatis
+nagios
+netty
+netty-http
+nitrite
+nsq
+olingo2
+olingo4
+paho
+paxlogging
+pdf
+pg-replication-slot
+pgevent
+pubnub
+quartz
+quickfix
+rabbitmq
+reactive-streams
+ref
+rest
+rest-openapi
+rest-swagger
+robotframework
+rss
+saga
+salesforce
+sap-netweaver
+scheduler
+schematron
+seda
+service
+servicenow
+servlet
+sip
+sjms
+sjms2
+slack
+smpp
+snmp
+solr
+soroush
+splunk
+spring-batch
+spring-jdbc
+spring-ldap
+spring-ws
+sql
+ssh
+stax
+stomp
+stream
+string-template
+stub
+telegram
+thrift
+tika
+timer
+twilio
+validator
+velocity
+vertx
+vm
+weather
+web3j
+webhook
+websocket
+websocket-jsr356
+wordpress
+workday
+xchange
+xj
+xmpp
+xslt
+xslt-saxon
+yammer
+zendesk
+zookeeper
+zookeeper-master
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/activemq.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/activemq.json
new file mode 100644
index 0000000..1b9a386
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/activemq.json
@@ -0,0 +1,228 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "activemq",
+    "title": "ActiveMQ",
+    "description": "Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.",
+    "deprecated": false,
+    "firstVersion": "1.0.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.activemq.ActiveMQComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-activemq",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "activemq",
+    "extendsScheme": "jms",
+    "syntax": "activemq:destinationType:destinationName",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "brokerURL": { "kind": "property", "displayName": "Broker URL", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the broker URL to use to connect to ActiveMQ. If none configured then localhost:61616 is used by default (however can be overridden by configuration from environment variables)" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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. [...]
+    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "autowired": 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, "autowired": 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 [...]
+    "durableSubscriptionName": { "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 configur [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific [...]
+    "replyTo": { "kind": "property", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 tha [...]
+    "usePooledConnection": { "kind": "property", "displayName": "Use Pooled Connection", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "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 tha [...]
+    "useSingleConnection": { "kind": "property", "displayName": "Use Single Connection", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": 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 ra [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationFiel [...]
+    "artemisConsumerPriority": { "kind": "property", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. N [...]
+    "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 picku [...]
+    "autoStartup": { "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "descri [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 [...]
+    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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).  [...]
+    "replyToDeliveryPersistent": { "kind": "property", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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 b [...]
+    "subscriptionName": { "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 dura [...]
+    "subscriptionShared": { "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 sp [...]
+    "acceptMessagesWhileStopping": { "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while i [...]
+    "allowReplyManagerQuickStop": { "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in the [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The  [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": [...]
+    "eagerLoadingOfProperties": { "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "eagerPoisonBody": { "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties  [...]
+    "exposeListenerSession": { "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consu [...]
+    "replyToSameDestinationAllowed": { "kind": "property", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "taskExecutor": { "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMo [...]
+    "deliveryPersistent": { "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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 us [...]
+    "formatDateHeadersToIso8601": { "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 8 [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "preserveMessageQos": { "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, ins [...]
+    "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, "autowired": 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 (w [...]
+    "replyToConcurrentConsumers": { "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "replyToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 als [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for  [...]
+    "replyToOverride": { "kind": "property", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of s [...]
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 defau [...]
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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, "autowired": 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 i [...]
+    "allowNullBody": { "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 mess [...]
+    "alwaysCopyMessage": { "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 i [...]
+    "correlationProperty": { "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "disableTimeToLive": { "kind": "property", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 r [...]
+    "forceSendOriginalMessage": { "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "includeSentJMSMessageID": { "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly ( [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", " [...]
+    "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, "autowired": 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 c [...]
+    "streamMessageTypeEnabled": { "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message p [...]
+    "allowAutoWiredConnectionFactory": { "kind": "property", "displayName": "Allow Auto Wired Connection Factory", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "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 use [...]
+    "allowAutoWiredDestinationResolver": { "kind": "property", "displayName": "Allow Auto Wired Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "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 w [...]
+    "allowSerializedHeaders": { "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 transferExch [...]
+    "artemisStreamingEnabled": { "kind": "property", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhe [...]
+    "asyncStartListener": { "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. Fo [...]
+    "asyncStopListener": { "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsConfiguration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.Dest [...]
+    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": 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 t [...]
+    "exceptionListener": { "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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 w [...]
+    "includeAllJMSXProperties": { "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encodin [...]
+    "mapJmsMessage": { "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "maxMessagesPerTask": { "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 m [...]
+    "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.Messag [...]
+    "messageCreatedStrategy": { "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when  [...]
+    "messageIdEnabled": { "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 broke [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerC [...]
+    "messageTimestampEnabled": { "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "pubSubNoLocal": { "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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": "duration", "javaType": "long", "deprecated": false, "autowired": 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": "duration", "javaType": "long", "deprecated": false, "autowired": 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 mil [...]
+    "requestTimeoutCheckerInterval": { "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 do [...]
+    "synchronous": { "kind": "property", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "transferException": { "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 consu [...]
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 fi [...]
+    "trustAllPackages": { "kind": "property", "displayName": "Trust All Packages", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": 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 [...]
+    "useMessageIDAsCorrelationID": { "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID  [...]
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional c [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in  [...]
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "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, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "desc [...]
+    "errorHandlerLogStackTrace": { "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 d [...]
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "property", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this f [...]
+    "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionMana [...]
+    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" },
+    "destinationName": { "kind": "path", "displayName": "Destination Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the queue or topic to use as destination" },
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "connectionFactory": { "kind": "parameter", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "autowired": 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": "parameter", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 t [...]
+    "durableSubscriptionName": { "kind": "parameter", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 configu [...]
+    "jmsMessageType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specifi [...]
+    "replyTo": { "kind": "parameter", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "kind": "parameter", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 th [...]
+    "acknowledgementModeName": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationFie [...]
+    "artemisConsumerPriority": { "kind": "parameter", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active.  [...]
+    "asyncConsumer": { "kind": "parameter", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 pick [...]
+    "autoStartup": { "kind": "parameter", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "kind": "parameter", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "descr [...]
+    "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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\/repl [...]
+    "maxConcurrentConsumers": { "kind": "parameter", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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). [...]
+    "replyToDeliveryPersistent": { "kind": "parameter", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "kind": "parameter", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "subscriptionName": { "kind": "parameter", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 dur [...]
+    "subscriptionShared": { "kind": "parameter", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 s [...]
+    "acceptMessagesWhileStopping": { "kind": "parameter", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while  [...]
+    "allowReplyManagerQuickStop": { "kind": "parameter", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in th [...]
+    "consumerType": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The [...]
+    "defaultTaskExecutorType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description" [...]
+    "destinationOptions": { "kind": "parameter", "displayName": "Destination Options", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "prefix": "destination.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Destination Options are a way to provide extended configuration options to a JMS consumer without having to extend the JM [...]
+    "eagerLoadingOfProperties": { "kind": "parameter", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "eagerPoisonBody": { "kind": "parameter", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "exposeListenerSession": { "kind": "parameter", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when cons [...]
+    "replyToSameDestinationAllowed": { "kind": "parameter", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a repl [...]
+    "taskExecutor": { "kind": "parameter", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": 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": "parameter", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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": "parameter", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryM [...]
+    "deliveryPersistent": { "kind": "parameter", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": 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 u [...]
+    "formatDateHeadersToIso8601": { "kind": "parameter", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "preserveMessageQos": { "kind": "parameter", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, in [...]
+    "priority": { "kind": "parameter", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "autowired": 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 ( [...]
+    "replyToConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 [...]
+    "replyToMaxConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 al [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for [...]
+    "replyToOverride": { "kind": "parameter", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "replyToType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of  [...]
+    "requestTimeout": { "kind": "parameter", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 defa [...]
+    "timeToLive": { "kind": "parameter", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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": "parameter", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "allowNullBody": { "kind": "parameter", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 mes [...]
+    "alwaysCopyMessage": { "kind": "parameter", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "correlationProperty": { "kind": "parameter", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 JM [...]
+    "disableTimeToLive": { "kind": "parameter", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "forceSendOriginalMessage": { "kind": "parameter", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "includeSentJMSMessageID": { "kind": "parameter", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly  [...]
+    "replyToCacheLevelName": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration",  [...]
+    "replyToDestinationSelectorName": { "kind": "parameter", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "streamMessageTypeEnabled": { "kind": "parameter", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message  [...]
+    "allowSerializedHeaders": { "kind": "parameter", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 transferExc [...]
+    "artemisStreamingEnabled": { "kind": "parameter", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overh [...]
+    "asyncStartListener": { "kind": "parameter", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. F [...]
+    "asyncStopListener": { "kind": "parameter", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "destinationResolver": { "kind": "parameter", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.Des [...]
+    "errorHandler": { "kind": "parameter", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": 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  [...]
+    "exceptionListener": { "kind": "parameter", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "autowired": 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." },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "idleConsumerLimit": { "kind": "parameter", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "includeAllJMSXProperties": { "kind": "parameter", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "jmsKeyFormatStrategy": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encodi [...]
+    "mapJmsMessage": { "kind": "parameter", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 java [...]
+    "maxMessagesPerTask": { "kind": "parameter", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "messageConverter": { "kind": "parameter", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.Messa [...]
+    "messageCreatedStrategy": { "kind": "parameter", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when [...]
+    "messageIdEnabled": { "kind": "parameter", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 brok [...]
+    "messageListenerContainerFactory": { "kind": "parameter", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListener [...]
+    "messageTimestampEnabled": { "kind": "parameter", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "pubSubNoLocal": { "kind": "parameter", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "receiveTimeout": { "kind": "parameter", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "kind": "parameter", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 mi [...]
+    "requestTimeoutCheckerInterval": { "kind": "parameter", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 d [...]
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 cons [...]
+    "transferExchange": { "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 f [...]
+    "useMessageIDAsCorrelationID": { "kind": "parameter", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID [...]
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional  [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in [...]
+    "errorHandlerLoggingLevel": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "des [...]
+    "errorHandlerLogStackTrace": { "kind": "parameter", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "parameter", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this  [...]
+    "lazyCreateTransactionManager": { "kind": "parameter", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionMan [...]
+    "transactionManager": { "kind": "parameter", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "kind": "parameter", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "kind": "parameter", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc-ws.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc-ws.json
new file mode 100644
index 0000000..49234a1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc-ws.json
@@ -0,0 +1,58 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ahc-ws",
+    "title": "Async HTTP Client (AHC) Websocket",
+    "description": "Exchange data with external Websocket servers using Async Http Client.",
+    "deprecated": false,
+    "firstVersion": "2.14.0",
+    "label": "websocket",
+    "javaType": "org.apache.camel.component.ahc.ws.WsComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ahc-ws",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ahc-ws",
+    "extendsScheme": "ahc",
+    "alternativeSchemes": "ahc-ws,ahc-wss",
+    "syntax": "ahc-ws:httpUri",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "allowJavaSerializedObject": { "kind": "property", "displayName": "Allow Java Serialized Object", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will dese [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "binding": { "kind": "property", "displayName": "Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.ahc.AhcBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel." },
+    "client": { "kind": "property", "displayName": "Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.asynchttpclient.AsyncHttpClient", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom AsyncHttpClient" },
+    "clientConfig": { "kind": "property", "displayName": "Client Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.asynchttpclient.AsyncHttpClientConfig", "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance." },
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL\/TLS configuration options provided through [...]
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The URI to use such as http:\/\/hostname:port\/path" },
+    "bridgeEndpoint": { "kind": "parameter", "displayName": "Bridge Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, then the Exchange.HTTP_URI header is ignored, and use the endpoint's URI for request. You may also set the throwExceptionOnFailure to be false to let the AhcProducer send all the fault response back." },
+    "bufferSize": { "kind": "parameter", "displayName": "Buffer Size", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 4096, "description": "The initial in-memory buffer size used when transferring data between Camel and AHC Client." },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "throwExceptionOnFailure": { "kind": "parameter", "displayName": "Throw Exception On Failure", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Option to disable throwing the AhcOperationFailedException in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code." },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side, and if the caused Exception was send back serialized in the response as a application\/x-java-serialized-object content type (for example using Jetty  [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendMessageOnError": { "kind": "parameter", "displayName": "Send Message On Error", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to send an message if the web-socket listener received an error." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "connectionClose": { "kind": "parameter", "displayName": "Connection Close", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Define if the Connection Close header has to be added to HTTP Request. This parameter is false by default" },
+    "cookieHandler": { "kind": "parameter", "displayName": "Cookie Handler", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.http.base.cookie.CookieHandler", "deprecated": false, "autowired": false, "secret": false, "description": "Configure a cookie handler to maintain a HTTP session" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "useStreaming": { "kind": "parameter", "displayName": "Use Streaming", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To enable streaming to send data as multiple text fragments." },
+    "binding": { "kind": "parameter", "displayName": "Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.ahc.AhcBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel." },
+    "clientConfig": { "kind": "parameter", "displayName": "Client Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.asynchttpclient.AsyncHttpClientConfig", "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance." },
+    "clientConfigOptions": { "kind": "parameter", "displayName": "Client Config Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "clientConfig.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClientConfig using the key\/values from the Map." },
+    "clientConfigRealmOptions": { "kind": "parameter", "displayName": "Client Config Realm Options", "group": "security", "label": "advanced,security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "clientConfig.realm.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClientConfig Realm using the key\/values from the Map." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. This reference overrides any configured SSLContextParameters at the component level. See Using the [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc.json
new file mode 100644
index 0000000..d7d92c2
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ahc.json
@@ -0,0 +1,51 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ahc",
+    "title": "Async HTTP Client (AHC)",
+    "description": "Call external HTTP services using Async Http Client.",
+    "deprecated": false,
+    "firstVersion": "2.8.0",
+    "label": "http",
+    "javaType": "org.apache.camel.component.ahc.AhcComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ahc",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ahc",
+    "extendsScheme": "",
+    "syntax": "ahc:httpUri",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "allowJavaSerializedObject": { "kind": "property", "displayName": "Allow Java Serialized Object", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will dese [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "binding": { "kind": "property", "displayName": "Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.ahc.AhcBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel." },
+    "client": { "kind": "property", "displayName": "Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.asynchttpclient.AsyncHttpClient", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom AsyncHttpClient" },
+    "clientConfig": { "kind": "property", "displayName": "Client Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.asynchttpclient.AsyncHttpClientConfig", "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance." },
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL\/TLS configuration options provided through [...]
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The URI to use such as http:\/\/hostname:port\/path" },
+    "bridgeEndpoint": { "kind": "parameter", "displayName": "Bridge Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, then the Exchange.HTTP_URI header is ignored, and use the endpoint's URI for request. You may also set the throwExceptionOnFailure to be false to let the AhcProducer send all the fault response back." },
+    "bufferSize": { "kind": "parameter", "displayName": "Buffer Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 4096, "description": "The initial in-memory buffer size used when transferring data between Camel and AHC Client." },
+    "connectionClose": { "kind": "parameter", "displayName": "Connection Close", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Define if the Connection Close header has to be added to HTTP Request. This parameter is false by default" },
+    "cookieHandler": { "kind": "parameter", "displayName": "Cookie Handler", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.http.base.cookie.CookieHandler", "deprecated": false, "autowired": false, "secret": false, "description": "Configure a cookie handler to maintain a HTTP session" },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "throwExceptionOnFailure": { "kind": "parameter", "displayName": "Throw Exception On Failure", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Option to disable throwing the AhcOperationFailedException in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code." },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side, and if the caused Exception was send back serialized in the response as a application\/x-java-serialized-object content type (for example using Jett [...]
+    "binding": { "kind": "parameter", "displayName": "Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.ahc.AhcBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel." },
+    "clientConfig": { "kind": "parameter", "displayName": "Client Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.asynchttpclient.AsyncHttpClientConfig", "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance." },
+    "clientConfigOptions": { "kind": "parameter", "displayName": "Client Config Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "clientConfig.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClientConfig using the key\/values from the Map." },
+    "clientConfigRealmOptions": { "kind": "parameter", "displayName": "Client Config Realm Options", "group": "security", "label": "advanced,security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "clientConfig.realm.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure the AsyncHttpClientConfig Realm using the key\/values from the Map." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. This reference overrides any configured SSLContextParameters at the component level. See Using the [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/amqp.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/amqp.json
new file mode 100644
index 0000000..830d863
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/amqp.json
@@ -0,0 +1,224 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "amqp",
+    "title": "AMQP",
+    "description": "Messaging with AMQP protocol using Apache QPid Client.",
+    "deprecated": false,
+    "firstVersion": "1.2.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.amqp.AMQPComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-amqp",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "amqp",
+    "extendsScheme": "jms",
+    "syntax": "amqp:destinationType:destinationName",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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. [...]
+    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "autowired": 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, "autowired": 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 [...]
+    "durableSubscriptionName": { "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 configur [...]
+    "includeAmqpAnnotations": { "kind": "property", "displayName": "Include AMQP Annotations", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include AMQP annotations when mapping from AMQP to Camel Message. Setting this to true maps AMQP message annotations that contain a JMS_AMQP_MA_ prefix to message headers. D [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific [...]
+    "replyTo": { "kind": "property", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 tha [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationFiel [...]
+    "artemisConsumerPriority": { "kind": "property", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. N [...]
+    "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 picku [...]
+    "autoStartup": { "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "descri [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 [...]
+    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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).  [...]
+    "replyToDeliveryPersistent": { "kind": "property", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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 b [...]
+    "subscriptionName": { "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 dura [...]
+    "subscriptionShared": { "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 sp [...]
+    "acceptMessagesWhileStopping": { "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while i [...]
+    "allowReplyManagerQuickStop": { "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in the [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The  [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": [...]
+    "eagerLoadingOfProperties": { "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "eagerPoisonBody": { "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties  [...]
+    "exposeListenerSession": { "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consu [...]
+    "replyToSameDestinationAllowed": { "kind": "property", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "taskExecutor": { "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMo [...]
+    "deliveryPersistent": { "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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 us [...]
+    "formatDateHeadersToIso8601": { "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 8 [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "preserveMessageQos": { "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, ins [...]
+    "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, "autowired": 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 (w [...]
+    "replyToConcurrentConsumers": { "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "replyToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 als [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for  [...]
+    "replyToOverride": { "kind": "property", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of s [...]
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 defau [...]
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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, "autowired": 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 i [...]
+    "allowNullBody": { "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 mess [...]
+    "alwaysCopyMessage": { "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 i [...]
+    "correlationProperty": { "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "disableTimeToLive": { "kind": "property", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 r [...]
+    "forceSendOriginalMessage": { "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "includeSentJMSMessageID": { "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly ( [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", " [...]
+    "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, "autowired": 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 c [...]
+    "streamMessageTypeEnabled": { "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message p [...]
+    "allowAutoWiredConnectionFactory": { "kind": "property", "displayName": "Allow Auto Wired Connection Factory", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "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 use [...]
+    "allowAutoWiredDestinationResolver": { "kind": "property", "displayName": "Allow Auto Wired Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "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 w [...]
+    "allowSerializedHeaders": { "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 transferExch [...]
+    "artemisStreamingEnabled": { "kind": "property", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhe [...]
+    "asyncStartListener": { "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. Fo [...]
+    "asyncStopListener": { "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsConfiguration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.Dest [...]
+    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": 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 t [...]
+    "exceptionListener": { "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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 w [...]
+    "includeAllJMSXProperties": { "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encodin [...]
+    "mapJmsMessage": { "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "maxMessagesPerTask": { "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 m [...]
+    "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.Messag [...]
+    "messageCreatedStrategy": { "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when  [...]
+    "messageIdEnabled": { "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 broke [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerC [...]
+    "messageTimestampEnabled": { "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "pubSubNoLocal": { "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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": "duration", "javaType": "long", "deprecated": false, "autowired": 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": "duration", "javaType": "long", "deprecated": false, "autowired": 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 mil [...]
+    "requestTimeoutCheckerInterval": { "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 do [...]
+    "synchronous": { "kind": "property", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "transferException": { "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 consu [...]
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 fi [...]
+    "useMessageIDAsCorrelationID": { "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID  [...]
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional c [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in  [...]
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "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, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "desc [...]
+    "errorHandlerLogStackTrace": { "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 d [...]
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "property", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this f [...]
+    "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionMana [...]
+    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" },
+    "destinationName": { "kind": "path", "displayName": "Destination Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the queue or topic to use as destination" },
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "connectionFactory": { "kind": "parameter", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "autowired": 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": "parameter", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 t [...]
+    "durableSubscriptionName": { "kind": "parameter", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 configu [...]
+    "jmsMessageType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specifi [...]
+    "replyTo": { "kind": "parameter", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "kind": "parameter", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 th [...]
+    "acknowledgementModeName": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationFie [...]
+    "artemisConsumerPriority": { "kind": "parameter", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active.  [...]
+    "asyncConsumer": { "kind": "parameter", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 pick [...]
+    "autoStartup": { "kind": "parameter", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "kind": "parameter", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "descr [...]
+    "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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\/repl [...]
+    "maxConcurrentConsumers": { "kind": "parameter", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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). [...]
+    "replyToDeliveryPersistent": { "kind": "parameter", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "kind": "parameter", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "subscriptionName": { "kind": "parameter", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 dur [...]
+    "subscriptionShared": { "kind": "parameter", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 s [...]
+    "acceptMessagesWhileStopping": { "kind": "parameter", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while  [...]
+    "allowReplyManagerQuickStop": { "kind": "parameter", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in th [...]
+    "consumerType": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The [...]
+    "defaultTaskExecutorType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description" [...]
+    "eagerLoadingOfProperties": { "kind": "parameter", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "eagerPoisonBody": { "kind": "parameter", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "exposeListenerSession": { "kind": "parameter", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when cons [...]
+    "replyToSameDestinationAllowed": { "kind": "parameter", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a repl [...]
+    "taskExecutor": { "kind": "parameter", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": 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": "parameter", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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": "parameter", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryM [...]
+    "deliveryPersistent": { "kind": "parameter", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": 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 u [...]
+    "formatDateHeadersToIso8601": { "kind": "parameter", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "preserveMessageQos": { "kind": "parameter", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, in [...]
+    "priority": { "kind": "parameter", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "autowired": 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 ( [...]
+    "replyToConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 [...]
+    "replyToMaxConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 al [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for [...]
+    "replyToOverride": { "kind": "parameter", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "replyToType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of  [...]
+    "requestTimeout": { "kind": "parameter", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 defa [...]
+    "timeToLive": { "kind": "parameter", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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": "parameter", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "allowNullBody": { "kind": "parameter", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 mes [...]
+    "alwaysCopyMessage": { "kind": "parameter", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "correlationProperty": { "kind": "parameter", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 JM [...]
+    "disableTimeToLive": { "kind": "parameter", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "forceSendOriginalMessage": { "kind": "parameter", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "includeSentJMSMessageID": { "kind": "parameter", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly  [...]
+    "replyToCacheLevelName": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration",  [...]
+    "replyToDestinationSelectorName": { "kind": "parameter", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "streamMessageTypeEnabled": { "kind": "parameter", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message  [...]
+    "allowSerializedHeaders": { "kind": "parameter", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 transferExc [...]
+    "artemisStreamingEnabled": { "kind": "parameter", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overh [...]
+    "asyncStartListener": { "kind": "parameter", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. F [...]
+    "asyncStopListener": { "kind": "parameter", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "destinationResolver": { "kind": "parameter", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.Des [...]
+    "errorHandler": { "kind": "parameter", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": 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  [...]
+    "exceptionListener": { "kind": "parameter", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "autowired": 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." },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "idleConsumerLimit": { "kind": "parameter", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "includeAllJMSXProperties": { "kind": "parameter", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "jmsKeyFormatStrategy": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encodi [...]
+    "mapJmsMessage": { "kind": "parameter", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 java [...]
+    "maxMessagesPerTask": { "kind": "parameter", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "messageConverter": { "kind": "parameter", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.Messa [...]
+    "messageCreatedStrategy": { "kind": "parameter", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when [...]
+    "messageIdEnabled": { "kind": "parameter", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 brok [...]
+    "messageListenerContainerFactory": { "kind": "parameter", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListener [...]
+    "messageTimestampEnabled": { "kind": "parameter", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "pubSubNoLocal": { "kind": "parameter", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "receiveTimeout": { "kind": "parameter", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "kind": "parameter", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 mi [...]
+    "requestTimeoutCheckerInterval": { "kind": "parameter", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 d [...]
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 cons [...]
+    "transferExchange": { "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 f [...]
+    "useMessageIDAsCorrelationID": { "kind": "parameter", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID [...]
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional  [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in [...]
+    "errorHandlerLoggingLevel": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "des [...]
+    "errorHandlerLogStackTrace": { "kind": "parameter", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "parameter", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this  [...]
+    "lazyCreateTransactionManager": { "kind": "parameter", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionMan [...]
+    "transactionManager": { "kind": "parameter", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "kind": "parameter", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "kind": "parameter", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/arangodb.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/arangodb.json
new file mode 100644
index 0000000..9b2be9d
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/arangodb.json
@@ -0,0 +1,51 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "arangodb",
+    "title": "ArangoDb",
+    "description": "Perform operations on ArangoDb when used as a Document Database, or as a Graph Database",
+    "deprecated": false,
+    "firstVersion": "3.5.0",
+    "label": "database,nosql",
+    "javaType": "org.apache.camel.component.arangodb.ArangoDbComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-arangodb",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "arangodb",
+    "extendsScheme": "",
+    "syntax": "arangodb:database",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "documentCollection": { "kind": "property", "displayName": "Document Collection", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Collection name, when using ArangoDb as a Document Database. Set the documentCollection name when u [...]
+    "edgeCollection": { "kind": "property", "displayName": "Edge Collection", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the edgeCollection name to perfor [...]
+    "graph": { "kind": "property", "displayName": "Graph", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Graph name, when using ArangoDb as a Graph Database. Combine this attribute with one of the two attributes vertexCollection an [...]
+    "host": { "kind": "property", "displayName": "Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB host. If host and port are default, this field is Optional." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.arangodb.ArangoDbOperation", "enum": [ "SAVE_DOCUMENT", "FIND_DOCUMENT_BY_KEY", "UPDATE_DOCUMENT", "DELETE_DOCUMENT", "AQL_QUERY", "SAVE_VERTEX", "FIND_VERTEX_BY_KEY", "UPDATE_VERTEX", "DELETE_VERTEX", "SAVE_EDGE", "FIND_EDGE_BY_KEY", "UPDATE_EDGE", "DELETE_EDGE" ], "deprecated": false, "autowired": false [...]
+    "port": { "kind": "property", "displayName": "Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB exposed port. If host and port are default, this field is Optional." },
+    "vertexCollection": { "kind": "property", "displayName": "Vertex Collection", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the vertexCollection name to  [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB password. If user and password are default, this field is Optional." },
+    "user": { "kind": "property", "displayName": "User", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB user. If user and password are default, this field is Optional." }
+  },
+  "properties": {
+    "database": { "kind": "path", "displayName": "Database", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "database name" },
+    "documentCollection": { "kind": "parameter", "displayName": "Document Collection", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Collection name, when using ArangoDb as a Document Database. Set the documentCollection name when  [...]
+    "edgeCollection": { "kind": "parameter", "displayName": "Edge Collection", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the edgeCollection name to perfo [...]
+    "graph": { "kind": "parameter", "displayName": "Graph", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Graph name, when using ArangoDb as a Graph Database. Combine this attribute with one of the two attributes vertexCollection a [...]
+    "host": { "kind": "parameter", "displayName": "Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB host. If host and port are default, this field is Optional." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.arangodb.ArangoDbOperation", "enum": [ "SAVE_DOCUMENT", "FIND_DOCUMENT_BY_KEY", "UPDATE_DOCUMENT", "DELETE_DOCUMENT", "AQL_QUERY", "SAVE_VERTEX", "FIND_VERTEX_BY_KEY", "UPDATE_VERTEX", "DELETE_VERTEX", "SAVE_EDGE", "FIND_EDGE_BY_KEY", "UPDATE_EDGE", "DELETE_EDGE" ], "deprecated": false, "autowired": fals [...]
+    "port": { "kind": "parameter", "displayName": "Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB exposed port. If host and port are default, this field is Optional." },
+    "vertexCollection": { "kind": "parameter", "displayName": "Vertex Collection", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the vertexCollection name to [...]
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB password. If user and password are default, this field is Optional." },
+    "user": { "kind": "parameter", "displayName": "User", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.arangodb.ArangoDbConfiguration", "configurationField": "configuration", "description": "ArangoDB user. If user and password are default, this field is Optional." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/as2.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/as2.json
new file mode 100644
index 0000000..5894f18
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/as2.json
@@ -0,0 +1,75 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "as2",
+    "title": "AS2",
+    "description": "Transfer data securely and reliably using the AS2 protocol (RFC4130).",
+    "deprecated": false,
+    "deprecationNote": "",
+    "firstVersion": "2.22.0",
+    "label": "file",
+    "javaType": "org.apache.camel.component.as2.AS2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-as2",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "as2",
+    "extendsScheme": "",
+    "syntax": "as2:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.as2.AS2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" }
+  },
+  "properties": {
+    "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.as2.internal.AS2ApiName", "enum": [ "CLIENT", "SERVER" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "What kind of operation to perform" },
+    "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "What sub operation to use for the selected operation" },
+    "as2From": { "kind": "parameter", "displayName": "As2 From", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value of the AS2From header of AS2 message." },
+    "as2MessageStructure": { "kind": "parameter", "displayName": "As2 Message Structure", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.as2.api.AS2MessageStructure", "enum": [ "PLAIN", "SIGNED", "ENCRYPTED", "SIGNED_ENCRYPTED", "PLAIN_COMPRESSED", "SIGNED_COMPRESSED", "ENCRYPTED_COMPRESSED", "ENCRYPTED_COMPRESSED_SIGNED" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.compo [...]
+    "as2To": { "kind": "parameter", "displayName": "As2 To", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value of the AS2To header of AS2 message." },
+    "as2Version": { "kind": "parameter", "displayName": "As2 Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "1.0", "1.1" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1.1", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The version of the AS2 protocol." },
+    "attachedFileName": { "kind": "parameter", "displayName": "Attached File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The name of the attached file" },
+    "clientFqdn": { "kind": "parameter", "displayName": "Client Fqdn", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel.apache.org", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The Client Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint." },
+    "compressionAlgorithm": { "kind": "parameter", "displayName": "Compression Algorithm", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.as2.api.AS2CompressionAlgorithm", "enum": [ "ZLIB" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The algorithm used to compress EDI message." },
+    "decryptingPrivateKey": { "kind": "parameter", "displayName": "Decrypting Private Key", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.security.PrivateKey", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The key used to encrypt the EDI message." },
+    "dispositionNotificationTo": { "kind": "parameter", "displayName": "Disposition Notification To", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value of the Disposition-Notification-To header. Assigning a value to this parameter requests a mes [...]
+    "ediMessageTransferEncoding": { "kind": "parameter", "displayName": "Edi Message Transfer Encoding", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The transfer encoding of EDI message." },
+    "ediMessageType": { "kind": "parameter", "displayName": "Edi Message Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.http.entity.ContentType", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The content type of EDI message. One of application\/edifact, application\/edi-x12, application\/edi-consent" },
+    "encryptingAlgorithm": { "kind": "parameter", "displayName": "Encrypting Algorithm", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.as2.api.AS2EncryptionAlgorithm", "enum": [ "AES128_CBC", "AES192_CBC", "AES256_CBC", "AES128_CCM", "AES192_CCM", "AES256_CCM", "AES128_GCM", "AES192_GCM", "AES256_GCM", "CAMELLIA128_CBC", "CAMELLIA192_CBC", "CAMELLIA256_CBC", "CAST5_CBC", "DES_CBC", "DES_EDE3_CBC", "GOST28147_GCFB", "IDEA_CBC" [...]
+    "encryptingCertificateChain": { "kind": "parameter", "displayName": "Encrypting Certificate Chain", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.security.cert.Certificate[]", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The chain of certificates used to encrypt EDI message." },
+    "from": { "kind": "parameter", "displayName": "From", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value of the From header of AS2 message." },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "mdnMessageTemplate": { "kind": "parameter", "displayName": "Mdn Message Template", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The template used to format MDN message" },
+    "requestUri": { "kind": "parameter", "displayName": "Request Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "\/", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The request URI of EDI message." },
+    "server": { "kind": "parameter", "displayName": "Server", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Camel AS2 Server Endpoint", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value included in the Server message header identifying the AS2 Server." },
+    "serverFqdn": { "kind": "parameter", "displayName": "Server Fqdn", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel.apache.org", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The Server Fully Qualified Domain Name (FQDN). Used in message ids sent by endpoint." },
+    "serverPortNumber": { "kind": "parameter", "displayName": "Server Port Number", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The port number of server." },
+    "signedReceiptMicAlgorithms": { "kind": "parameter", "displayName": "Signed Receipt Mic Algorithms", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.lang.String[]", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The list of algorithms, in order of preference, requested to generate a message integrity check (MI [...]
+    "signingAlgorithm": { "kind": "parameter", "displayName": "Signing Algorithm", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.as2.api.AS2SignatureAlgorithm", "enum": [ "SHA3_224WITHRSA", "SHA3_256WITHRSA", "SHA3_384withRSA", "SHA3_512WITHRSA", "MD5WITHRSA", "SHA1WITHRSA", "MD2WITHRSA", "SHA224WITHRSA", "SHA256WITHRSA", "SHA384WITHRSA", "SHA512WITHRSA", "RIPEMD128WITHRSA", "RIPEMD160WITHRSA", "RIPEMD256WITHRSA", "SHA224WITH [...]
+    "signingCertificateChain": { "kind": "parameter", "displayName": "Signing Certificate Chain", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.security.cert.Certificate[]", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The chain of certificates used to sign EDI message." },
+    "signingPrivateKey": { "kind": "parameter", "displayName": "Signing Private Key", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.security.PrivateKey", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The key used to sign the EDI message." },
+    "subject": { "kind": "parameter", "displayName": "Subject", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value of Subject header of AS2 message." },
+    "targetHostname": { "kind": "parameter", "displayName": "Target Hostname", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The host name (IP or DNS name) of target host." },
+    "targetPortNumber": { "kind": "parameter", "displayName": "Target Port Number", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The port number of target host. -1 indicates the scheme default port." },
+    "userAgent": { "kind": "parameter", "displayName": "User Agent", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Camel AS2 Client Endpoint", "configurationClass": "org.apache.camel.component.as2.AS2Configuration", "configurationField": "configuration", "description": "The value included in the User-Agent message header identifying the AS2 user agent." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  },
+  "apis": {
+    "client": { "consumerOnly": false, "producerOnly": true, "description": "Sends EDI Messages over HTTP", "methods": { "send": { "description": "Send ediMessage to trading partner", "signatures": [ "org.apache.http.protocol.HttpCoreContext send(String ediMessage, String requestUri, String subject, String from, String as2From, String as2To, org.apache.camel.component.as2.api.AS2MessageStructure as2MessageStructure, org.apache.http.entity.ContentType ediMessageContentType, String ediMess [...]
+    "server": { "consumerOnly": true, "producerOnly": false, "description": "Receives EDI Messages over HTTP", "methods": { "listen": { "description": "", "signatures": [ "void listen(String requestUriPattern, org.apache.http.protocol.HttpRequestHandler handler)" ] } } }
+  },
+  "apiProperties": {
+    "client": { "methods": { "send": { "properties": { "as2From": { "kind": "parameter", "displayName": "As2 From", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "AS2 name of sender", "optional": false }, "as2MessageStructure": { "kind": "parameter", "displayName": "As2 Message Structure", "group": "producer", "label": "", "required": false, "type": "object",  [...]
+    "server": { "methods": { "listen": { "properties": { "requestUriPattern": { "kind": "parameter", "displayName": "Request Uri Pattern", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } } } }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/asterisk.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/asterisk.json
new file mode 100644
index 0000000..8ce858f
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/asterisk.json
@@ -0,0 +1,40 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "asterisk",
+    "title": "Asterisk",
+    "description": "Interact with Asterisk PBX Server.",
+    "deprecated": false,
+    "firstVersion": "2.18.0",
+    "label": "voip",
+    "javaType": "org.apache.camel.component.asterisk.AsteriskComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-asterisk",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "asterisk",
+    "extendsScheme": "",
+    "syntax": "asterisk:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of component" },
+    "hostname": { "kind": "parameter", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The hostname of the asterisk server" },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Login password" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Login username" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.asterisk.AsteriskAction", "enum": [ "QUEUE_STATUS", "SIP_PEERS", "EXTENSION_STATE" ], "deprecated": false, "autowired": false, "secret": false, "description": "What action to perform such as getting queue status, sip peers or extension state." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/atom.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/atom.json
new file mode 100644
index 0000000..cebfdcd
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/atom.json
@@ -0,0 +1,58 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "atom",
+    "title": "Atom",
+    "description": "Poll Atom RSS feeds.",
+    "deprecated": false,
+    "firstVersion": "1.2.0",
+    "label": "rss",
+    "javaType": "org.apache.camel.component.atom.AtomComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-atom",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "atom",
+    "extendsScheme": "",
+    "syntax": "atom:feedUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "feedUri": { "kind": "path", "displayName": "Feed Uri", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The URI to the feed to poll." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "feedHeader": { "kind": "parameter", "displayName": "Feed Header", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to add the feed object as a header." },
+    "filter": { "kind": "parameter", "displayName": "Filter", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to use filtering or not of the entries." },
+    "lastUpdate": { "kind": "parameter", "displayName": "Last Update", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.util.Date", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the timestamp to be used for filtering entries from the atom feeds. This options is only in conjunction with the splitEntries." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the password to be used for basic authentication when polling from a HTTP feed." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "sortEntries": { "kind": "parameter", "displayName": "Sort Entries", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to sort entries by published date. Only works when splitEntries = true." },
+    "splitEntries": { "kind": "parameter", "displayName": "Split Entries", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether or not entries should be sent individually or whether the entire feed should be sent as a single message" },
+    "throttleEntries": { "kind": "parameter", "displayName": "Throttle Entries", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether all entries identified in a single feed poll should be delivered immediately. If true, only one entry is processed per delay. Only applicable when splitEntries = true." },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the username to be used for basic authentication when polling from a HTTP feed." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/avro.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/avro.json
new file mode 100644
index 0000000..2f80f05
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/avro.json
@@ -0,0 +1,52 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "avro",
+    "title": "Avro RPC",
+    "description": "Produce or consume Apache Avro RPC services.",
+    "deprecated": false,
+    "firstVersion": "2.10.0",
+    "label": "rpc",
+    "javaType": "org.apache.camel.component.avro.AvroComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-avro-rpc",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "avro",
+    "extendsScheme": "",
+    "syntax": "avro:transport:host:port\/messageName",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "protocol": { "kind": "property", "displayName": "Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.avro.Protocol", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 becaus [...]
+    "singleParameter": { "kind": "property", "displayName": "Single Parameter", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 paramet [...]
+    "uriAuthority": { "kind": "property", "displayName": "Uri Authority", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.avro.AvroConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use a shared AvroConfiguration to configure options once" }
+  },
+  "properties": {
+    "transport": { "kind": "path", "displayName": "Transport", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.avro.AvroTransport", "enum": [ "http", "netty" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Transport to use, can be either http or netty" },
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Port number to use" },
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Hostname to use" },
+    "messageName": { "kind": "path", "displayName": "Message Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "The name of the message to send." },
+    "protocol": { "kind": "parameter", "displayName": "Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.avro.Protocol", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Avro protocol to use" },
+    "protocolClassName": { "kind": "parameter", "displayName": "Protocol Class Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Protocol Location", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Avro protocol location" },
+    "reflectionProtocol": { "kind": "parameter", "displayName": "Reflection Protocol", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 becau [...]
+    "singleParameter": { "kind": "parameter", "displayName": "Single Parameter", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 parame [...]
+    "uriAuthority": { "kind": "parameter", "displayName": "Uri Authority", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.avro.AvroConfiguration", "configurationField": "configuration", "description": "Authority to use (username and password)" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws-secrets-manager.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws-secrets-manager.json
new file mode 100644
index 0000000..5d95a45
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws-secrets-manager.json
@@ -0,0 +1,61 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws-secrets-manager",
+    "title": "AWS Secrets Manager",
+    "description": "Manage AWS Secrets Manager services using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.9.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws-secrets-manager",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws-secrets-manager",
+    "extendsScheme": "",
+    "syntax": "aws-secrets-manager:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "binaryPayload": { "kind": "property", "displayName": "Binary Payload", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set if the secret is binary or not" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations", "enum": [ "listSecrets", "createSecret", "getSecret", "describeSecret", "deleteSecret", "rotateSecret", "updateSecret", "restoreSecret", "replicateSecretToRegions" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combin [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Secrets Manager client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Secrets Manager 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol  [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "The region in which Secrets Manager client needs to work. When using this parameter, the configuration will expect t [...]
+    "secretsManagerClient": { "kind": "property", "displayName": "Secrets Manager Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.secretsmanager.SecretsManagerClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To use a exis [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overri [...]
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set whether the Translate client should expect to lo [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Logical name" },
+    "binaryPayload": { "kind": "parameter", "displayName": "Binary Payload", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set if the secret is binary or not" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations", "enum": [ "listSecrets", "createSecret", "getSecret", "describeSecret", "deleteSecret", "rotateSecret", "updateSecret", "restoreSecret", "replicateSecretToRegions" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass" [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combi [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Secrets Manager client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Secrets Manager client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "The region in which Secrets Manager client needs to work. When using this parameter, the configuration will expect  [...]
+    "secretsManagerClient": { "kind": "parameter", "displayName": "Secrets Manager Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.secretsmanager.SecretsManagerClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "To use a exi [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overr [...]
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Set whether the Translate client should expect to l [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-athena.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-athena.json
new file mode 100644
index 0000000..0837c0c
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-athena.json
@@ -0,0 +1,87 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-athena",
+    "title": "AWS Athena",
+    "description": "Access AWS Athena service using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.4.0",
+    "label": "cloud,database",
+    "javaType": "org.apache.camel.component.aws2.athena.Athena2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-athena",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-athena",
+    "extendsScheme": "",
+    "syntax": "aws2-athena:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key." },
+    "amazonAthenaClient": { "kind": "property", "displayName": "Amazon Athena Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.athena.AthenaClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The AmazonAthena instance to use as the client." },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.athena.Athena2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration." },
+    "database": { "kind": "property", "displayName": "Database", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The Athena database to use." },
+    "delay": { "kind": "property", "displayName": "Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2000, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Milliseconds before the next poll for query execution status. See the section 'Waiting for Query Completion and R [...]
+    "encryptionOption": { "kind": "property", "displayName": "Encryption Option", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.athena.model.EncryptionOption", "enum": [ "SSE_S3", "SSE_KMS", "CSE_KMS", "null" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The  [...]
+    "includeTrace": { "kind": "property", "displayName": "Include Trace", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Include useful trace information at the beginning of queries as an SQL comment (prefixed with  [...]
+    "initialDelay": { "kind": "property", "displayName": "Initial Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Milliseconds before the first poll for query execution status. See the section 'Waiting for Query  [...]
+    "kmsKey": { "kind": "property", "displayName": "Kms Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "maxAttempts": { "kind": "property", "displayName": "Max Attempts", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Maximum number of times to attempt a query. Set to 1 to disable retries. See the section 'Waiting for Qu [...]
+    "maxResults": { "kind": "property", "displayName": "Max Results", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Max number of results to return for the given operation (if supported by the Athena API endpoint). If not set,  [...]
+    "nextToken": { "kind": "property", "displayName": "Next Token", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Pagination token to use in the case where the response from the previous request was truncated." },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.athena.Athena2Operations", "enum": [ "getQueryExecution", "getQueryResults", "listQueryExecutions", "startQueryExecution" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "startQueryExecution", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configurat [...]
+    "outputLocation": { "kind": "property", "displayName": "Output Location", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The location in Amazon S3 where query results are stored, such as s3:\/\/path\/to\/query\/bucket\/. Ensur [...]
+    "outputType": { "kind": "property", "displayName": "Output Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.athena.Athena2OutputType", "enum": [ "StreamList", "SelectList", "S3Pointer" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "StreamList", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "descr [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Athena client." },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Athena 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantia [...]
+    "queryExecutionId": { "kind": "property", "displayName": "Query Execution Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The unique ID identifying the query execution." },
+    "queryString": { "kind": "property", "displayName": "Query String", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The SQL query to run. Except for simple queries, prefer setting this as the body of the Exchange or as a header [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The region in which Athena client needs to work. When using this parameter, the configuration will expect the lowercase name of th [...]
+    "resetWaitTimeoutOnRetry": { "kind": "property", "displayName": "Reset Wait Timeout On Retry", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Reset the waitTimeout countdown in the event of a query retry. If set  [...]
+    "retry": { "kind": "property", "displayName": "Retry", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "never", "always", "retryable", "exhausted", "generic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "never", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Optional comma separated list o [...]
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key." },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Set whether the Athena client should expect to load credentials th [...]
+    "waitTimeout": { "kind": "property", "displayName": "Wait Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Optional max wait time in millis to wait for a successful query completion. See the section 'Waiting fo [...]
+    "workGroup": { "kind": "property", "displayName": "Work Group", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The workgroup to use for running the query." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "clientRequestToken": { "kind": "property", "displayName": "Client Request Token", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "A unique string to ensure issues queries are idempotent. It is unlikely you will need to set this." }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "producer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key." },
+    "amazonAthenaClient": { "kind": "parameter", "displayName": "Amazon Athena Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.athena.AthenaClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The AmazonAthena instance to use as the client." },
+    "database": { "kind": "parameter", "displayName": "Database", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The Athena database to use." },
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2000, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Milliseconds before the next poll for query execution status. See the section 'Waiting for Query Completion and  [...]
+    "encryptionOption": { "kind": "parameter", "displayName": "Encryption Option", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.athena.model.EncryptionOption", "enum": [ "SSE_S3", "SSE_KMS", "CSE_KMS", "null" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The [...]
+    "includeTrace": { "kind": "parameter", "displayName": "Include Trace", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Include useful trace information at the beginning of queries as an SQL comment (prefixed with [...]
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Milliseconds before the first poll for query execution status. See the section 'Waiting for Query [...]
+    "kmsKey": { "kind": "parameter", "displayName": "Kms Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "maxAttempts": { "kind": "parameter", "displayName": "Max Attempts", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Maximum number of times to attempt a query. Set to 1 to disable retries. See the section 'Waiting for Q [...]
+    "maxResults": { "kind": "parameter", "displayName": "Max Results", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Max number of results to return for the given operation (if supported by the Athena API endpoint). If not set, [...]
+    "nextToken": { "kind": "parameter", "displayName": "Next Token", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Pagination token to use in the case where the response from the previous request was truncated." },
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.athena.Athena2Operations", "enum": [ "getQueryExecution", "getQueryResults", "listQueryExecutions", "startQueryExecution" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "startQueryExecution", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configura [...]
+    "outputLocation": { "kind": "parameter", "displayName": "Output Location", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The location in Amazon S3 where query results are stored, such as s3:\/\/path\/to\/query\/bucket\/. Ensu [...]
+    "outputType": { "kind": "parameter", "displayName": "Output Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.athena.Athena2OutputType", "enum": [ "StreamList", "SelectList", "S3Pointer" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "StreamList", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "desc [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Athena client." },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Athena client." },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instanti [...]
+    "queryExecutionId": { "kind": "parameter", "displayName": "Query Execution Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The unique ID identifying the query execution." },
+    "queryString": { "kind": "parameter", "displayName": "Query String", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The SQL query to run. Except for simple queries, prefer setting this as the body of the Exchange or as a heade [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The region in which Athena client needs to work. When using this parameter, the configuration will expect the lowercase name of t [...]
+    "resetWaitTimeoutOnRetry": { "kind": "parameter", "displayName": "Reset Wait Timeout On Retry", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Reset the waitTimeout countdown in the event of a query retry. If set [...]
+    "retry": { "kind": "parameter", "displayName": "Retry", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "never", "always", "retryable", "exhausted", "generic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "never", "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Optional comma separated list  [...]
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key." },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Set whether the Athena client should expect to load credentials t [...]
+    "waitTimeout": { "kind": "parameter", "displayName": "Wait Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "Optional max wait time in millis to wait for a successful query completion. See the section 'Waiting f [...]
+    "workGroup": { "kind": "parameter", "displayName": "Work Group", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "The workgroup to use for running the query." },
+    "clientRequestToken": { "kind": "parameter", "displayName": "Client Request Token", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.athena.Athena2Configuration", "configurationField": "configuration", "description": "A unique string to ensure issues queries are idempotent. It is unlikely you will need to set this." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-cw.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-cw.json
new file mode 100644
index 0000000..9aa3e99
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-cw.json
@@ -0,0 +1,63 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-cw",
+    "title": "AWS CloudWatch",
+    "description": "Sending metrics to AWS CloudWatch using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,monitoring",
+    "javaType": "org.apache.camel.component.aws2.cw.Cw2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-cw",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-cw",
+    "extendsScheme": "",
+    "syntax": "aws2-cw:namespace",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonCwClient": { "kind": "property", "displayName": "Amazon Cw Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "To use the AmazonCloudWatch as the client" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.cw.Cw2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "name": { "kind": "property", "displayName": "Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric name" },
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoint [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The region in which CW client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (fo [...]
+    "timestamp": { "kind": "property", "displayName": "Timestamp", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.time.Instant", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric timestamp" },
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "unit": { "kind": "property", "displayName": "Unit", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric unit" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Set whether the S3 client should expect to load credentials through a defa [...]
+    "value": { "kind": "property", "displayName": "Value", "group": "producer", "label": "", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric value" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "namespace": { "kind": "path", "displayName": "Namespace", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric namespace" },
+    "amazonCwClient": { "kind": "parameter", "displayName": "Amazon Cw Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.cloudwatch.CloudWatchClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "To use the AmazonCloudWatch as the client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "name": { "kind": "parameter", "displayName": "Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric name" },
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoin [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating th [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The region in which CW client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (f [...]
+    "timestamp": { "kind": "parameter", "displayName": "Timestamp", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.time.Instant", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric timestamp" },
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "unit": { "kind": "parameter", "displayName": "Unit", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric unit" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Set whether the S3 client should expect to load credentials through a def [...]
+    "value": { "kind": "parameter", "displayName": "Value", "group": "producer", "label": "", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "The metric value" },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.cw.Cw2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ddb.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ddb.json
new file mode 100644
index 0000000..52075fd
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ddb.json
@@ -0,0 +1,71 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-ddb",
+    "title": "AWS DynamoDB",
+    "description": "Store and retrieve data from AWS DynamoDB service using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,database,nosql",
+    "javaType": "org.apache.camel.component.aws2.ddb.Ddb2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-ddb",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-ddb",
+    "extendsScheme": "",
+    "syntax": "aws2-ddb:tableName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonDDBClient": { "kind": "property", "displayName": "Amazon DDBClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.dynamodb.DynamoDbClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "To use the AmazonDynamoDB as the client" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
+    "consistentRead": { "kind": "property", "displayName": "Consistent Read", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "enabledInitialDescribeTable": { "kind": "property", "displayName": "Enabled Initial Describe Table", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set whether the initial Describe table operation in the DDB Endpoint must be  [...]
+    "keyAttributeName": { "kind": "property", "displayName": "Key Attribute Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Attribute type when creating table" },
+    "keyScalarType": { "kind": "property", "displayName": "Key Scalar Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The key scalar type, it can be S (String), N (Number) and B (Bytes)" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "PutItem", "configurationClass": "org.apache.camel.component.aws2.ddb.D [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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  [...]
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "readCapacity": { "kind": "property", "displayName": "Read Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The region in which DDB client needs to work" },
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set whether the S3 client should expect to load credentials through a de [...]
+    "writeCapacity": { "kind": "property", "displayName": "Write Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": 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" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "tableName": { "kind": "path", "displayName": "Table Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The name of the table currently worked with." },
+    "amazonDDBClient": { "kind": "parameter", "displayName": "Amazon DDBClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.dynamodb.DynamoDbClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "To use the AmazonDynamoDB as the client" },
+    "consistentRead": { "kind": "parameter", "displayName": "Consistent Read", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "enabledInitialDescribeTable": { "kind": "parameter", "displayName": "Enabled Initial Describe Table", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set whether the initial Describe table operation in the DDB Endpoint must be [...]
+    "keyAttributeName": { "kind": "parameter", "displayName": "Key Attribute Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Attribute name when creating table" },
+    "keyAttributeType": { "kind": "parameter", "displayName": "Key Attribute Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Attribute type when creating table" },
+    "keyScalarType": { "kind": "parameter", "displayName": "Key Scalar Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The key scalar type, it can be S (String), N (Number) and B (Bytes)" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "PutItem", "configurationClass": "org.apache.camel.component.aws2.ddb. [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 [...]
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "readCapacity": { "kind": "parameter", "displayName": "Read Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": 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": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "The region in which DDB client needs to work" },
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Set whether the S3 client should expect to load credentials through a d [...]
+    "writeCapacity": { "kind": "parameter", "displayName": "Write Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": 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" },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ddb.Ddb2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ec2.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ec2.json
new file mode 100644
index 0000000..8083f42
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ec2.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-ec2",
+    "title": "AWS Elastic Compute Cloud (EC2)",
+    "description": "Manage AWS EC2 instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.ec2.AWS2EC2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-ec2",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-ec2",
+    "extendsScheme": "",
+    "syntax": "aws2-ec2:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "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, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To use a existing configured AmazonEC2Client as client" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "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": "", "au [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEnd [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiatin [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "The region in which EC2 client needs to work. When using this parameter, the configuration will expect the lowercase name of the regi [...]
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Set whether the EC2 client should expect to load credentials through  [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "amazonEc2Client": { "kind": "parameter", "displayName": "Amazon Ec2 Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ec2.Ec2Client", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To use a existing configured AmazonEC2Client as client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "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": "", "a [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEn [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiati [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "The region in which EC2 client needs to work. When using this parameter, the configuration will expect the lowercase name of the reg [...]
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration", "configurationField": "configuration", "description": "Set whether the EC2 client should expect to load credentials through [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ecs.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ecs.json
new file mode 100644
index 0000000..7856b95
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ecs.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-ecs",
+    "title": "AWS Elastic Container Service (ECS)",
+    "description": "Manage AWS ECS cluster instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.ecs.ECS2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-ecs",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-ecs",
+    "extendsScheme": "",
+    "syntax": "aws2-ecs:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "ecsClient": { "kind": "property", "displayName": "Ecs Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ecs.EcsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.ecs.ECS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "descript [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "The region in which ECS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region  [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Set whether the ECS client should expect to load credentials through a d [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "ecsClient": { "kind": "parameter", "displayName": "Ecs Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ecs.EcsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS ECS as client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.ecs.ECS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "descrip [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "The region in which ECS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Set whether the ECS client should expect to load credentials through a  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eks.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eks.json
new file mode 100644
index 0000000..4163dff
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eks.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-eks",
+    "title": "AWS Elastic Kubernetes Service (EKS)",
+    "description": "Manage AWS EKS cluster instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.eks.EKS2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-eks",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-eks",
+    "extendsScheme": "",
+    "syntax": "aws2-eks:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eks.EKS2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "eksClient": { "kind": "property", "displayName": "Eks Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eks.EksClient", "deprecated": false, "deprecationNote": "", "autowired": true, "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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eks.EKS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "descript [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region  [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Set whether the EKS client should expect to load credentials through a d [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "eksClient": { "kind": "parameter", "displayName": "Eks Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eks.EksClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS EKS as client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eks.EKS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "descrip [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Set whether the EKS client should expect to load credentials through a  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eventbridge.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eventbridge.json
new file mode 100644
index 0000000..c5f4a5c
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-eventbridge.json
@@ -0,0 +1,61 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-eventbridge",
+    "title": "AWS Eventbridge",
+    "description": "Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.6.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-eventbridge",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-eventbridge",
+    "extendsScheme": "",
+    "syntax": "aws2-eventbridge:\/\/eventbusNameOrArn",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "eventbridgeClient": { "kind": "property", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AW [...]
+    "eventPatternFile": { "kind": "property", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "putR [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when  [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which Eventbridge client needs to work. When using this parameter, the configuration will expect the lowerc [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEnd [...]
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to load  [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "eventbusNameOrArn": { "kind": "path", "displayName": "Eventbus Name Or Arn", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Event bus name or ARN" },
+    "eventbridgeClient": { "kind": "parameter", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured A [...]
+    "eventPatternFile": { "kind": "parameter", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "put [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combinatio [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which Eventbridge client needs to work. When using this parameter, the configuration will expect the lower [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEn [...]
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to load [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-iam.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-iam.json
new file mode 100644
index 0000000..615b010
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-iam.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-iam",
+    "title": "AWS Identity and Access Management (IAM)",
+    "description": "Manage AWS IAM instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.iam.IAM2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-iam",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-iam",
+    "extendsScheme": "",
+    "syntax": "aws2-iam:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.iam.IAM2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "iamClient": { "kind": "property", "displayName": "Iam Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.iam.IamClient", "deprecated": false, "deprecationNote": "", "autowired": true, "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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": false, "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, "autowired": false, "secret": false, "confi [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "The region in which IAM client needs to work. When using this parameter, the configuration will expect the [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Set whether the IAM client should expect to load credentials through a d [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "iamClient": { "kind": "parameter", "displayName": "Iam Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.iam.IamClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS IAM as client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": false, "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, "autowired": false, "secret": false, "conf [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "The region in which IAM client needs to work. When using this parameter, the configuration will expect th [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Set whether the IAM client should expect to load credentials through a  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.iam.IAM2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kinesis.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kinesis.json
new file mode 100644
index 0000000..1d9f4e1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kinesis.json
@@ -0,0 +1,89 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-kinesis",
+    "title": "AWS Kinesis",
+    "description": "Consume and produce records from and to AWS Kinesis Streams using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.2.0",
+    "label": "cloud,messaging",
+    "javaType": "org.apache.camel.component.aws2.kinesis.Kinesis2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-kinesis",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-kinesis",
+    "extendsScheme": "",
+    "syntax": "aws2-kinesis:streamName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonKinesisClient": { "kind": "property", "displayName": "Amazon Kinesis Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kinesis.KinesisClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Amazon Kinesis client to use for all reques [...]
+    "cborEnabled": { "kind": "property", "displayName": "Cbor Enabled", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "This option will set the CBOR_ENABLED property during the execution" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination wi [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantia [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "The region in which Kinesis Firehose client needs to work. When using this parameter, the configuration will expect the lowercase  [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoi [...]
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Set whether the Kinesis client should expect to load credent [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "TRIM_HORIZON", "configurationClass": "org.apache.camel.component.aws2.kinesi [...]
+    "maxResultsPerRequest": { "kind": "property", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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" },
+    "resumeStrategy": { "kind": "property", "displayName": "Resume Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.kinesis.consumer.KinesisResumeStrategy", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "KinesisUserConfigurationResumeStrategy", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "descri [...]
+    "sequenceNumber": { "kind": "property", "displayName": "Sequence Number", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "ignore", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "des [...]
+    "shardId": { "kind": "property", "displayName": "Shard Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "streamName": { "kind": "path", "displayName": "Stream Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Name of the stream" },
+    "amazonKinesisClient": { "kind": "parameter", "displayName": "Amazon Kinesis Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kinesis.KinesisClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Amazon Kinesis client to use for all reque [...]
+    "cborEnabled": { "kind": "parameter", "displayName": "Cbor Enabled", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "This option will set the CBOR_ENABLED property during the execution" },
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination w [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instanti [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "The region in which Kinesis Firehose client needs to work. When using this parameter, the configuration will expect the lowercase [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpo [...]
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Set whether the Kinesis client should expect to load creden [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "iteratorType": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "TRIM_HORIZON", "configurationClass": "org.apache.camel.component.aws2.kines [...]
+    "maxResultsPerRequest": { "kind": "parameter", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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" },
+    "resumeStrategy": { "kind": "parameter", "displayName": "Resume Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.kinesis.consumer.KinesisResumeStrategy", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "KinesisUserConfigurationResumeStrategy", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "descr [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "sequenceNumber": { "kind": "parameter", "displayName": "Sequence Number", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "shardClosed": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "ignore", "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "de [...]
+    "shardId": { "kind": "parameter", "displayName": "Shard Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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" },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kms.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kms.json
new file mode 100644
index 0000000..ecbd194
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-kms.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-kms",
+    "title": "AWS Key Management Service (KMS)",
+    "description": "Manage keys stored in AWS KMS instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.kms.KMS2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-kms",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-kms",
+    "extendsScheme": "",
+    "syntax": "aws2-kms:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.kms.KMS2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "kmsClient": { "kind": "property", "displayName": "Kms Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kms.KmsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.kms.KMS2Operations", "enum": [ "listKeys", "createKey", "disableKey", "scheduleKeyDeletion", "describeKey", "enableKey" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "conf [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region  [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Set whether the KMS client should expect to load credentials through a d [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "kmsClient": { "kind": "parameter", "displayName": "Kms Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kms.KmsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS KMS as client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.kms.KMS2Operations", "enum": [ "listKeys", "createKey", "disableKey", "scheduleKeyDeletion", "describeKey", "enableKey" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "con [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Set whether the KMS client should expect to load credentials through a  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.kms.KMS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-lambda.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-lambda.json
new file mode 100644
index 0000000..8a46f03
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-lambda.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-lambda",
+    "title": "AWS Lambda",
+    "description": "Manage and invoke AWS Lambda functions using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.2.0",
+    "label": "cloud,computing,serverless",
+    "javaType": "org.apache.camel.component.aws2.lambda.Lambda2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-lambda",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-lambda",
+    "extendsScheme": "",
+    "syntax": "aws2-lambda:function",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "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 [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uri [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "The region in which Lambda client needs to work. When using this parameter, the configuration will expect the lowercase name of th [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Set whether the Lambda client should expect to load credentials th [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "awsLambdaClient": { "kind": "property", "displayName": "Aws Lambda Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.lambda.LambdaClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To use a existing configured AwsLambdaClient  [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instant [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "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": "", "autowired": false, "secret": false, "description": "Name of the Lambda function." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "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", " [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with ur [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "The region in which Lambda client needs to work. When using this parameter, the configuration will expect the lowercase name of t [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint op [...]
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Set whether the Lambda client should expect to load credentials t [...]
+    "awsLambdaClient": { "kind": "parameter", "displayName": "Aws Lambda Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.lambda.LambdaClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To use a existing configured AwsLambdaClient [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instan [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.lambda.Lambda2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-mq.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-mq.json
new file mode 100644
index 0000000..c34fe5e
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-mq.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-mq",
+    "title": "AWS MQ",
+    "description": "Manage AWS MQ instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,messaging",
+    "javaType": "org.apache.camel.component.aws2.mq.MQ2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-mq",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-mq",
+    "extendsScheme": "",
+    "syntax": "aws2-mq:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonMqClient": { "kind": "property", "displayName": "Amazon Mq Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.mq.MqClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "To use a existing configured AmazonMQClient as client" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.mq.MQ2Configuration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.mq.MQ2Operations", "enum": [ "listBrokers", "createBroker", "deleteBroker", "rebootBroker", "updateBroker", "describeBroker" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "c [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoint [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "The region in which MQ client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (fo [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Set whether the MQ client should expect to load credentials through a defa [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "amazonMqClient": { "kind": "parameter", "displayName": "Amazon Mq Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.mq.MqClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "To use a existing configured AmazonMQClient as client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.mq.MQ2Operations", "enum": [ "listBrokers", "createBroker", "deleteBroker", "rebootBroker", "updateBroker", "describeBroker" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": " [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoin [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating th [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "The region in which MQ client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (f [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Set whether the MQ client should expect to load credentials through a def [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.mq.MQ2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-msk.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-msk.json
new file mode 100644
index 0000000..9aacd19
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-msk.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-msk",
+    "title": "AWS Managed Streaming for Apache Kafka (MSK)",
+    "description": "Manage AWS MSK instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.msk.MSK2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-msk",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-msk",
+    "extendsScheme": "",
+    "syntax": "aws2-msk:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.msk.MSK2Configuration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "mskClient": { "kind": "property", "displayName": "Msk Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kafka.KafkaClient", "deprecated": false, "deprecationNote": "", "autowired": true, "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": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.msk.MSK2Operations", "enum": [ "listClusters", "createCluster", "deleteCluster", "describeCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "descript [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "The region in which MSK client needs to work. When using this parameter, the configuration will expect the lowercase name of the region  [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Set whether the Kafka client should expect to load credentials through a [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "mskClient": { "kind": "parameter", "displayName": "Msk Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.kafka.KafkaClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS MSK as client" },
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.msk.MSK2Operations", "enum": [ "listClusters", "createCluster", "deleteCluster", "describeCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "descrip [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "The region in which MSK client needs to work. When using this parameter, the configuration will expect the lowercase name of the region [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Set whether the Kafka client should expect to load credentials through  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.msk.MSK2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-s3.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-s3.json
new file mode 100644
index 0000000..6ed9cc9
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-s3.json
@@ -0,0 +1,147 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-s3",
+    "title": "AWS S3 Storage Service",
+    "description": "Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.2.0",
+    "label": "cloud,file",
+    "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-s3",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-s3",
+    "extendsScheme": "",
+    "syntax": "aws2-s3:\/\/bucketNameOrArn",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonS3Client": { "kind": "property", "displayName": "Amazon S3 Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.s3.S3Client", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Reference to a com.amazonaws.services.s3.AmazonS3 in the registry." },
+    "amazonS3Presigner": { "kind": "property", "displayName": "Amazon S3 Presigner", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.s3.presigner.S3Presigner", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "An S3 Presigner for Request, used mainly in createD [...]
+    "autoCreateBucket": { "kind": "property", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the S3 bucket bucketName. This will apply also in case of moveAfte [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoin [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "policy": { "kind": "property", "displayName": "Policy", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating th [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The region in which S3 client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (f [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Set whether the S3 client should expect to load credentials through a def [...]
+    "customerAlgorithm": { "kind": "property", "displayName": "Customer Algorithm", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the customer algorithm to use in case CustomerKey is enabled" },
+    "customerKeyId": { "kind": "property", "displayName": "Customer Key Id", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the id of Customer key to use in case CustomerKey is enabled" },
+    "customerKeyMD5": { "kind": "property", "displayName": "Customer Key MD5", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the MD5 of Customer key to use in case CustomerKey is enabled" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "deleteAfterRead": { "kind": "property", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Delete objects from S3 after they have been retrieved. The delete is only performed if the Ex [...]
+    "delimiter": { "kind": "property", "displayName": "Delimiter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are inte [...]
+    "destinationBucket": { "kind": "property", "displayName": "Destination Bucket", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the destination bucket where an object must be moved when moveAfterRead is set to true." },
+    "destinationBucketPrefix": { "kind": "property", "displayName": "Destination Bucket Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the destination bucket prefix to use when an object must be moved and moveAfterRead  [...]
+    "destinationBucketSuffix": { "kind": "property", "displayName": "Destination Bucket Suffix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the destination bucket suffix to use when an object must be moved and moveAfterRead  [...]
+    "doneFileName": { "kind": "property", "displayName": "Done File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If provided, Camel will only consume files if a done file exists." },
+    "fileName": { "kind": "property", "displayName": "File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "To get the object from the bucket with the given file name" },
+    "ignoreBody": { "kind": "property", "displayName": "Ignore Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, the S3 Object Body will be ignored completely, if it is set to false the S3 Object will  [...]
+    "includeBody": { "kind": "property", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S [...]
+    "includeFolders": { "kind": "property", "displayName": "Include Folders", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, the folders\/directories will be consumed. If it is false, they will be ignored,  [...]
+    "moveAfterRead": { "kind": "property", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish  [...]
+    "prefix": { "kind": "property", "displayName": "Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If this option is true and includeBody is false, then the S3Object.close() met [...]
+    "batchMessageNumber": { "kind": "property", "displayName": "Batch Message Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The number of messages composing a batch in streaming upload mode" },
+    "batchSize": { "kind": "property", "displayName": "Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000000, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The batch size (in bytes) in streaming upload mode" },
+    "deleteAfterWrite": { "kind": "property", "displayName": "Delete After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "multiPartUpload": { "kind": "property", "displayName": "Multi Part Upload", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, camel will upload the file with multi part format, the part size is decided b [...]
+    "namingStrategy": { "kind": "property", "displayName": "Naming Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ "progressive", "random" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "progressive", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descript [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Operations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "getObjectRange", "createDownloadLink" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration",  [...]
+    "partSize": { "kind": "property", "displayName": "Part Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 26214400, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setup the partSize which is used in multi part upload, the default size is 25M." },
+    "restartingPolicy": { "kind": "property", "displayName": "Restarting Policy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum", "enum": [ "override", "lastPart" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "override", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descri [...]
+    "storageClass": { "kind": "property", "displayName": "Storage Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request." },
+    "streamingUploadMode": { "kind": "property", "displayName": "Streaming Upload Mode", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "When stream mode is true the upload to bucket will be done in streaming" },
+    "streamingUploadTimeout": { "kind": "property", "displayName": "Streaming Upload Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "While streaming upload mode is true, this option set the timeout to complete upload" },
+    "awsKMSKeyId": { "kind": "property", "displayName": "Aws KMSKey Id", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define if KMS must be used or not" },
+    "useCustomerKey": { "kind": "property", "displayName": "Use Customer Key", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define if Customer Key must be used or not" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "bucketNameOrArn": { "kind": "path", "displayName": "Bucket Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Bucket name or ARN" },
+    "amazonS3Client": { "kind": "parameter", "displayName": "Amazon S3 Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.s3.S3Client", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Reference to a com.amazonaws.services.s3.AmazonS3 in the registry." },
+    "amazonS3Presigner": { "kind": "parameter", "displayName": "Amazon S3 Presigner", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.s3.presigner.S3Presigner", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "An S3 Presigner for Request, used mainly in create [...]
+    "autoCreateBucket": { "kind": "parameter", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the S3 bucket bucketName. This will apply also in case of moveAft [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "policy": { "kind": "parameter", "displayName": "Policy", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method." },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the SQS client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Specify a proxy port to be used inside the client definition." },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The region in which S3 client needs to work. When using this parameter, the configuration will expect the lowercase name of the region ( [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Set whether the S3 client should expect to load credentials through a de [...]
+    "customerAlgorithm": { "kind": "parameter", "displayName": "Customer Algorithm", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the customer algorithm to use in case CustomerKey is enabled" },
+    "customerKeyId": { "kind": "parameter", "displayName": "Customer Key Id", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the id of Customer key to use in case CustomerKey is enabled" },
+    "customerKeyMD5": { "kind": "parameter", "displayName": "Customer Key MD5", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the MD5 of Customer key to use in case CustomerKey is enabled" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "deleteAfterRead": { "kind": "parameter", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Delete objects from S3 after they have been retrieved. The delete is only performed if the E [...]
+    "delimiter": { "kind": "parameter", "displayName": "Delimiter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are int [...]
+    "destinationBucket": { "kind": "parameter", "displayName": "Destination Bucket", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the destination bucket where an object must be moved when moveAfterRead is set to true." },
+    "destinationBucketPrefix": { "kind": "parameter", "displayName": "Destination Bucket Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the destination bucket prefix to use when an object must be moved and moveAfterRead [...]
+    "destinationBucketSuffix": { "kind": "parameter", "displayName": "Destination Bucket Suffix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the destination bucket suffix to use when an object must be moved and moveAfterRead [...]
+    "doneFileName": { "kind": "parameter", "displayName": "Done File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If provided, Camel will only consume files if a done file exists." },
+    "fileName": { "kind": "parameter", "displayName": "File Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "To get the object from the bucket with the given file name" },
+    "ignoreBody": { "kind": "parameter", "displayName": "Ignore Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, the S3 Object Body will be ignored completely, if it is set to false the S3 Object will [...]
+    "includeBody": { "kind": "parameter", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the  [...]
+    "includeFolders": { "kind": "parameter", "displayName": "Include Folders", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, the folders\/directories will be consumed. If it is false, they will be ignored, [...]
+    "maxConnections": { "kind": "parameter", "displayName": "Max Connections", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60, "description": "Set the maxConnections parameter in the S3 client configuration" },
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "description": "Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum number of messages as a limit to poll at each polling. The default value is 10. Use 0 or a negative number to set it as u [...]
+    "moveAfterRead": { "kind": "parameter", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish [...]
+    "prefix": { "kind": "parameter", "displayName": "Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "autocloseBody": { "kind": "parameter", "displayName": "Autoclose Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If this option is true and includeBody is false, then the S3Object.close() me [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "batchMessageNumber": { "kind": "parameter", "displayName": "Batch Message Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The number of messages composing a batch in streaming upload mode" },
+    "batchSize": { "kind": "parameter", "displayName": "Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000000, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The batch size (in bytes) in streaming upload mode" },
+    "deleteAfterWrite": { "kind": "parameter", "displayName": "Delete After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Delete file object after the S3 file has been uploaded" },
+    "keyName": { "kind": "parameter", "displayName": "Key Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setting the key name for an element in the bucket through endpoint parameter" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "multiPartUpload": { "kind": "parameter", "displayName": "Multi Part Upload", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, camel will upload the file with multi part format, the part size is decided  [...]
+    "namingStrategy": { "kind": "parameter", "displayName": "Naming Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ "progressive", "random" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "progressive", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descrip [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Operations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "getObjectRange", "createDownloadLink" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", [...]
+    "partSize": { "kind": "parameter", "displayName": "Part Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 26214400, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setup the partSize which is used in multi part upload, the default size is 25M." },
+    "restartingPolicy": { "kind": "parameter", "displayName": "Restarting Policy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum", "enum": [ "override", "lastPart" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "override", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descr [...]
+    "storageClass": { "kind": "parameter", "displayName": "Storage Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request." },
+    "streamingUploadMode": { "kind": "parameter", "displayName": "Streaming Upload Mode", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "When stream mode is true the upload to bucket will be done in streaming" },
+    "streamingUploadTimeout": { "kind": "parameter", "displayName": "Streaming Upload Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "While streaming upload mode is true, this option set the timeout to complete upload" },
+    "awsKMSKeyId": { "kind": "parameter", "displayName": "Aws KMSKey Id", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define the id of KMS key to use in case KMS is enabled" },
+    "useAwsKMS": { "kind": "parameter", "displayName": "Use Aws KMS", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define if KMS must be used or not" },
+    "useCustomerKey": { "kind": "parameter", "displayName": "Use Customer Key", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Define if Customer Key must be used or not" },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ses.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ses.json
new file mode 100644
index 0000000..bc4dbbd
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-ses.json
@@ -0,0 +1,63 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-ses",
+    "title": "AWS Simple Email Service (SES)",
+    "description": "Send e-mails through AWS SES service using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,mail",
+    "javaType": "org.apache.camel.component.aws2.ses.Ses2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-ses",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-ses",
+    "extendsScheme": "",
+    "syntax": "aws2-ses:from",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonSESClient": { "kind": "property", "displayName": "Amazon SESClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ses.SesClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To use the AmazonSimpleEmailService as the client" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ses.Ses2Configuration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "The region in which SES client needs to work. When using this parameter, the configuration will expect the lowercase name of the region  [...]
+    "replyToAddresses": { "kind": "property", "displayName": "Reply To Addresses", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "List of comma separated reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses [...]
+    "returnPath": { "kind": "property", "displayName": "Return Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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." },
+    "subject": { "kind": "property", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "List of comma separated destination email address. Can be overriden with 'CamelAwsSesTo' header." },
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Set whether the Ses client should expect to load credentials through a d [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "from": { "kind": "path", "displayName": "From", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "The sender's email address." },
+    "amazonSESClient": { "kind": "parameter", "displayName": "Amazon SESClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ses.SesClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To use the AmazonSimpleEmailService as the client" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "The region in which SES client needs to work. When using this parameter, the configuration will expect the lowercase name of the region [...]
+    "replyToAddresses": { "kind": "parameter", "displayName": "Reply To Addresses", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "List of comma separated reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresse [...]
+    "returnPath": { "kind": "parameter", "displayName": "Return Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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." },
+    "subject": { "kind": "parameter", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "To", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "List of comma separated destination email address. Can be overriden with 'CamelAwsSesTo' header." },
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Set whether the Ses client should expect to load credentials through a  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.ses.Ses2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sns.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sns.json
new file mode 100644
index 0000000..6abea15
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sns.json
@@ -0,0 +1,76 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-sns",
+    "title": "AWS Simple Notification System (SNS)",
+    "description": "Send messages to an AWS Simple Notification Topic using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,messaging,mobile",
+    "javaType": "org.apache.camel.component.aws2.sns.Sns2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-sns",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-sns",
+    "extendsScheme": "",
+    "syntax": "aws2-sns:topicNameOrArn",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonSNSClient": { "kind": "property", "displayName": "Amazon SNSClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "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, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the topic" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sns.Sns2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+    "kmsMasterKeyId": { "kind": "property", "displayName": "Kms Master Key Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "messageDeduplicationIdStrategy": { "kind": "property", "displayName": "Message Deduplication Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "useExchangeId", "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", [...]
+    "messageGroupIdStrategy": { "kind": "property", "displayName": "Message Group Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Only for FIFO Topic. Strategy [...]
+    "messageStructure": { "kind": "property", "displayName": "Message Structure", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The message structure to use such as json" },
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "policy": { "kind": "property", "displayName": "Policy", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The policy for this topic. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "queueUrl": { "kind": "property", "displayName": "Queue Url", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The region in which SNS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region  [...]
+    "serverSideEncryptionEnabled": { "kind": "property", "displayName": "Server Side Encryption Enabled", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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" },
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Set whether the SNS client should expect to load credentials on an AWS i [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "topicNameOrArn": { "kind": "path", "displayName": "Topic Name Or Arn", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Topic name or ARN" },
+    "amazonSNSClient": { "kind": "parameter", "displayName": "Amazon SNSClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sns.SnsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "To use the AmazonSNS as the client" },
+    "autoCreateTopic": { "kind": "parameter", "displayName": "Auto Create Topic", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the topic" },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to map headers to\/from Camel." },
+    "kmsMasterKeyId": { "kind": "parameter", "displayName": "Kms Master Key Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "messageDeduplicationIdStrategy": { "kind": "parameter", "displayName": "Message Deduplication Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "useExchangeId", "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration" [...]
+    "messageGroupIdStrategy": { "kind": "parameter", "displayName": "Message Group Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Only for FIFO Topic. Strateg [...]
+    "messageStructure": { "kind": "parameter", "displayName": "Message Structure", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The message structure to use such as json" },
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "policy": { "kind": "parameter", "displayName": "Policy", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The policy for this topic. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resourc [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "queueUrl": { "kind": "parameter", "displayName": "Queue Url", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The queueUrl to subscribe to" },
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "The region in which SNS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region [...]
+    "serverSideEncryptionEnabled": { "kind": "parameter", "displayName": "Server Side Encryption Enabled", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Subscribe SNSto SQS", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Set whether the SNS client should expect to load credentials on an AWS  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sns.Sns2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sqs.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sqs.json
new file mode 100644
index 0000000..7d942ca
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sqs.json
@@ -0,0 +1,133 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-sqs",
+    "title": "AWS Simple Queue Service (SQS)",
+    "description": "Send and receive messages to\/from AWS SQS service using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,messaging",
+    "javaType": "org.apache.camel.component.aws2.sqs.Sqs2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-sqs",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-sqs",
+    "extendsScheme": "",
+    "syntax": "aws2-sqs:queueNameOrArn",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amazonAWSHost": { "kind": "property", "displayName": "Amazon AWSHost", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "deprecationNote": "", "autowired": true, "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, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the queue" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "The AWS SQS default configuration" },
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoint [...]
+    "protocol": { "kind": "property", "displayName": "Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the [...]
+    "queueOwnerAWSAccountId": { "kind": "property", "displayName": "Queue Owner AWSAccount Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The region in which SQS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (f [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set whether the SQS client should expect to load credentials on an AWS inf [...]
+    "attributeNames": { "kind": "property", "displayName": "Attribute Names", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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 me [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 the exchange has property with  [...]
+    "extendMessageVisibility": { "kind": "property", "displayName": "Extend Message Visibility", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 v [...]
+    "kmsDataKeyReusePeriodSeconds": { "kind": "property", "displayName": "Kms Data Key Reuse Period Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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  [...]
+    "kmsMasterKeyId": { "kind": "property", "displayName": "Kms Master Key Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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  [...]
+    "serverSideEncryptionEnabled": { "kind": "property", "displayName": "Server Side Encryption Enabled", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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 [...]
+    "waitTimeSeconds": { "kind": "property", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 queu [...]
+    "batchSeparator": { "kind": "property", "displayName": "Batch Separator", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set the separator when passing a String to send batch message operation" },
+    "delaySeconds": { "kind": "property", "displayName": "Delay Seconds", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "messageDeduplicationIdStrategy": { "kind": "property", "displayName": "Message Deduplication Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "useExchangeId", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", [...]
+    "messageGroupIdStrategy": { "kind": "property", "displayName": "Message Group Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Only for FIFO queues. Strateg [...]
+    "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", "purgeQueue", "deleteQueue" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "delayQueue": { "kind": "property", "displayName": "Delay Queue", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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 [...]
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the [...]
+    "receiveMessageWaitTimeSeconds": { "kind": "property", "displayName": "Receive Message Wait Time Seconds", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 ReceiveM [...]
+    "redrivePolicy": { "kind": "property", "displayName": "Redrive Policy", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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." },
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "queueNameOrArn": { "kind": "path", "displayName": "Queue Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Queue name or ARN" },
+    "amazonAWSHost": { "kind": "parameter", "displayName": "Amazon AWSHost", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Amazon SQSClient", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sqs.SqsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To use the AmazonSQS as client" },
+    "autoCreateQueue": { "kind": "parameter", "displayName": "Auto Create Queue", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Setting the autocreation of the queue" },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to map headers to\/from Camel." },
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoin [...]
+    "protocol": { "kind": "parameter", "displayName": "Protocol", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "common", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating th [...]
+    "queueOwnerAWSAccountId": { "kind": "parameter", "displayName": "Queue Owner AWSAccount Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The region in which SQS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region ( [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set whether the SQS client should expect to load credentials on an AWS in [...]
+    "attributeNames": { "kind": "parameter", "displayName": "Attribute Names", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "displayName": "Default Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The default visibility timeout (in seconds)" },
+    "deleteAfterRead": { "kind": "parameter", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Delete If Filtered", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 the exchange has property with [...]
+    "extendMessageVisibility": { "kind": "parameter", "displayName": "Extend Message Visibility", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "kmsDataKeyReusePeriodSeconds": { "kind": "parameter", "displayName": "Kms Data Key Reuse Period Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 [...]
+    "kmsMasterKeyId": { "kind": "parameter", "displayName": "Kms Master Key Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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." },
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Gets the maximum number of messages as a limit to poll at each polling. Is default unlimited, but use 0 or negative number to disable it as unlimited." },
+    "messageAttributeNames": { "kind": "parameter", "displayName": "Message Attribute Names", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "serverSideEncryptionEnabled": { "kind": "parameter", "displayName": "Server Side Encryption Enabled", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 afte [...]
+    "waitTimeSeconds": { "kind": "parameter", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 que [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "batchSeparator": { "kind": "parameter", "displayName": "Batch Separator", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Set the separator when passing a String to send batch message operation" },
+    "delaySeconds": { "kind": "parameter", "displayName": "Delay Seconds", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Delay sending messages for a number of seconds." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "messageDeduplicationIdStrategy": { "kind": "parameter", "displayName": "Message Deduplication Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useExchangeId", "useContentBasedDeduplication" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "useExchangeId", "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration" [...]
+    "messageGroupIdStrategy": { "kind": "parameter", "displayName": "Message Group Id Strategy", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "useConstant", "useExchangeId", "usePropertyValue" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Only for FIFO queues. Strate [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sqs.Sqs2Operations", "enum": [ "sendBatchMessage", "deleteMessage", "listQueues", "purgeQueue", "deleteQueue" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "descriptio [...]
+    "delayQueue": { "kind": "parameter", "displayName": "Delay Queue", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Queue Url", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 i [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Maximum Message Size", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Message Retention Period", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Policy", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load th [...]
+    "receiveMessageWaitTimeSeconds": { "kind": "parameter", "displayName": "Receive Message Wait Time Seconds", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 Receive [...]
+    "redrivePolicy": { "kind": "parameter", "displayName": "Redrive Policy", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sqs.Sqs2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sts.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sts.json
new file mode 100644
index 0000000..f596f24
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-sts.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-sts",
+    "title": "AWS Security Token Service (STS)",
+    "description": "Manage AWS STS cluster instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.5.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.sts.STS2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-sts",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-sts",
+    "extendsScheme": "",
+    "syntax": "aws2-sts:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Configuration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Operations", "enum": [ "assumeRole", "getSessionToken", "getFederationToken" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configura [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpoi [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating t [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the [...]
+    "stsClient": { "kind": "property", "displayName": "Sts Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sts.StsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS STS as client" },
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Set whether the STS client should expect to load credentials through a d [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Operations", "enum": [ "assumeRole", "getSessionToken", "getFederationToken" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configur [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpo [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating  [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect th [...]
+    "stsClient": { "kind": "parameter", "displayName": "Sts Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sts.StsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS STS as client" },
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option" },
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Set whether the STS client should expect to load credentials through a  [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-translate.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-translate.json
new file mode 100644
index 0000000..25355b3
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/aws2-translate.json
@@ -0,0 +1,65 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-translate",
+    "title": "AWS Translate",
+    "description": "Translate texts using AWS Translate and AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.translate.Translate2Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-translate",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "aws2-translate",
+    "extendsScheme": "",
+    "syntax": "aws2-translate:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "autodetectSourceLanguage": { "kind": "property", "displayName": "Autodetect Source Language", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Being able to autodetect the source language" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.translate.Translate2Configuration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.translate.Translate2Operations", "enum": [ "translateText" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "translateText", "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "des [...]
+    "overrideEndpoint": { "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination wi [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when ins [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "The region in which Translate client needs to work. When using this parameter, the configuration will expect the lowercase n [...]
+    "sourceLanguage": { "kind": "property", "displayName": "Source Language", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.translate.TranslateClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS Translate [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoi [...]
+    "useDefaultCredentialsProvider": { "kind": "property", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Set whether the Translate client should expect to load crede [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "autodetectSourceLanguage": { "kind": "parameter", "displayName": "Autodetect Source Language", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.translate.Translate2Operations", "enum": [ "translateText" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "translateText", "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "de [...]
+    "overrideEndpoint": { "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Set the need for overidding the endpoint. This option needs to be used in combination w [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when in [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "The region in which Translate client needs to work. When using this parameter, the configuration will expect the lowercase  [...]
+    "sourceLanguage": { "kind": "parameter", "displayName": "Source Language", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Source language to use" },
+    "targetLanguage": { "kind": "parameter", "displayName": "Target Language", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Target language to use" },
+    "translateClient": { "kind": "parameter", "displayName": "Translate Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.translate.TranslateClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS Translat [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "uriEndpointOverride": { "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpo [...]
+    "useDefaultCredentialsProvider": { "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Set whether the Translate client should expect to load cred [...]
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.translate.Translate2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-eventhubs.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-eventhubs.json
new file mode 100644
index 0000000..c54846f
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-eventhubs.json
@@ -0,0 +1,70 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "azure-eventhubs",
+    "title": "Azure Event Hubs",
+    "description": "Send and receive events to\/from Azure Event Hubs using AMQP protocol.",
+    "deprecated": false,
+    "firstVersion": "3.5.0",
+    "label": "cloud,messaging",
+    "javaType": "org.apache.camel.component.azure.eventhubs.EventHubsComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-azure-eventhubs",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "azure-eventhubs",
+    "extendsScheme": "",
+    "syntax": "azure-eventhubs:namespace\/eventHubName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "amqpRetryOptions": { "kind": "property", "displayName": "Amqp Retry Options", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.azure.core.amqp.AmqpRetryOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the retry policy for EventHubAsyncClient. If not specified, the default r [...]
+    "amqpTransportType": { "kind": "property", "displayName": "Amqp Transport Type", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.azure.core.amqp.AmqpTransportType", "enum": [ "Amqp", "AmqpWebSockets" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "AMQP", "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the tran [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configurations" },
+    "blobAccessKey": { "kind": "property", "displayName": "Blob Access Key", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default BlobCheckpointStore, this sets access key for the associated azure acco [...]
+    "blobAccountName": { "kind": "property", "displayName": "Blob Account Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default BlobCheckpointStore, this sets Azure account name to be used for a [...]
+    "blobContainerName": { "kind": "property", "displayName": "Blob Container Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default BlobCheckpointStore, this sets the blob container that shall b [...]
+    "blobStorageSharedKeyCredential": { "kind": "property", "displayName": "Blob Storage Shared Key Credential", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default  [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "checkpointStore": { "kind": "property", "displayName": "Checkpoint Store", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.azure.messaging.eventhubs.CheckpointStore", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "BlobCheckpointStore", "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the CheckpointStore the  [...]
+    "consumerGroupName": { "kind": "property", "displayName": "Consumer Group Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "$Default", "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the name of the consumer group this consumer is associated  [...]
+    "eventPosition": { "kind": "property", "displayName": "Event Position", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, com.azure.messaging.eventhubs.models.EventPosition>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the map containing the event  [...]
+    "prefetchCount": { "kind": "property", "displayName": "Prefetch Count", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the count used by the receiver to control the number of events the Event Hub consumer w [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "partitionId": { "kind": "property", "displayName": "Partition Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the identifier of the Event Hub partition that the events will be sent to. If the identifier is not  [...]
+    "partitionKey": { "kind": "property", "displayName": "Partition Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets a hashing key to be provided for the batch of events, which instructs the Event Hubs service to ma [...]
+    "producerAsyncClient": { "kind": "property", "displayName": "Producer Async Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.azure.messaging.eventhubs.EventHubProducerAsyncClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the EventHubProducer [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "connectionString": { "kind": "property", "displayName": "Connection String", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Instead of supplying namespace, sharedAccessKey, sharedAccessName ... etc, you can just supply t [...]
+    "sharedAccessKey": { "kind": "property", "displayName": "Shared Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "The generated value for the SharedAccessName" },
+    "sharedAccessName": { "kind": "property", "displayName": "Shared Access Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "The name you chose for your EventHubs SAS keys" }
+  },
+  "properties": {
+    "namespace": { "kind": "path", "displayName": "Namespace", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "EventHubs namespace created in Azure Portal" },
+    "eventHubName": { "kind": "path", "displayName": "Event Hub Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "EventHubs name under a specific namcespace" },
+    "amqpRetryOptions": { "kind": "parameter", "displayName": "Amqp Retry Options", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.azure.core.amqp.AmqpRetryOptions", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the retry policy for EventHubAsyncClient. If not specified, the default  [...]
+    "amqpTransportType": { "kind": "parameter", "displayName": "Amqp Transport Type", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.azure.core.amqp.AmqpTransportType", "enum": [ "Amqp", "AmqpWebSockets" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "AMQP", "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the tra [...]
+    "blobAccessKey": { "kind": "parameter", "displayName": "Blob Access Key", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default BlobCheckpointStore, this sets access key for the associated azure acc [...]
+    "blobAccountName": { "kind": "parameter", "displayName": "Blob Account Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default BlobCheckpointStore, this sets Azure account name to be used for  [...]
+    "blobContainerName": { "kind": "parameter", "displayName": "Blob Container Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default BlobCheckpointStore, this sets the blob container that shall  [...]
+    "blobStorageSharedKeyCredential": { "kind": "parameter", "displayName": "Blob Storage Shared Key Credential", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "In case you chose the default [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "checkpointStore": { "kind": "parameter", "displayName": "Checkpoint Store", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.azure.messaging.eventhubs.CheckpointStore", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "BlobCheckpointStore", "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the CheckpointStore the [...]
+    "consumerGroupName": { "kind": "parameter", "displayName": "Consumer Group Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "$Default", "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the name of the consumer group this consumer is associated [...]
+    "eventPosition": { "kind": "parameter", "displayName": "Event Position", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, com.azure.messaging.eventhubs.models.EventPosition>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the map containing the event [...]
+    "prefetchCount": { "kind": "parameter", "displayName": "Prefetch Count", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the count used by the receiver to control the number of events the Event Hub consumer  [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "partitionId": { "kind": "parameter", "displayName": "Partition Id", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the identifier of the Event Hub partition that the events will be sent to. If the identifier is not [...]
+    "partitionKey": { "kind": "parameter", "displayName": "Partition Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets a hashing key to be provided for the batch of events, which instructs the Event Hubs service to m [...]
+    "producerAsyncClient": { "kind": "parameter", "displayName": "Producer Async Client", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.azure.messaging.eventhubs.EventHubProducerAsyncClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Sets the EventHubProduce [...]
+    "connectionString": { "kind": "parameter", "displayName": "Connection String", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "Instead of supplying namespace, sharedAccessKey, sharedAccessName ... etc, you can just supply  [...]
+    "sharedAccessKey": { "kind": "parameter", "displayName": "Shared Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "The generated value for the SharedAccessName" },
+    "sharedAccessName": { "kind": "parameter", "displayName": "Shared Access Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration", "configurationField": "configuration", "description": "The name you chose for your EventHubs SAS keys" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-blob.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-blob.json
new file mode 100644
index 0000000..73b95f8
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-blob.json
@@ -0,0 +1,109 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "azure-storage-blob",
+    "title": "Azure Storage Blob Service",
+    "description": "Store and retrieve blobs from Azure Storage Blob Service.",
+    "deprecated": false,
+    "firstVersion": "3.3.0",
+    "label": "cloud,file",
+    "javaType": "org.apache.camel.component.azure.storage.blob.BlobComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-azure-storage-blob",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "azure-storage-blob",
+    "extendsScheme": "",
+    "syntax": "azure-storage-blob:accountName\/containerName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "blobName": { "kind": "property", "displayName": "Blob Name", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "The blob name, to consume specific blob from a container. However on producer, is only required for the operations on [...]
+    "blobOffset": { "kind": "property", "displayName": "Blob Offset", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "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": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.blob.BlobType", "enum": [ "blockblob", "appendblob", "pageblob" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "blockblob", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description":  [...]
+    "closeStreamAfterRead": { "kind": "property", "displayName": "Close Stream After Read", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Close the stream after read or keep it open, default is true" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configurations" },
+    "credentials": { "kind": "property", "displayName": "Credentials", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "StorageSharedKeyCredential can be injected to create the azure client, this holds t [...]
+    "dataCount": { "kind": "property", "displayName": "Data Count", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "How many bytes to include in the range. Must be greater than or equal to 0 if specified." },
+    "fileDir": { "kind": "property", "displayName": "File Dir", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "The file directory where the downloaded blobs will be saved to, this can be used in both, producer and consumer" },
+    "maxResultsPerPage": { "kind": "property", "displayName": "Max Results Per Page", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of blobs to return, including all BlobPrefix elements. If the requ [...]
+    "maxRetryRequests": { "kind": "property", "displayName": "Max Retry Requests", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of additional HTTP Get requests that will be made while reading  [...]
+    "prefix": { "kind": "property", "displayName": "Prefix", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs." },
+    "regex": { "kind": "property", "displayName": "Regex", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Filters the results to return only blobs whose names match the specified regular expression. May be null to return all if bo [...]
+    "serviceClient": { "kind": "property", "displayName": "Service Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.blob.BlobServiceClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Client to a storage account. This client does not hold any state ab [...]
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "An optional timeout value beyond which a RuntimeException will be raised." },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "blobSequenceNumber": { "kind": "property", "displayName": "Blob Sequence Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "A user-controlled value that you can use to track requests. The value of [...]
+    "blockListType": { "kind": "property", "displayName": "Block List Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.azure.storage.blob.models.BlockListType", "enum": [ "committed", "uncommitted", "all" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "COMMITTED", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description":  [...]
+    "changeFeedContext": { "kind": "property", "displayName": "Change Feed Context", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.azure.core.util.Context", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When using getChangeFeed producer operation, this gives additional context that is  [...]
+    "changeFeedEndTime": { "kind": "property", "displayName": "Change Feed End Time", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When using getChangeFeed producer operation, this filters the results to return event [...]
+    "changeFeedStartTime": { "kind": "property", "displayName": "Change Feed Start Time", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When using getChangeFeed producer operation, this filters the results to return e [...]
+    "closeStreamAfterWrite": { "kind": "property", "displayName": "Close Stream After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Close the stream after write or keep it open, default is true" },
+    "commitBlockListLater": { "kind": "property", "displayName": "Commit Block List Later", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When is set to true, the staged blocks will not be committed directly." },
+    "createAppendBlob": { "kind": "property", "displayName": "Create Append Blob", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When is set to true, the append blocks will be created when committing append blocks." },
+    "createPageBlob": { "kind": "property", "displayName": "Create Page Blob", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When is set to true, the page blob will be created when uploading page blob." },
+    "downloadLinkExpiration": { "kind": "property", "displayName": "Download Link Expiration", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Override the default expiration (millis) of URL download link." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition", "enum": [ "listBlobContainers", "createBlobContainer", "deleteBlobContainer", "listBlobs", "getBlob", "deleteBlob", "downloadBlobToFile", "downloadLink", "uploadBlockBlob", "stageBlockBlobList", "commitBlobBlockList", "getBlobBlockList", "createAppendBlob", "c [...]
+    "pageBlobSize": { "kind": "property", "displayName": "Page Blob Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "512", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Specifies the maximum size for the page blob, up to 8 TB. The page blob size must  [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Access key for the associated azure account name to be used for authentication with azure blob services" },
+    "sourceBlobAccessKey": { "kind": "property", "displayName": "Source Blob Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Source Blob Access Key: for copyblob operation, sadly, we need to have an accessKey for th [...]
+  },
+  "properties": {
+    "accountName": { "kind": "path", "displayName": "Account Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Azure account name to be used for authentication with azure blob services" },
+    "containerName": { "kind": "path", "displayName": "Container Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "The blob container name" },
+    "blobName": { "kind": "parameter", "displayName": "Blob Name", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "The blob name, to consume specific blob from a container. However on producer, is only required for the operations o [...]
+    "blobOffset": { "kind": "parameter", "displayName": "Blob Offset", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Set the blob offset for the upload or download operations, default is 0" },
+    "blobServiceClient": { "kind": "parameter", "displayName": "Blob Service Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.blob.BlobServiceClient", "deprecated": false, "autowired": false, "secret": false, "description": "Client to a storage account. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. It may  [...]
+    "blobType": { "kind": "parameter", "displayName": "Blob Type", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.blob.BlobType", "enum": [ "blockblob", "appendblob", "pageblob" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "blockblob", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": [...]
+    "closeStreamAfterRead": { "kind": "parameter", "displayName": "Close Stream After Read", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Close the stream after read or keep it open, default is true" },
+    "credentials": { "kind": "parameter", "displayName": "Credentials", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "StorageSharedKeyCredential can be injected to create the azure client, this holds  [...]
+    "dataCount": { "kind": "parameter", "displayName": "Data Count", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "How many bytes to include in the range. Must be greater than or equal to 0 if specified." },
+    "fileDir": { "kind": "parameter", "displayName": "File Dir", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "The file directory where the downloaded blobs will be saved to, this can be used in both, producer and consumer" },
+    "maxResultsPerPage": { "kind": "parameter", "displayName": "Max Results Per Page", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of blobs to return, including all BlobPrefix elements. If the req [...]
+    "maxRetryRequests": { "kind": "parameter", "displayName": "Max Retry Requests", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of additional HTTP Get requests that will be made while reading [...]
+    "prefix": { "kind": "parameter", "displayName": "Prefix", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs." },
+    "regex": { "kind": "parameter", "displayName": "Regex", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Filters the results to return only blobs whose names match the specified regular expression. May be null to return all if b [...]
+    "serviceClient": { "kind": "parameter", "displayName": "Service Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.blob.BlobServiceClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Client to a storage account. This client does not hold any state a [...]
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "An optional timeout value beyond which a RuntimeException will be raised." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "blobSequenceNumber": { "kind": "parameter", "displayName": "Blob Sequence Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "A user-controlled value that you can use to track requests. The value o [...]
+    "blockListType": { "kind": "parameter", "displayName": "Block List Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.azure.storage.blob.models.BlockListType", "enum": [ "committed", "uncommitted", "all" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "COMMITTED", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": [...]
+    "changeFeedContext": { "kind": "parameter", "displayName": "Change Feed Context", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "com.azure.core.util.Context", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When using getChangeFeed producer operation, this gives additional context that is [...]
+    "changeFeedEndTime": { "kind": "parameter", "displayName": "Change Feed End Time", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When using getChangeFeed producer operation, this filters the results to return even [...]
+    "changeFeedStartTime": { "kind": "parameter", "displayName": "Change Feed Start Time", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.time.OffsetDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When using getChangeFeed producer operation, this filters the results to return  [...]
+    "closeStreamAfterWrite": { "kind": "parameter", "displayName": "Close Stream After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Close the stream after write or keep it open, default is true" },
+    "commitBlockListLater": { "kind": "parameter", "displayName": "Commit Block List Later", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When is set to true, the staged blocks will not be committed directly." },
+    "createAppendBlob": { "kind": "parameter", "displayName": "Create Append Blob", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When is set to true, the append blocks will be created when committing append blo [...]
+    "createPageBlob": { "kind": "parameter", "displayName": "Create Page Blob", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "When is set to true, the page blob will be created when uploading page blob." },
+    "downloadLinkExpiration": { "kind": "parameter", "displayName": "Download Link Expiration", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Override the default expiration (millis) of URL download link." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition", "enum": [ "listBlobContainers", "createBlobContainer", "deleteBlobContainer", "listBlobs", "getBlob", "deleteBlob", "downloadBlobToFile", "downloadLink", "uploadBlockBlob", "stageBlockBlobList", "commitBlobBlockList", "getBlobBlockList", "createAppendBlob", " [...]
+    "pageBlobSize": { "kind": "parameter", "displayName": "Page Blob Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "512", "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Specifies the maximum size for the page blob, up to 8 TB. The page blob size must [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Access key for the associated azure account name to be used for authentication with azure blob services" },
+    "sourceBlobAccessKey": { "kind": "parameter", "displayName": "Source Blob Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.storage.blob.BlobConfiguration", "configurationField": "configuration", "description": "Source Blob Access Key: for copyblob operation, sadly, we need to have an accessKey for t [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-datalake.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-datalake.json
new file mode 100644
index 0000000..4ba5350
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-datalake.json
@@ -0,0 +1,113 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "azure-storage-datalake",
+    "title": "Azure Storage Datalake Service",
+    "description": "Sends and receives files to\/from Azure DataLake Storage.",
+    "deprecated": false,
+    "firstVersion": "3.8.0",
+    "label": "cloud,file,bigdata",
+    "javaType": "org.apache.camel.component.azure.storage.datalake.DataLakeComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-azure-storage-datalake",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "azure-storage-datalake",
+    "extendsScheme": "",
+    "syntax": "azure-storage-datalake:accountName\/fileSystemName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "accountKey": { "kind": "property", "displayName": "Account Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "account key for authentication" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "client id for azure account" },
+    "clientSecret": { "kind": "property", "displayName": "Client Secret", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "client secret for azure account" },
+    "clientSecretCredential": { "kind": "property", "displayName": "Client Secret Credential", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.identity.ClientSecretCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "client secret credential for authentication" },
+    "close": { "kind": "property", "displayName": "Close", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "Whether or not a file changed event raised indicates completion (true) or modification (false)" },
+    "closeStreamAfterRead": { "kind": "property", "displayName": "Close Stream After Read", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "check for closing stream after read" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "configuration object for datalake" },
+    "dataCount": { "kind": "property", "displayName": "Data Count", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "count number of bytes to download" },
+    "directoryName": { "kind": "property", "displayName": "Directory Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "directory of the file to be handled in component" },
+    "downloadLinkExpiration": { "kind": "property", "displayName": "Download Link Expiration", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "download link expiration time" },
+    "expression": { "kind": "property", "displayName": "Expression", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "expression for queryInputStream" },
+    "fileDir": { "kind": "property", "displayName": "File Dir", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "directory of file to do operations in the local system" },
+    "fileName": { "kind": "property", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "name of file to be handled in component" },
+    "fileOffset": { "kind": "property", "displayName": "File Offset", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "offset position in file for different operations" },
+    "maxResults": { "kind": "property", "displayName": "Max Results", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "maximum number of results to show at a time" },
+    "maxRetryRequests": { "kind": "property", "displayName": "Max Retry Requests", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "no of retries to a given request" },
+    "openOptions": { "kind": "property", "displayName": "Open Options", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Set<java.nio.file.OpenOption>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "set open options for creating file" },
+    "path": { "kind": "property", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "path in azure datalake for operations" },
+    "permission": { "kind": "property", "displayName": "Permission", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "permission string for the file" },
+    "position": { "kind": "property", "displayName": "Position", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "This parameter allows the caller to upload data in parallel and control the order in which it is appended to the file." },
+    "recursive": { "kind": "property", "displayName": "Recursive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "recursively include all paths" },
+    "regex": { "kind": "property", "displayName": "Regex", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "regular expression for matching file names" },
+    "retainUncommitedData": { "kind": "property", "displayName": "Retain Uncommited Data", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "Whether or not uncommitted data is to be retained after the operation" },
+    "serviceClient": { "kind": "property", "displayName": "Service Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.file.datalake.DataLakeServiceClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "datalake service client for azure storage data [...]
+    "sharedKeyCredential": { "kind": "property", "displayName": "Shared Key Credential", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "shared key credential for azure datalake gen2" },
+    "tenantId": { "kind": "property", "displayName": "Tenant Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "tenant id for azure account" },
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "Timeout for operation" },
+    "umask": { "kind": "property", "displayName": "Umask", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "umask permission for file" },
+    "userPrincipalNameReturned": { "kind": "property", "displayName": "User Principal Name Returned", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "whether or not to use upn" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.datalake.DataLakeOperationsDefinition", "enum": [ "listFileSystem", "listFiles" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "listFileSystem", "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField" [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "accountName": { "kind": "path", "displayName": "Account Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "name of the azure account" },
+    "fileSystemName": { "kind": "path", "displayName": "File System Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "name of filesystem to be used" },
+    "accountKey": { "kind": "parameter", "displayName": "Account Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "account key for authentication" },
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "client id for azure account" },
+    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "client secret for azure account" },
+    "clientSecretCredential": { "kind": "parameter", "displayName": "Client Secret Credential", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.identity.ClientSecretCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "client secret credential for authentication" },
+    "close": { "kind": "parameter", "displayName": "Close", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "Whether or not a file changed event raised indicates completion (true) or modification (false)" },
+    "closeStreamAfterRead": { "kind": "parameter", "displayName": "Close Stream After Read", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "check for closing stream after read" },
+    "dataCount": { "kind": "parameter", "displayName": "Data Count", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "count number of bytes to download" },
+    "dataLakeServiceClient": { "kind": "parameter", "displayName": "Data Lake Service Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.file.datalake.DataLakeServiceClient", "deprecated": false, "autowired": false, "secret": false, "description": "service client of datalake" },
+    "directoryName": { "kind": "parameter", "displayName": "Directory Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "directory of the file to be handled in component" },
+    "downloadLinkExpiration": { "kind": "parameter", "displayName": "Download Link Expiration", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "download link expiration time" },
+    "expression": { "kind": "parameter", "displayName": "Expression", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "expression for queryInputStream" },
+    "fileDir": { "kind": "parameter", "displayName": "File Dir", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "directory of file to do operations in the local system" },
+    "fileName": { "kind": "parameter", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "name of file to be handled in component" },
+    "fileOffset": { "kind": "parameter", "displayName": "File Offset", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "offset position in file for different operations" },
+    "maxResults": { "kind": "parameter", "displayName": "Max Results", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "maximum number of results to show at a time" },
+    "maxRetryRequests": { "kind": "parameter", "displayName": "Max Retry Requests", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "no of retries to a given request" },
+    "openOptions": { "kind": "parameter", "displayName": "Open Options", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Set<java.nio.file.OpenOption>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "set open options for creating file" },
+    "path": { "kind": "parameter", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "path in azure datalake for operations" },
+    "permission": { "kind": "parameter", "displayName": "Permission", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "permission string for the file" },
+    "position": { "kind": "parameter", "displayName": "Position", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "This parameter allows the caller to upload data in parallel and control the order in which it is appended to the file." },
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "recursively include all paths" },
+    "regex": { "kind": "parameter", "displayName": "Regex", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "regular expression for matching file names" },
+    "retainUncommitedData": { "kind": "parameter", "displayName": "Retain Uncommited Data", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "Whether or not uncommitted data is to be retained after the operation" },
+    "serviceClient": { "kind": "parameter", "displayName": "Service Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.file.datalake.DataLakeServiceClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "datalake service client for azure storage dat [...]
+    "sharedKeyCredential": { "kind": "parameter", "displayName": "Shared Key Credential", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "shared key credential for azure datalake gen2" },
+    "tenantId": { "kind": "parameter", "displayName": "Tenant Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "tenant id for azure account" },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "Timeout for operation" },
+    "umask": { "kind": "parameter", "displayName": "Umask", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "umask permission for file" },
+    "userPrincipalNameReturned": { "kind": "parameter", "displayName": "User Principal Name Returned", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField": "configuration", "description": "whether or not to use upn" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.datalake.DataLakeOperationsDefinition", "enum": [ "listFileSystem", "listFiles" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "listFileSystem", "configurationClass": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration", "configurationField [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-queue.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-queue.json
new file mode 100644
index 0000000..482ea26
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/azure-storage-queue.json
@@ -0,0 +1,76 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "azure-storage-queue",
+    "title": "Azure Storage Queue Service",
+    "description": "Stores and retrieves messages to\/from Azure Storage Queue.",
+    "deprecated": false,
+    "firstVersion": "3.3.0",
+    "label": "cloud,messaging",
+    "javaType": "org.apache.camel.component.azure.storage.queue.QueueComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-azure-storage-queue",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "azure-storage-queue",
+    "extendsScheme": "",
+    "syntax": "azure-storage-queue:accountName\/queueName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configurations" },
+    "serviceClient": { "kind": "property", "displayName": "Service Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.azure.storage.queue.QueueServiceClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Service client to a storage account to interact with the  [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "createQueue": { "kind": "property", "displayName": "Create Queue", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "When is set to true, the queue will be automatically created when sending messages to the  [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.queue.QueueOperationDefinition", "enum": [ "listQueues", "createQueue", "deleteQueue", "clearQueue", "sendMessage", "deleteMessage", "receiveMessages", "peekMessages", "updateMessage" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.compone [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "maxMessages": { "kind": "property", "displayName": "Max Messages", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Maximum number of messages to get, if there are less messages exist in the queue than re [...]
+    "messageId": { "kind": "property", "displayName": "Message Id", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "The ID of the message to be deleted or updated." },
+    "popReceipt": { "kind": "property", "displayName": "Pop Receipt", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Unique identifier that must match for the message to be deleted or updated." },
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "queue", "label": "queue", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeExce [...]
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "queue", "label": "queue", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "How long the message will stay alive in the queue. If unset the value will default to 7 days, if -1 is passed  [...]
+    "visibilityTimeout": { "kind": "property", "displayName": "Visibility Timeout", "group": "queue", "label": "queue", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "The timeout period for how long the message is invisible in the queue. The timeout must be betwee [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Access key for the associated azure account name to be used for authentication with azure queue services" },
+    "credentials": { "kind": "property", "displayName": "Credentials", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "StorageSharedKeyCredential can be injected to create the azure client,  [...]
+  },
+  "properties": {
+    "accountName": { "kind": "path", "displayName": "Account Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Azure account name to be used for authentication with azure queue services" },
+    "queueName": { "kind": "path", "displayName": "Queue Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "The queue resource name" },
+    "serviceClient": { "kind": "parameter", "displayName": "Service Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.azure.storage.queue.QueueServiceClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Service client to a storage account to interact with the [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "createQueue": { "kind": "parameter", "displayName": "Create Queue", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "When is set to true, the queue will be automatically created when sending messages to the [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.azure.storage.queue.QueueOperationDefinition", "enum": [ "listQueues", "createQueue", "deleteQueue", "clearQueue", "sendMessage", "deleteMessage", "receiveMessages", "peekMessages", "updateMessage" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.compon [...]
+    "maxMessages": { "kind": "parameter", "displayName": "Max Messages", "group": "queue", "label": "queue", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Maximum number of messages to get, if there are less messages exist in the queue than r [...]
+    "messageId": { "kind": "parameter", "displayName": "Message Id", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "The ID of the message to be deleted or updated." },
+    "popReceipt": { "kind": "parameter", "displayName": "Pop Receipt", "group": "queue", "label": "queue", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Unique identifier that must match for the message to be deleted or updated." },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "queue", "label": "queue", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeExc [...]
+    "timeToLive": { "kind": "parameter", "displayName": "Time To Live", "group": "queue", "label": "queue", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "How long the message will stay alive in the queue. If unset the value will default to 7 days, if -1 is passed [...]
+    "visibilityTimeout": { "kind": "parameter", "displayName": "Visibility Timeout", "group": "queue", "label": "queue", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "The timeout period for how long the message is invisible in the queue. The timeout must be betwe [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "Access key for the associated azure account name to be used for authentication with azure queue services" },
+    "credentials": { "kind": "parameter", "displayName": "Credentials", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "com.azure.storage.common.StorageSharedKeyCredential", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.azure.storage.queue.QueueConfiguration", "configurationField": "configuration", "description": "StorageSharedKeyCredential can be injected to create the azure client, [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean-validator.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean-validator.json
new file mode 100644
index 0000000..cd40e31
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean-validator.json
@@ -0,0 +1,45 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "bean-validator",
+    "title": "Bean Validator",
+    "description": "Validate the message body using the Java Bean Validation API.",
+    "deprecated": false,
+    "firstVersion": "2.3.0",
+    "label": "validation",
+    "javaType": "org.apache.camel.component.bean.validator.BeanValidatorComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-bean-validator",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "bean-validator",
+    "extendsScheme": "",
+    "syntax": "bean-validator:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "ignoreXmlConfiguration": { "kind": "property", "displayName": "Ignore Xml Configuration", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to ignore data from the META-INF\/validation.xml file." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "constraintValidatorFactory": { "kind": "property", "displayName": "Constraint Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ConstraintValidatorFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom ConstraintValidatorFactory" },
+    "messageInterpolator": { "kind": "property", "displayName": "Message Interpolator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.MessageInterpolator", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MessageInterpolator" },
+    "traversableResolver": { "kind": "property", "displayName": "Traversable Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.TraversableResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom TraversableResolver" },
+    "validationProviderResolver": { "kind": "property", "displayName": "Validation Provider Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidationProviderResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a a custom ValidationProviderResolver" },
+    "validatorFactory": { "kind": "property", "displayName": "Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidatorFactory", "deprecated": false, "autowired": true, "secret": false, "description": "To use a custom ValidatorFactory" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Where label is an arbitrary text value describing the endpoint" },
+    "group": { "kind": "parameter", "displayName": "Group", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "javax.validation.groups.Default", "description": "To use a custom validation group" },
+    "ignoreXmlConfiguration": { "kind": "parameter", "displayName": "Ignore Xml Configuration", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to ignore data from the META-INF\/validation.xml file." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "constraintValidatorFactory": { "kind": "parameter", "displayName": "Constraint Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ConstraintValidatorFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom ConstraintValidatorFactory" },
+    "messageInterpolator": { "kind": "parameter", "displayName": "Message Interpolator", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.MessageInterpolator", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MessageInterpolator" },
+    "traversableResolver": { "kind": "parameter", "displayName": "Traversable Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.TraversableResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom TraversableResolver" },
+    "validationProviderResolver": { "kind": "parameter", "displayName": "Validation Provider Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidationProviderResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a a custom ValidationProviderResolver" },
+    "validatorFactory": { "kind": "parameter", "displayName": "Validator Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.validation.ValidatorFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom ValidatorFactory" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean.json
new file mode 100644
index 0000000..082ca78
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/bean.json
@@ -0,0 +1,38 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "bean",
+    "title": "Bean",
+    "description": "Invoke methods of Java beans stored in Camel registry.",
+    "deprecated": false,
+    "firstVersion": "1.0.0",
+    "label": "core,java",
+    "javaType": "org.apache.camel.component.bean.BeanComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-bean",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "bean",
+    "extendsScheme": "",
+    "syntax": "bean:beanName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "cache": { "kind": "property", "displayName": "Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": true, "autowired": false, "secret": false, "defaultValue": "true", "description": "Use singleton option instead." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "scope": { "kind": "property", "displayName": "Scope", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.BeanScope", "enum": [ "Singleton", "Request", "Prototype" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Singleton", "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-sa [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "beanName": { "kind": "path", "displayName": "Bean Name", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the bean to invoke" },
+    "cache": { "kind": "parameter", "displayName": "Cache", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": true, "autowired": false, "secret": false, "description": "Use scope option instead." },
+    "method": { "kind": "parameter", "displayName": "Method", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of the method to invoke on the bean" },
+    "scope": { "kind": "parameter", "displayName": "Scope", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.BeanScope", "enum": [ "Singleton", "Request", "Prototype" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Singleton", "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thre [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "parameters": { "kind": "parameter", "displayName": "Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "bean.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Used for configuring additional properties on the bean" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/beanstalk.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/beanstalk.json
new file mode 100644
index 0000000..0c64527
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/beanstalk.json
@@ -0,0 +1,60 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "beanstalk",
+    "title": "Beanstalk",
+    "description": "Retrieve and post-process Beanstalk jobs.",
+    "deprecated": true,
+    "firstVersion": "2.15.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.beanstalk.BeanstalkComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-beanstalk",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "beanstalk",
+    "extendsScheme": "",
+    "syntax": "beanstalk:connectionSettings",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "connectionSettingsFactory": { "kind": "property", "displayName": "Connection Settings Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.beanstalk.ConnectionSettingsFactory", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory to use to make connections to Beanstalkd. Especially useful for [...]
+  },
+  "properties": {
+    "connectionSettings": { "kind": "path", "displayName": "Connection Settings", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Connection settings host:port\/tube" },
+    "command": { "kind": "parameter", "displayName": "Command", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.beanstalk.BeanstalkCommand", "enum": [ "bury", "release", "put", "touch", "delete", "kick" ], "deprecated": false, "autowired": false, "secret": false, "description": "put means to put the job into Beanstalk. Job body is specified in the Camel message body. Job ID will be returned in beanstalk.jobId message header. de [...]
+    "jobDelay": { "kind": "parameter", "displayName": "Job Delay", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Job delay in seconds." },
+    "jobPriority": { "kind": "parameter", "displayName": "Job Priority", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Job priority. (0 is the highest, see Beanstalk protocol)" },
+    "jobTimeToRun": { "kind": "parameter", "displayName": "Job Time To Run", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60, "description": "Job time to run in seconds. (when 0, the beanstalkd daemon raises it to 1 automatically, see Beanstalk protocol)" },
+    "awaitJob": { "kind": "parameter", "displayName": "Await Job", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to wait for job to complete before ack the job from beanstalk" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "onFailure": { "kind": "parameter", "displayName": "On Failure", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.beanstalk.BeanstalkCommand", "enum": [ "bury", "release", "put", "touch", "delete", "kick" ], "deprecated": false, "autowired": false, "secret": false, "description": "Command to use when processing failed." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "useBlockIO": { "kind": "parameter", "displayName": "Use Block IO", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to use blockIO." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/box.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/box.json
new file mode 100644
index 0000000..4df72f1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/box.json
@@ -0,0 +1,94 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "box",
+    "title": "Box",
+    "description": "Upload, download and manage files, folders, groups, collaborations, etc. on box.com.",
+    "deprecated": false,
+    "deprecationNote": "",
+    "firstVersion": "2.14.0",
+    "label": "cloud,file,api",
+    "javaType": "org.apache.camel.component.box.BoxComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-box",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "box",
+    "extendsScheme": "",
+    "syntax": "box:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Custom HTTP params for settings like proxy host" },
+    "authenticationType": { "kind": "property", "displayName": "Authentication Type", "group": "authentication", "label": "authentication", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 Au [...]
+    "accessTokenCache": { "kind": "property", "displayName": "Access Token Cache", "group": "security", "label": "advanced,security", "required": false, "type": "object", "javaType": "com.box.sdk.IAccessTokenCache", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "RSA_SHA_256", "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "descriptio [...]
+    "maxCacheEntries": { "kind": "property", "displayName": "Max Cache Entries", "group": "security", "label": "advanced,security", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 100, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The maximum number of access tokens in cache." },
+    "privateKeyFile": { "kind": "property", "displayName": "Private Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField" [...]
+    "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "What sub operation to use for the selected operation" },
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Box application client ID" },
+    "enterpriseId": { "kind": "parameter", "displayName": "Enterprise Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The enterprise ID to use for an App Enterprise." },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "userId": { "kind": "parameter", "displayName": "User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The user ID to use for an App User." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "httpParams": { "kind": "parameter", "displayName": "Http Params", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Custom HTTP params for settings like proxy host" },
+    "authenticationType": { "kind": "parameter", "displayName": "Authentication Type", "group": "authentication", "label": "authentication", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 A [...]
+    "accessTokenCache": { "kind": "parameter", "displayName": "Access Token Cache", "group": "security", "label": "advanced,security", "required": false, "type": "object", "javaType": "com.box.sdk.IAccessTokenCache", "deprecated": false, "autowired": 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": "parameter", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Box application client secret" },
+    "encryptionAlgorithm": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "RSA_SHA_256", "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "descripti [...]
+    "maxCacheEntries": { "kind": "parameter", "displayName": "Max Cache Entries", "group": "security", "label": "advanced,security", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 100, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The maximum number of access tokens in cache." },
+    "privateKeyFile": { "kind": "parameter", "displayName": "Private Key File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The private key for generating the JWT signature." },
+    "privateKeyPassword": { "kind": "parameter", "displayName": "Private Key Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "The password for the private key." },
+    "publicKeyId": { "kind": "parameter", "displayName": "Public Key Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters." },
+    "userName": { "kind": "parameter", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.box.BoxConfiguration", "configurationField": "configuration", "description": "Box user name, MUST be provided" },
+    "userPassword": { "kind": "parameter", "displayName": "User Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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" }
+  },
+  "apis": {
+    "collaborations": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box collaborations", "aliases": [ "addFolderCollaboration=add", "addFolderCollaborationByEmail=addByEmail", "deleteCollaboration=delete", "getFolderCollaborations=collaborations", "getPendingCollaborations=pendingCollaborations", "getCollaborationInfo=info", "updateCollaborationInfo=updateInfo" ], "methods": { "addFolderCollaboration": { "description": "Add a collaboration t [...]
+    "comments": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box comments", "aliases": [ "addFileComment=add", "changeCommentMessage=updateMessage", "deleteComment=delete", "getCommentInfo=info", "getFileComments=comments", "replyToComment=reply" ], "methods": { "addFileComment": { "description": "Add comment to file", "signatures": [ "com.box.sdk.BoxFile addFileComment(String fileId, String message)" ] }, "changeCommentMessage": { "descrip [...]
+    "event-logs": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to read Box enterprise (admin) event logs", "aliases": [ "getEnterpriseEvents=events" ], "methods": { "getEnterpriseEvents": { "description": "Create an event stream with optional starting initial position and add listener that will be notified when an event is received", "signatures": [ "java.util.List<com.box.sdk.BoxEvent> getEnterpriseEvents(String position, java.util.Date after, java. [...]
+    "events": { "consumerOnly": true, "producerOnly": false, "description": "Provides operations to manage Box events", "methods": { "listen": { "description": "Create an event stream with optional starting initial position and add listener that will be notified when an event is received", "signatures": [ "void listen(com.box.sdk.EventListener listener, Long startingPosition)" ] } } },
+    "files": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box files", "aliases": [ "uploadFile=upload", "downloadFile=download", "copyFile=copy", "moveFile=move", "renameFile=rename", "createFileSharedLink=link", "deleteFile=delete", "uploadNewFileVersion=uploadVersion", "promoteFileVersion=promoteVersion", "getFileVersions=versions", "downloadPreviousFileVersion=downloadVersion", "deleteFileVersion=deleteVersion", "getFileInfo=info", "upda [...]
+    "folders": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box folders", "aliases": [ "getRootFolder=root", "createFolder=create", "copyFolder=copy", "moveFolder=move", "renameFolder=rename", "createFolderSharedLink=link", "deleteFolder=delete", "getFolder=folder", "getFolderInfo=info", "getFolderItems=items", "updateFolderInfo=updateInfo" ], "methods": { "copyFolder": { "description": "Copy folder to destination folder while optionally gi [...]
+    "groups": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box groups", "aliases": [ "createGroup=create", "deleteGroup=delete", "getAllGroups=groups", "getGroupInfo=info", "addGroupMembership=addMembership", "deleteGroupMembership=deleteMembership", "getGroupMemberships=memberships", "getGroupMembershipInfo=membershipInfo", "updateGroupMembershipInfo=updateMembershipInfo" ], "methods": { "addGroupMembership": { "description": "Add a member [...]
+    "search": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box searches", "aliases": [ "searchFolder=search" ], "methods": { "searchFolder": { "description": "Search folder and all descendant folders using the given query", "signatures": [ "java.util.Collection<com.box.sdk.BoxItem> searchFolder(String folderId, String query)" ] } } },
+    "tasks": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box tasks", "aliases": [ "addFileTask=add", "deleteTask=delete", "getFileTasks=tasks", "getTaskInfo=info", "updateTaskInfo=updateInfo", "addAssignmentToTask=addAssignment", "deleteTaskAssignment=deleteAssignment", "getTaskAssignments=assignments", "getTaskAssignmentInfo=assignmentInfo" ], "methods": { "addAssignmentToTask": { "description": "Add assignment for task", "signatures": [  [...]
+    "users": { "consumerOnly": false, "producerOnly": true, "description": "Provides operations to manage Box users", "aliases": [ "getCurrentUser=currentUser", "getAllEnterpriseOrExternalUsers=users", "createAppUser=create", "createEnterpriseUser=create", "deleteUser=delete", "addUserEmailAlias=addEmailAlias", "getUserEmailAlias=emailAlias", "deleteUserEmailAlias=deleteEmailAlias", "getUserInfo=info", "updateUserInfo=updateInfo" ], "methods": { "addUserEmailAlias": { "description": "Add [...]
+  },
+  "apiProperties": {
+    "collaborations": { "methods": { "addFolderCollaboration": { "properties": { "collaborator": { "kind": "parameter", "displayName": "Collaborator", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.box.sdk.BoxCollaborator", "deprecated": false, "autowired": false, "secret": false, "description": "The collaborator to add", "optional": false }, "folderId": { "kind": "parameter", "displayName": "Folder Id", "group": "producer", "label": "", "required [...]
+    "comments": { "methods": { "addFileComment": { "properties": { "fileId": { "kind": "parameter", "displayName": "File Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of file", "optional": false }, "message": { "kind": "parameter", "displayName": "Message", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.la [...]
+    "event-logs": { "methods": { "getEnterpriseEvents": { "properties": { "after": { "kind": "parameter", "displayName": "After", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.util.Date", "deprecated": false, "autowired": false, "secret": false, "description": "The lower bound on the timestamp of the events returned", "optional": false }, "before": { "kind": "parameter", "displayName": "Before", "group": "producer", "label": "", "required": fals [...]
+    "events": { "methods": { "listen": { "properties": { "startingPosition": { "kind": "parameter", "displayName": "Starting Position", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "The starting position of the event stream", "optional": true } } } } },
+    "files": { "methods": { "checkUpload": { "properties": { "fileName": { "kind": "parameter", "displayName": "File Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The name to give the uploaded file", "optional": false }, "parentFolderId": { "kind": "parameter", "displayName": "Parent Folder Id", "group": "producer", "label": "", "required": false, "typ [...]
+    "folders": { "methods": { "copyFolder": { "properties": { "destinationFolderId": { "kind": "parameter", "displayName": "Destination Folder Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of the destination folder", "optional": false }, "folderId": { "kind": "parameter", "displayName": "Folder Id", "group": "producer", "label": "", "required": fa [...]
+    "groups": { "methods": { "addGroupMembership": { "properties": { "groupId": { "kind": "parameter", "displayName": "Group Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of group", "optional": false }, "role": { "kind": "parameter", "displayName": "Role", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.box. [...]
+    "search": { "methods": { "searchFolder": { "properties": { "folderId": { "kind": "parameter", "displayName": "Folder Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of folder searched", "optional": false }, "query": { "kind": "parameter", "displayName": "Query", "group": "producer", "label": "", "required": false, "type": "string", "javaType": " [...]
+    "tasks": { "methods": { "addAssignmentToTask": { "properties": { "assignTo": { "kind": "parameter", "displayName": "Assign To", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.box.sdk.BoxUser", "deprecated": false, "autowired": false, "secret": false, "description": "The user to assign to task", "optional": false }, "taskId": { "kind": "parameter", "displayName": "Task Id", "group": "producer", "label": "", "required": false, "type": "string",  [...]
+    "users": { "methods": { "addUserEmailAlias": { "properties": { "email": { "kind": "parameter", "displayName": "Email", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The email address to add as an alias", "optional": false }, "userId": { "kind": "parameter", "displayName": "User Id", "group": "producer", "label": "", "required": false, "type": "string", "j [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/braintree.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/braintree.json
new file mode 100644
index 0000000..da70e82
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/braintree.json
@@ -0,0 +1,81 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "braintree",
+    "title": "Braintree",
+    "description": "Process payments using Braintree Payments.",
+    "deprecated": false,
+    "firstVersion": "2.17.0",
+    "label": "cloud,payment",
+    "javaType": "org.apache.camel.component.braintree.BraintreeComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-braintree",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "braintree",
+    "extendsScheme": "",
+    "syntax": "braintree:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.braintree.BraintreeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" }
+  },
+  "properties": {
+    "apiName": { "kind": "path", "displayName": "Api Name", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.braintree.internal.BraintreeApiName", "enum": [ "ADD_ON", "ADDRESS", "CLIENT_TOKEN", "CREDIT_CARD_VERIFICATION", "CUSTOMER", "DISCOUNT", "DISPUTE", "DOCUMENT_UPLOAD", "MERCHANT_ACCOUNT", "PAYMENT_METHOD", "PAYMENT_METHOD_NONCE", "PLAN", "REPORT", "SETTLEMENT_BATCH_SUMMARY", "SUBSCRIPTION", "TRANSACTION", "WEBHOOK_NOTIFIC [...]
+    "methodName": { "kind": "path", "displayName": "Method Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "accept", "addFileEvidence", "addTextEvidence", "cancel", "cancelRelease", "cloneTransaction", "create", "createForCurrency", "credit", "delete", "fetchMerchantAccounts", "finalize", "find", "generate", "grant", "holdInEscrow", "parse", "refund", "releaseFromEscrow", "removeEvidence", "retryCharge", "revoke", "sa [...]
+    "environment": { "kind": "parameter", "displayName": "Environment", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The environment Either SANDBOX or PRODUCTION" },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "merchantId": { "kind": "parameter", "displayName": "Merchant Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The merchant id provided by Braintree." },
+    "httpReadTimeout": { "kind": "parameter", "displayName": "Http Read Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "Set read timeout for http calls." },
+    "httpLogLevel": { "kind": "parameter", "displayName": "Http Log Level", "group": "logging", "label": "logging", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "OFF", "SEVERE", "WARNING", "INFO", "CONFIG", "FINE", "FINER", "FINEST", "ALL" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "Set logging level [...]
+    "httpLogName": { "kind": "parameter", "displayName": "Http Log Name", "group": "logging", "label": "logging", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Log Handler Enabled", "group": "logging", "label": "logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 'f [...]
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The proxy host" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The proxy port" },
+    "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 pla [...]
+    "privateKey": { "kind": "parameter", "displayName": "Private Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The private key provided by Braintree." },
+    "publicKey": { "kind": "parameter", "displayName": "Public Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.braintree.BraintreeConfiguration", "configurationField": "configuration", "description": "The public key provided by Braintree." }
+  },
+  "apis": {
+    "address": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to create, delete, find, and update Address objects", "methods": { "create": { "description": "Creates an Address for a Customer", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Address> create(String customerId, com.braintreegateway.AddressRequest request)" ] }, "delete": { "description": "Deletes a Customer's Address", "signatures": [ "com.braintreegateway.Result<com.braint [...]
+    "clientToken": { "consumerOnly": false, "producerOnly": true, "description": "Generates client tokens, which are used to authenticate requests made directly on behalf of merchants This class does not need to be instantiated directly", "methods": { "generate": { "description": "", "signatures": [ "String generate()", "String generate(com.braintreegateway.ClientTokenRequest request)" ] } } },
+    "creditCardVerification": { "consumerOnly": false, "producerOnly": true, "description": "To verify credit card information", "methods": { "create": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.CreditCardVerification> create(com.braintreegateway.CreditCardVerificationRequest request)" ] }, "find": { "description": "", "signatures": [ "com.braintreegateway.CreditCardVerification find(String id)" ] }, "search": { "description": "", "signatures": [...]
+    "customer": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to create, delete, find, and update Customer objects", "methods": { "create": { "description": "Creates a Customer", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Customer> create(com.braintreegateway.CustomerRequest request)" ] }, "delete": { "description": "Deletes a Customer by id", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Customer> delete(String [...]
+    "dispute": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to interact with Dispute objects", "methods": { "accept": { "description": "Accept a Dispute, given a dispute ID", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Dispute> accept(String id)" ] }, "addFileEvidence": { "description": "Add File Evidence to a Dispute, given an ID and a FileEvidenceRequest File evidence request", "signatures": [ "com.braintreegateway.Result<com.bra [...]
+    "documentUpload": { "consumerOnly": false, "producerOnly": true, "description": "API to upload evidence documents", "methods": { "create": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.DocumentUpload> create(com.braintreegateway.DocumentUploadRequest request)" ] } } },
+    "merchantAccount": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to create, find, and update MerchantAccount objects", "methods": { "create": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.MerchantAccount> create(com.braintreegateway.MerchantAccountRequest request)" ] }, "createForCurrency": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.MerchantAccount> createForCurrency [...]
+    "paymentMethod": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to interact with payments", "methods": { "create": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.? extends PaymentMethod> create(com.braintreegateway.PaymentMethodRequest request)" ] }, "delete": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.? extends PaymentMethod> delete(String token)", "com.braintreegatew [...]
+    "paymentMethodNonce": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to interact with nonce payments", "methods": { "create": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.PaymentMethodNonce> create(String paymentMethodToken)", "com.braintreegateway.Result<com.braintreegateway.PaymentMethodNonce> create(com.braintreegateway.PaymentMethodNonceRequest request)" ] }, "find": { "description": "", "signatures": [ "c [...]
+    "plan": { "consumerOnly": false, "producerOnly": true, "description": "", "methods": { "create": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Plan> create(com.braintreegateway.PlanRequest request)" ] }, "find": { "description": "", "signatures": [ "com.braintreegateway.Plan find(String id)" ] }, "update": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Plan> update(String id, com.braintreegateway.PlanReq [...]
+    "report": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to interact with reports", "methods": { "transactionLevelFees": { "description": "Retrieves a Transaction-Level Fee Report", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.TransactionLevelFeeReport> transactionLevelFees(com.braintreegateway.TransactionLevelFeeReportRequest request)" ] } } },
+    "settlementBatchSummary": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to interact wit settlement summaries", "methods": { "generate": { "description": "", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.SettlementBatchSummary> generate(java.util.Calendar settlementDate)", "com.braintreegateway.Result<com.braintreegateway.SettlementBatchSummary> generate(java.util.Calendar settlementDate, String groupByCustomField)" ] } } },
+    "subscription": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to interact with Subscriptions", "methods": { "cancel": { "description": "Cancels the Subscription with the given id", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Subscription> cancel(String id)" ] }, "create": { "description": "Creates a Subscription", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Subscription> create(com.braintreegateway.Subscrip [...]
+    "transaction": { "consumerOnly": false, "producerOnly": true, "description": "Provides methods to interact with Transactions", "methods": { "adjustAuthorization": { "description": "Submits the transaction with the given id to be adjusted for the given amount which must be less than or equal to the authorization amount", "signatures": [ "com.braintreegateway.Result<com.braintreegateway.Transaction> adjustAuthorization(String id, com.braintreegateway.TransactionRequest request)", "com. [...]
+    "webhookNotification": { "consumerOnly": false, "producerOnly": true, "description": "To retrieve notifications via webhooks", "methods": { "parse": { "description": "", "signatures": [ "com.braintreegateway.WebhookNotification parse(String signature, String payload)" ] }, "parseWithoutSignatureVerification": { "description": "", "signatures": [ "com.braintreegateway.WebhookNotification parseWithoutSignatureVerification(String payload)" ] }, "verify": { "description": "", "signatures [...]
+  },
+  "apiProperties": {
+    "address": { "methods": { "create": { "properties": { "customerId": { "kind": "parameter", "displayName": "Customer Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of the Customer", "optional": false }, "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": " [...]
+    "clientToken": { "methods": { "generate": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.ClientTokenRequest", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } } } },
+    "creditCardVerification": { "methods": { "create": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.CreditCardVerificationRequest", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } }, "find": { "properties": { "id": { "kind": "parameter", "displayName": "Id", "group": "producer", "label": "", "required" [...]
+    "customer": { "methods": { "create": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.CustomerRequest", "deprecated": false, "autowired": false, "secret": false, "description": "The request", "optional": false } } }, "delete": { "properties": { "id": { "kind": "parameter", "displayName": "Id", "group": "producer", "label": "", "required": false, "type" [...]
+    "dispute": { "methods": { "accept": { "properties": { "id": { "kind": "parameter", "displayName": "Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The dispute id to accept", "optional": false } } }, "addFileEvidence": { "properties": { "disputeId": { "kind": "parameter", "displayName": "Dispute Id", "group": "producer", "label": "", "required": false,  [...]
+    "documentUpload": { "methods": { "create": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.DocumentUploadRequest", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } } } },
+    "merchantAccount": { "methods": { "create": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.MerchantAccountRequest", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } }, "createForCurrency": { "properties": { "currencyRequest": { "kind": "parameter", "displayName": "Currency Request", "group": "producer [...]
+    "paymentMethod": { "methods": { "create": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.PaymentMethodRequest", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } }, "delete": { "properties": { "deleteRequest": { "kind": "parameter", "displayName": "Delete Request", "group": "producer", "label": "", "re [...]
+    "paymentMethodNonce": { "methods": { "create": { "properties": { "paymentMethodToken": { "kind": "parameter", "displayName": "Payment Method Token", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false }, "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaTy [...]
+    "plan": { "methods": { "create": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.PlanRequest", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false } } }, "find": { "properties": { "id": { "kind": "parameter", "displayName": "Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType [...]
+    "report": { "methods": { "transactionLevelFees": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.braintreegateway.TransactionLevelFeeReportRequest", "deprecated": false, "autowired": false, "secret": false, "description": "The request", "optional": false } } } } },
+    "settlementBatchSummary": { "methods": { "generate": { "properties": { "groupByCustomField": { "kind": "parameter", "displayName": "Group By Custom Field", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false }, "settlementDate": { "kind": "parameter", "displayName": "Settlement Date", "group": "producer", "label": "", "required": false, "ty [...]
+    "subscription": { "methods": { "cancel": { "properties": { "id": { "kind": "parameter", "displayName": "Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Of the Subscription to cancel", "optional": false } } }, "create": { "properties": { "request": { "kind": "parameter", "displayName": "Request", "group": "producer", "label": "", "required": false, "typ [...]
+    "transaction": { "methods": { "adjustAuthorization": { "properties": { "amount": { "kind": "parameter", "displayName": "Amount", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.math.BigDecimal", "deprecated": false, "autowired": false, "secret": false, "description": "To be adjusted", "optional": false }, "id": { "kind": "parameter", "displayName": "Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.l [...]
+    "webhookNotification": { "methods": { "parse": { "properties": { "payload": { "kind": "parameter", "displayName": "Payload", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "", "optional": false }, "signature": { "kind": "parameter", "displayName": "Signature", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.Stri [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/browse.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/browse.json
new file mode 100644
index 0000000..2557b2d
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/browse.json
@@ -0,0 +1,36 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "browse",
+    "title": "Browse",
+    "description": "Inspect the messages received on endpoints supporting BrowsableEndpoint.",
+    "deprecated": false,
+    "firstVersion": "1.3.0",
+    "label": "core,monitoring",
+    "javaType": "org.apache.camel.component.browse.BrowseComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-browse",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "browse",
+    "extendsScheme": "",
+    "syntax": "browse:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A name which can be any string to uniquely identify the endpoint" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/chatscript.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/chatscript.json
new file mode 100644
index 0000000..603daed
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/chatscript.json
@@ -0,0 +1,36 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "chatscript",
+    "title": "ChatScript",
+    "description": "Chat with a ChatScript Server.",
+    "deprecated": false,
+    "firstVersion": "3.0.0",
+    "label": "ai,chat",
+    "javaType": "org.apache.camel.component.chatscript.ChatScriptComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-chatscript",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "chatscript",
+    "extendsScheme": "",
+    "syntax": "chatscript:host:port\/botName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Hostname or IP of the server on which CS server is running" },
+    "port": { "kind": "path", "displayName": "Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "description": "Port on which ChatScript is listening to" },
+    "botName": { "kind": "path", "displayName": "Bot Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the Bot in CS to converse with" },
+    "chatUserName": { "kind": "parameter", "displayName": "Chat User Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Username who initializes the CS conversation. To be set when chat is initialized from camel route" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "resetChat": { "kind": "parameter", "displayName": "Reset Chat", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Issues :reset command to start a new conversation everytime" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cm-sms.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cm-sms.json
new file mode 100644
index 0000000..34b6a60
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cm-sms.json
@@ -0,0 +1,36 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "cm-sms",
+    "title": "CM SMS Gateway",
+    "description": "Send SMS messages via CM SMS Gateway.",
+    "deprecated": false,
+    "firstVersion": "2.18.0",
+    "label": "mobile",
+    "javaType": "org.apache.camel.component.cm.CMComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-cm-sms",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "cm-sms",
+    "extendsScheme": "",
+    "syntax": "cm-sms:host",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "SMS Provider HOST with scheme" },
+    "defaultFrom": { "kind": "parameter", "displayName": "Default From", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.cm.CMConfiguration", "configurationField": "configuration", "description": "This is the sender name. The maximum length is 11 characters." },
+    "defaultMaxNumberOfParts": { "kind": "parameter", "displayName": "Default Max Number Of Parts", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8, "configurationClass": "org.apache.camel.component.cm.CMConfiguration", "configurationField": "configuration", "description": "If it is a multipart message forces the max number. Message can be truncated. Technically the gate [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "productToken": { "kind": "parameter", "displayName": "Product Token", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.cm.CMConfiguration", "configurationField": "configuration", "description": "The unique token to use" },
+    "testConnectionOnStartup": { "kind": "parameter", "displayName": "Test Connection On Startup", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.cm.CMConfiguration", "configurationField": "configuration", "description": "Whether to test the connection to the SMS Gateway on startup" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cmis.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cmis.json
new file mode 100644
index 0000000..f99a82f
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cmis.json
@@ -0,0 +1,46 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "cmis",
+    "title": "CMIS",
+    "description": "Read and write data from to\/from a CMIS compliant content repositories.",
+    "deprecated": false,
+    "firstVersion": "2.11.0",
+    "label": "cms,database",
+    "javaType": "org.apache.camel.component.cmis.CMISComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-cmis",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "cmis",
+    "extendsScheme": "",
+    "syntax": "cmis:cmsUrl",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "sessionFacadeFactory": { "kind": "property", "displayName": "Session Facade Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.cmis.CMISSessionFacadeFactory", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances" }
+  },
+  "properties": {
+    "cmsUrl": { "kind": "path", "displayName": "Cms Url", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URL to the cmis repository" },
+    "pageSize": { "kind": "parameter", "displayName": "Page Size", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 100, "configurationClass": "org.apache.camel.component.cmis.CMISSessionFacade", "configurationField": "sessionFacade", "description": "Number of nodes to retrieve per page" },
+    "readContent": { "kind": "parameter", "displayName": "Read Content", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.cmis.CMISSessionFacade", "configurationField": "sessionFacade", "description": "If set to true, the content of document node will be retrieved in addition to the properties" },
+    "readCount": { "kind": "parameter", "displayName": "Read Count", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.cmis.CMISSessionFacade", "configurationField": "sessionFacade", "description": "Max number of nodes to read" },
+    "repositoryId": { "kind": "parameter", "displayName": "Repository Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.cmis.CMISSessionFacade", "configurationField": "sessionFacade", "description": "The Id of the repository to use. If not specified the first available repository is used" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "query": { "kind": "parameter", "displayName": "Query", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.cmis.CMISSessionFacade", "configurationField": "sessionFacade", "description": "The cmis query to execute against the repository. If not specified, the consumer will retrieve every node from the content repository [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "queryMode": { "kind": "parameter", "displayName": "Query Mode", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, will execute the cmis query from the message body and return result, otherwise will create a node in the cmis repository" },
+    "sessionFacadeFactory": { "kind": "parameter", "displayName": "Session Facade Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.cmis.CMISSessionFacadeFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances" },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.cmis.CMISSessionFacade", "configurationField": "sessionFacade", "description": "Password for the cmis repository" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.cmis.CMISSessionFacade", "configurationField": "sessionFacade", "description": "Username for the cmis repository" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/coap.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/coap.json
new file mode 100644
index 0000000..3c2a649
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/coap.json
@@ -0,0 +1,47 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "coap",
+    "title": "CoAP",
+    "description": "Send and receive messages to\/from COAP capable devices.",
+    "deprecated": false,
+    "firstVersion": "2.16.0",
+    "label": "iot",
+    "javaType": "org.apache.camel.coap.CoAPComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-coap",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "coap",
+    "extendsScheme": "",
+    "alternativeSchemes": "coap,coaps,coap+tcp,coaps+tcp",
+    "syntax": "coap:uri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "uri": { "kind": "path", "displayName": "Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.net.URI", "deprecated": false, "autowired": false, "secret": false, "description": "The URI for the CoAP endpoint" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "coapMethodRestrict": { "kind": "parameter", "displayName": "Coap Method Restrict", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "DELETE", "GET", "POST", "PUT" ], "deprecated": false, "autowired": false, "secret": false, "description": "Comma separated list of methods that the CoAP consumer will bind to. The default is to bind to all methods (DELETE, GET, POST, PUT)." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "alias": { "kind": "parameter", "displayName": "Alias", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "NONE", "WANT", "REQUIRE" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the alias used to query the KeyStore for the private key and certificate. This parameter is used when we are enabling TLS with certificates on the service side, and similarly on the client side when TLS  [...]
+    "cipherSuites": { "kind": "parameter", "displayName": "Cipher Suites", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the cipherSuites String. This is a comma separated String of ciphersuites to configure. If it is not specified, then it falls back to getting the ciphersuites from the sslContextParameters object." },
+    "clientAuthentication": { "kind": "parameter", "displayName": "Client Authentication", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the configuration options for server-side client-authentication requirements. The value must be one of NONE, WANT, REQUIRE. If this value is not specified, then it falls back to checking the sslContextParameters [...]
+    "privateKey": { "kind": "parameter", "displayName": "Private Key", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.security.PrivateKey", "deprecated": false, "autowired": false, "secret": true, "description": "Set the configured private key for use with Raw Public Key." },
+    "pskStore": { "kind": "parameter", "displayName": "Psk Store", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.eclipse.californium.scandium.dtls.pskstore.PskStore", "deprecated": false, "autowired": false, "secret": false, "description": "Set the PskStore to use for pre-shared key." },
+    "publicKey": { "kind": "parameter", "displayName": "Public Key", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.security.PublicKey", "deprecated": false, "autowired": false, "secret": false, "description": "Set the configured public key for use with Raw Public Key." },
+    "recommendedCipherSuitesOnly": { "kind": "parameter", "displayName": "Recommended Cipher Suites Only", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "The CBC cipher suites are not recommended. If you want to use them, you first need to set the recommendedCipherSuitesOnly option to false." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "Set the SSLContextParameters object for setting up TLS. This is required for coapstcp, and for coaps when we are using certificates for TLS (as opposed to RPK or PKS)." },
+    "trustedRpkStore": { "kind": "parameter", "displayName": "Trusted Rpk Store", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.eclipse.californium.scandium.dtls.rpkstore.TrustedRpkStore", "deprecated": false, "autowired": false, "secret": false, "description": "Set the TrustedRpkStore to use to determine trust in raw public keys." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cometd.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cometd.json
new file mode 100644
index 0000000..3386752
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cometd.json
@@ -0,0 +1,58 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "cometd",
+    "title": "CometD",
+    "description": "Offers publish\/subscribe, peer-to-peer (via a server), and RPC style messaging using the CometD\/Bayeux protocol.",
+    "deprecated": false,
+    "firstVersion": "2.0.0",
+    "label": "websocket",
+    "javaType": "org.apache.camel.component.cometd.CometdComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-cometd",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "cometd",
+    "extendsScheme": "",
+    "alternativeSchemes": "cometd,cometds",
+    "syntax": "cometd:host:port\/channelName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": true, "description": "The password for the keystore when using SSL." },
+    "sslKeystore": { "kind": "property", "displayName": "Ssl Keystore", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "The path to the keystore." },
+    "sslPassword": { "kind": "property", "displayName": "Ssl Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "The password when using SSL." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Hostname" },
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Host port number" },
+    "channelName": { "kind": "path", "displayName": "Channel Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The channelName represents a topic that can be subscribed to by the Camel endpoints." },
+    "allowedOrigins": { "kind": "parameter", "displayName": "Allowed Origins", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "*", "description": "The origins domain that support to cross, if the crosssOriginFilterOn is true" },
+    "baseResource": { "kind": "parameter", "displayName": "Base Resource", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The root directory for the web resources or classpath. Use the protocol file: or classpath: depending if you want that the component loads the resource from file system or classpath. Classpath is required for OSGI deployment where the resourc [...]
+    "crossOriginFilterOn": { "kind": "parameter", "displayName": "Cross Origin Filter On", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the server will support for cross-domain filtering" },
+    "filterPath": { "kind": "parameter", "displayName": "Filter Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The filterPath will be used by the CrossOriginFilter, if the crosssOriginFilterOn is true" },
+    "interval": { "kind": "parameter", "displayName": "Interval", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The client side poll timeout in milliseconds. How long a client will wait between reconnects" },
+    "jsonCommented": { "kind": "parameter", "displayName": "Json Commented", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If true, the server will accept JSON wrapped in a comment and will generate JSON wrapped in a comment. This is a defence against Ajax Hijacking." },
+    "logLevel": { "kind": "parameter", "displayName": "Log Level", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "enum": [ "0", "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "Logging level. 0=none, 1=info, 2=debug." },
+    "maxInterval": { "kind": "parameter", "displayName": "Max Interval", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The max client side poll timeout in milliseconds. A client will be removed if a connection is not received in this time." },
+    "multiFrameInterval": { "kind": "parameter", "displayName": "Multi Frame Interval", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1500, "description": "The client side poll timeout, if multiple connections are detected from the same browser." },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 240000, "description": "The server side poll timeout in milliseconds. This is how long the server will hold a reconnect request before responding." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sessionHeadersEnabled": { "kind": "parameter", "displayName": "Session Headers Enabled", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to include the server session headers in the Camel message when creating a Camel Message for incoming requests." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "disconnectLocalSession": { "kind": "parameter", "displayName": "Disconnect Local Session", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to disconnect local sessions after publishing a message to its channel. Disconnecting local session is needed as they are not swept by default by CometD, and therefore you can run out of m [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/consul.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/consul.json
new file mode 100644
index 0000000..b925e29
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/consul.json
@@ -0,0 +1,86 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "consul",
+    "title": "Consul",
+    "description": "Integrate with Consul service discovery and configuration store.",
+    "deprecated": false,
+    "firstVersion": "2.18.0",
+    "label": "cloud,api",
+    "javaType": "org.apache.camel.component.consul.ConsulComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-consul",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "consul",
+    "extendsScheme": "",
+    "syntax": "consul:apiEndpoint",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "connectTimeout": { "kind": "property", "displayName": "Connect Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Connect timeout for OkHttpClient" },
+    "connectTimeoutMillis": { "kind": "property", "displayName": "Connect Timeout Millis", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": true, "deprecationNote": "Use connectTimeout instead", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Connect timeout for OkHttpClient. Deprecation note: Use conne [...]
+    "consulClient": { "kind": "property", "displayName": "Consul Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.orbitz.consul.Consul", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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" },
+    "readTimeout": { "kind": "property", "displayName": "Read Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Read timeout for OkHttpClient" },
+    "readTimeoutMillis": { "kind": "property", "displayName": "Read Timeout Millis", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": true, "deprecationNote": "Use readTimeout instead", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Read timeout for OkHttpClient. Deprecation note: Use readTimeout instead" },
+    "tags": { "kind": "property", "displayName": "Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The Consul agent URL" },
+    "writeTimeout": { "kind": "property", "displayName": "Write Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Write timeout for OkHttpClient" },
+    "writeTimeoutMillis": { "kind": "property", "displayName": "Write Timeout Millis", "group": "common", "label": "", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": true, "deprecationNote": "Use writeTimeout instead", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Write timeout for OkHttpClient. Deprecation note: Use writeTimeout [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "valueAsString": { "kind": "property", "displayName": "Value As String", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.consul.ConsulConfiguration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "DEFAULT", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The consiste [...]
+    "datacenter": { "kind": "property", "displayName": "Datacenter", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The note meta-data to use for queries." },
+    "aclToken": { "kind": "property", "displayName": "Acl Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "SSL configuration using an org.apache.camel.support.jsse.SSLCont [...]
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." },
+    "userName": { "kind": "property", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Sets the username to be used for basic authentication" },
+    "blockSeconds": { "kind": "property", "displayName": "Block Seconds", "group": "watch", "label": "consumer,watch", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Recursively watch, default false" }
+  },
+  "properties": {
+    "apiEndpoint": { "kind": "path", "displayName": "Api Endpoint", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The API endpoint" },
+    "connectTimeout": { "kind": "parameter", "displayName": "Connect Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Connect timeout for OkHttpClient" },
+    "connectTimeoutMillis": { "kind": "parameter", "displayName": "Connect Timeout Millis", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": true, "deprecationNote": "Use connectTimeout instead", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Connect timeout for OkHttpClient. Deprecation note: Use conn [...]
+    "consulClient": { "kind": "parameter", "displayName": "Consul Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "com.orbitz.consul.Consul", "deprecated": false, "autowired": 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": "parameter", "displayName": "Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The default key. Can be overridden by CamelConsulKey" },
+    "pingInstance": { "kind": "parameter", "displayName": "Ping Instance", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
+    "readTimeout": { "kind": "parameter", "displayName": "Read Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Read timeout for OkHttpClient" },
+    "readTimeoutMillis": { "kind": "parameter", "displayName": "Read Timeout Millis", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": true, "deprecationNote": "Use readTimeout instead", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Read timeout for OkHttpClient. Deprecation note: Use readTimeout instead" },
+    "tags": { "kind": "parameter", "displayName": "Tags", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Set tags. You can separate multiple tags by comma." },
+    "url": { "kind": "parameter", "displayName": "Url", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The Consul agent URL" },
+    "writeTimeout": { "kind": "parameter", "displayName": "Write Timeout", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.time.Duration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Write timeout for OkHttpClient" },
+    "writeTimeoutMillis": { "kind": "parameter", "displayName": "Write Timeout Millis", "group": "common", "label": "", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": true, "deprecationNote": "Use writeTimeout instead", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Write timeout for OkHttpClient. Deprecation note: Use writeTimeou [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The default action. Can be overridden by CamelConsulAction" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "valueAsString": { "kind": "parameter", "displayName": "Value As String", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "consistencyMode": { "kind": "parameter", "displayName": "Consistency Mode", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.orbitz.consul.option.ConsistencyMode", "enum": [ "DEFAULT", "STALE", "CONSISTENT" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEFAULT", "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The consist [...]
+    "datacenter": { "kind": "parameter", "displayName": "Datacenter", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The data center" },
+    "nearNode": { "kind": "parameter", "displayName": "Near Node", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The near node to use for queries." },
+    "nodeMeta": { "kind": "parameter", "displayName": "Node Meta", "group": "advanced", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "The note meta-data to use for queries." },
+    "aclToken": { "kind": "parameter", "displayName": "Acl Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Sets the ACL token to be used with Consul" },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Sets the password to be used for basic authentication" },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "SSL configuration using an org.apache.camel.support.jsse.SSLCon [...]
+    "userName": { "kind": "parameter", "displayName": "User Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Sets the username to be used for basic authentication" },
+    "blockSeconds": { "kind": "parameter", "displayName": "Block Seconds", "group": "watch", "label": "consumer,watch", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "First Index", "group": "watch", "label": "consumer,watch", "required": false, "type": "object", "javaType": "java.math.BigInteger", "deprecated": false, "autowired": 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": "parameter", "displayName": "Recursive", "group": "watch", "label": "consumer,watch", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.consul.ConsulConfiguration", "configurationField": "configuration", "description": "Recursively watch, default false" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/controlbus.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/controlbus.json
new file mode 100644
index 0000000..5daa347
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/controlbus.json
@@ -0,0 +1,38 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "controlbus",
+    "title": "Control Bus",
+    "description": "Manage and monitor Camel routes.",
+    "deprecated": false,
+    "firstVersion": "2.11.0",
+    "label": "core,monitoring",
+    "javaType": "org.apache.camel.component.controlbus.ControlBusComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-controlbus",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "controlbus",
+    "extendsScheme": "",
+    "syntax": "controlbus:command:language",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "command": { "kind": "path", "displayName": "Command", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "route", "language" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Command can be either route or language" },
+    "language": { "kind": "path", "displayName": "Language", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.spi.Language", "enum": [ "bean", "constant", "el", "exchangeProperty", "file", "groovy", "header", "jsonpath", "mvel", "ognl", "ref", "simple", "spel", "sql", "terser", "tokenize", "xpath", "xquery", "xtokenize" ], "deprecated": false, "autowired": false, "secret": false, "description": "Allows you to specify the name of a Langu [...]
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "start", "stop", "suspend", "resume", "restart", "status", "stats" ], "deprecated": false, "autowired": false, "secret": false, "description": "To denote an action that can be either: start, stop, or status. To either start or stop a route, or to get the status of the route as output in the message body. You can use [...]
+    "async": { "kind": "parameter", "displayName": "Async", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to execute the control bus task asynchronously. Important: If this option is enabled, then any result from the task is not set on the Exchange. This is only possible if executing tasks synchronously." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "loggingLevel": { "kind": "parameter", "displayName": "Logging Level", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "description": "Logging level used for logging when task is done, or if any exceptions occurred during processing the task." },
+    "restartDelay": { "kind": "parameter", "displayName": "Restart Delay", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "The delay in millis to use when restarting a route." },
+    "routeId": { "kind": "parameter", "displayName": "Route Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To specify a route by its id. The special keyword current indicates the current route." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/corda.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/corda.json
new file mode 100644
index 0000000..2454cae
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/corda.json
@@ -0,0 +1,57 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "corda",
+    "title": "Corda",
+    "description": "Perform operations against Corda blockchain platform using corda-rpc library.",
+    "deprecated": false,
+    "firstVersion": "2.23.0",
+    "label": "blockchain,rpc",
+    "javaType": "org.apache.camel.component.corda.CordaComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-corda",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "corda",
+    "extendsScheme": "",
+    "syntax": "corda:node",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.corda.CordaConfiguration", "deprecated": false, "autowired": 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, "autowired": 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 me [...]
+    "pageSpecification": { "kind": "property", "displayName": "Page Specification", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "net.corda.core.node.services.vault.PageSpecification", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "200", "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "PageSpecification allows specification of a page [...]
+    "processSnapshot": { "kind": "property", "displayName": "Process Snapshot", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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 di [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "A contract state (or just state) contains opa [...]
+    "flowLogicArguments": { "kind": "property", "displayName": "Flow Logic Arguments", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.lang.Object[]", "deprecated": false, "autowired": 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 singl [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Start the given flow with the given argumen [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "QueryCriteria assumes underlying schema tables are correctly in [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Operation to use" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "The url for the corda node" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "pageSpecification": { "kind": "parameter", "displayName": "Page Specification", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "net.corda.core.node.services.vault.PageSpecification", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "200", "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "PageSpecification allows specification of a pag [...]
+    "processSnapshot": { "kind": "parameter", "displayName": "Process Snapshot", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Whether to process snapshots or not" },
+    "sort": { "kind": "parameter", "displayName": "Sort", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "net.corda.core.node.services.vault.Sort", "enum": [ "ASC", "DESC" ], "deprecated": false, "autowired": 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 d [...]
+    "contractStateClass": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "A contract state (or just state) contains op [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "flowLogicArguments": { "kind": "parameter", "displayName": "Flow Logic Arguments", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.lang.Object[]", "deprecated": false, "autowired": 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 sing [...]
+    "flowLogicClass": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Start the given flow with the given argume [...]
+    "queryCriteria": { "kind": "parameter", "displayName": "Query Criteria", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "net.corda.core.node.services.vault.QueryCriteria", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "QueryCriteria assumes underlying schema tables are correctly i [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Operation to use" },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Password for login" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.corda.CordaConfiguration", "configurationField": "configuration", "description": "Username for login" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/couchdb.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/couchdb.json
new file mode 100644
index 0000000..ee62220
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/couchdb.json
@@ -0,0 +1,47 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "couchdb",
+    "title": "CouchDB",
+    "description": "Consume changesets for inserts, updates and deletes in a CouchDB database, as well as get, save, update and delete documents from a CouchDB database.",
+    "deprecated": false,
+    "firstVersion": "2.11.0",
+    "label": "database,nosql",
+    "javaType": "org.apache.camel.component.couchdb.CouchDbComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-couchdb",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "couchdb",
+    "extendsScheme": "",
+    "syntax": "couchdb:protocol:hostname:port\/database",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "protocol": { "kind": "path", "displayName": "Protocol", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "http", "https" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The protocol to use for communicating with the database." },
+    "hostname": { "kind": "path", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Hostname of the running couchdb instance" },
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5984, "description": "Port number for the running couchdb instance" },
+    "database": { "kind": "path", "displayName": "Database", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the database to use" },
+    "createDatabase": { "kind": "parameter", "displayName": "Create Database", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Creates the database if it does not already exist" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "deletes": { "kind": "parameter", "displayName": "Deletes", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Document deletes are published as events" },
+    "heartbeat": { "kind": "parameter", "displayName": "Heartbeat", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "description": "How often to send an empty message to keep socket alive in millis" },
+    "resumeStrategy": { "kind": "parameter", "displayName": "Resume Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.couchdb.consumer.CouchDbResumeStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a custom resume strategy for tracking changes from CouchDB. It allows tracking from a specific point (i.e.: since the given update sequence, the latest sequence, etc)." },
+    "style": { "kind": "parameter", "displayName": "Style", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "all_docs", "main_only" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "main_only", "description": "Specifies how many revisions are returned in the changes array. The default, main_only, will only return the current winning revision; all_docs will return all leaf revisions (inclu [...]
+    "updates": { "kind": "parameter", "displayName": "Updates", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Document inserts\/updates are published as events" },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Password for authenticated databases" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Username in case of authenticated databases" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cron.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cron.json
new file mode 100644
index 0000000..f114bb1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cron.json
@@ -0,0 +1,36 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "cron",
+    "title": "Cron",
+    "description": "A generic interface for triggering events at times specified through the Unix cron syntax.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "scheduling",
+    "javaType": "org.apache.camel.component.cron.CronComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-cron",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "cron",
+    "extendsScheme": "",
+    "syntax": "cron:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "cronService": { "kind": "property", "displayName": "Cron Service", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of the CamelCronService to use when multiple implementations are provided" }
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.cron.api.CamelCronConfiguration", "configurationField": "configuration", "description": "The name of the cron trigger" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "schedule": { "kind": "parameter", "displayName": "Schedule", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.cron.api.CamelCronConfiguration", "configurationField": "configuration", "description": "A cron expression that will be used to generate events" },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/crypto.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/crypto.json
new file mode 100644
index 0000000..3af890c
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/crypto.json
@@ -0,0 +1,70 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "crypto",
+    "title": "Crypto (JCE)",
+    "description": "Sign and verify exchanges using the Signature Service of the Java Cryptographic Extension (JCE).",
+    "deprecated": false,
+    "firstVersion": "2.3.0",
+    "label": "security,transformation",
+    "javaType": "org.apache.camel.component.crypto.DigitalSignatureComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-crypto",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "crypto",
+    "extendsScheme": "",
+    "syntax": "crypto:cryptoOperation:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "algorithm": { "kind": "property", "displayName": "Algorithm", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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  [...]
+    "certificateName": { "kind": "property", "displayName": "Certificate Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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 ty [...]
+    "keystoreName": { "kind": "property", "displayName": "Keystore Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "privateKey": { "kind": "property", "displayName": "Private Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.security.PrivateKey", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "bufferSize": { "kind": "property", "displayName": "Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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, "autowired": 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 p [...]
+    "clearHeaders": { "kind": "property", "displayName": "Clear Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. Def [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the KeyStore that can contain keys and Certficates for  [...]
+    "publicKey": { "kind": "property", "displayName": "Public Key", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.security.PublicKey", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the Crypto operation f [...]
+    "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "The logical name of this operation." },
+    "algorithm": { "kind": "parameter", "displayName": "Algorithm", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Alias", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "certificateName": { "kind": "parameter", "displayName": "Certificate Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Keystore", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.security.KeyStore", "deprecated": false, "autowired": 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 t [...]
+    "keystoreName": { "kind": "parameter", "displayName": "Keystore Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "privateKey": { "kind": "parameter", "displayName": "Private Key", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.security.PrivateKey", "deprecated": false, "autowired": 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": "parameter", "displayName": "Private Key Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Provider", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Public Key Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "references that should be resolved when the context changes" },
+    "secureRandomName": { "kind": "parameter", "displayName": "Secure Random Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Signature Header Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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. Thi [...]
+    "bufferSize": { "kind": "parameter", "displayName": "Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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": "parameter", "displayName": "Certificate", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.security.cert.Certificate", "deprecated": false, "autowired": 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  [...]
+    "clearHeaders": { "kind": "parameter", "displayName": "Clear Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. De [...]
+    "keyStoreParameters": { "kind": "parameter", "displayName": "Key Store Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.KeyStoreParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Sets the KeyStore that can contain keys and Certficates for [...]
+    "publicKey": { "kind": "parameter", "displayName": "Public Key", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.security.PublicKey", "deprecated": false, "autowired": 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": "parameter", "displayName": "Secure Random", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.security.SecureRandom", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.crypto.DigitalSignatureConfiguration", "configurationField": "configuration", "description": "Set the SecureRandom used to initialize the Signature service" },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cxf.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cxf.json
new file mode 100644
index 0000000..0ab3504
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/cxf.json
@@ -0,0 +1,71 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "cxf",
+    "title": "CXF",
+    "description": "Expose SOAP WebServices using Apache CXF or connect to external WebServices using CXF WS client.",
+    "deprecated": false,
+    "firstVersion": "1.0.0",
+    "label": "soap,webservice",
+    "javaType": "org.apache.camel.component.cxf.CxfComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-cxf",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "cxf",
+    "extendsScheme": "",
+    "syntax": "cxf:beanId:address",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "allowStreaming": { "kind": "property", "displayName": "Allow Streaming", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "description": "This option controls whether the CXF component, when running in PAYLOAD mode, will DOM parse the incoming messages into DOM Elements or keep the payload as a javax.xml.transform.Source object that would allow streaming in some  [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "beanId": { "kind": "path", "displayName": "Bean Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To lookup an existing configured CxfEndpoint. Must used bean: as prefix." },
+    "address": { "kind": "path", "displayName": "Address", "group": "service", "label": "service", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The service publish address." },
+    "dataFormat": { "kind": "parameter", "displayName": "Data Format", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.cxf.DataFormat", "enum": [ "PAYLOAD", "RAW", "MESSAGE", "CXF_MESSAGE", "POJO" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "POJO", "description": "The data type messages supported by the CXF endpoint." },
+    "wrappedStyle": { "kind": "parameter", "displayName": "Wrapped Style", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "description": "The WSDL style that describes how parameters are represented in the SOAP body. If the value is false, CXF will chose the document-literal unwrapped style, If the value is true, CXF will chose the document-literal wrapped style" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "cookieHandler": { "kind": "parameter", "displayName": "Cookie Handler", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.http.base.cookie.CookieHandler", "deprecated": false, "autowired": false, "secret": false, "description": "Configure a cookie handler to maintain a HTTP session" },
+    "defaultOperationName": { "kind": "parameter", "displayName": "Default Operation Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option will set the default operationName that will be used by the CxfProducer which invokes the remote service." },
+    "defaultOperationNamespace": { "kind": "parameter", "displayName": "Default Operation Namespace", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option will set the default operationNamespace that will be used by the CxfProducer which invokes the remote service." },
+    "hostnameVerifier": { "kind": "parameter", "displayName": "Hostname Verifier", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "The hostname verifier to be used. Use the # notation to reference a HostnameVerifier from the registry." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "The Camel SSL setting reference. Use the # notation to reference the SSL Context." },
+    "wrapped": { "kind": "parameter", "displayName": "Wrapped", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Which kind of operation that CXF endpoint producer will invoke" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used" },
+    "allowStreaming": { "kind": "parameter", "displayName": "Allow Streaming", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "description": "This option controls whether the CXF component, when running in PAYLOAD mode, will DOM parse the incoming messages into DOM Elements or keep the payload as a javax.xml.transform.Source object that would allow streaming in some [...]
+    "bus": { "kind": "parameter", "displayName": "Bus", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.cxf.Bus", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured CXF Bus." },
+    "continuationTimeout": { "kind": "parameter", "displayName": "Continuation Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "description": "This option is used to set the CXF continuation timeout which could be used in CxfConsumer by default when the CXF server is using Jetty or Servlet transport." },
+    "cxfBinding": { "kind": "parameter", "displayName": "Cxf Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.cxf.CxfBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom CxfBinding to control the binding between Camel Message and CXF Message." },
+    "cxfConfigurer": { "kind": "parameter", "displayName": "Cxf Configurer", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.cxf.CxfConfigurer", "deprecated": false, "autowired": false, "secret": false, "description": "This option could apply the implementation of org.apache.camel.component.cxf.CxfEndpointConfigurer which supports to configure the CXF endpoint in programmatic way. User can configure the CXF server and [...]
+    "defaultBus": { "kind": "parameter", "displayName": "Default Bus", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will set the default bus when CXF endpoint create a bus by itself" },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "mergeProtocolHeaders": { "kind": "parameter", "displayName": "Merge Protocol Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to merge protocol headers. If enabled then propagating headers between Camel and CXF becomes more consistent and similar. For more details see CAMEL-6393." },
+    "mtomEnabled": { "kind": "parameter", "displayName": "Mtom Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To enable MTOM (attachments). This requires to use POJO or PAYLOAD data format mode." },
+    "properties": { "kind": "parameter", "displayName": "Properties", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "properties.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To set additional CXF options using the key\/value pairs from the Map. For example to turn on stacktraces in SOAP faults, properties.faultStackTraceEnabled=true" },
+    "skipPayloadMessagePartCheck": { "kind": "parameter", "displayName": "Skip Payload Message Part Check", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether SOAP message validation should be disabled." },
+    "loggingFeatureEnabled": { "kind": "parameter", "displayName": "Logging Feature Enabled", "group": "logging", "label": "logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "This option enables CXF Logging Feature which writes inbound and outbound SOAP messages to log." },
+    "loggingSizeLimit": { "kind": "parameter", "displayName": "Logging Size Limit", "group": "logging", "label": "logging", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 49152, "description": "To limit the total size of number of bytes the logger will output when logging feature has been enabled and -1 for no limit." },
+    "skipFaultLogging": { "kind": "parameter", "displayName": "Skip Fault Logging", "group": "logging", "label": "logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "This option controls whether the PhaseInterceptorChain skips logging the Fault that it catches." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "This option is used to set the basic authentication information of password for the CXF client." },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "This option is used to set the basic authentication information of username for the CXF client." },
+    "bindingId": { "kind": "parameter", "displayName": "Binding Id", "group": "service", "label": "service", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The bindingId for the service model to use." },
+    "portName": { "kind": "parameter", "displayName": "Port Name", "group": "service", "label": "service", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The endpoint name this service is implementing, it maps to the wsdl:portname. In the format of ns:PORT_NAME where ns is a namespace prefix valid at this scope." },
+    "publishedEndpointUrl": { "kind": "parameter", "displayName": "Published Endpoint Url", "group": "service", "label": "service", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option can override the endpointUrl that published from the WSDL which can be accessed with service address url plus wsd" },
+    "serviceClass": { "kind": "parameter", "displayName": "Service Class", "group": "service", "label": "service", "required": false, "type": "string", "javaType": "java.lang.Class<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "description": "The class name of the SEI (Service Endpoint Interface) class which could have JSR181 annotation or not." },
+    "serviceName": { "kind": "parameter", "displayName": "Service Name", "group": "service", "label": "service", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The service name this service is implementing, it maps to the wsdl:servicename." },
+    "wsdlURL": { "kind": "parameter", "displayName": "Wsdl URL", "group": "service", "label": "service", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The location of the WSDL. Can be on the classpath, file system, or be hosted remotely." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataformat.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataformat.json
new file mode 100644
index 0000000..a38dee3
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataformat.json
@@ -0,0 +1,33 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "dataformat",
+    "title": "Data Format",
+    "description": "Use a Camel Data Format as a regular Camel Component.",
+    "deprecated": false,
+    "firstVersion": "2.12.0",
+    "label": "core,transformation",
+    "javaType": "org.apache.camel.component.dataformat.DataFormatComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-dataformat",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "dataformat",
+    "extendsScheme": "",
+    "syntax": "dataformat:name:operation",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of data format" },
+    "operation": { "kind": "path", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "marshal", "unmarshal" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Operation to use either marshal or unmarshal" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataset.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataset.json
new file mode 100644
index 0000000..54436a3
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dataset.json
@@ -0,0 +1,55 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "dataset",
+    "title": "Dataset",
+    "description": "Provide data for load and soak testing of your Camel application.",
+    "deprecated": false,
+    "firstVersion": "1.3.0",
+    "label": "core,testing",
+    "javaType": "org.apache.camel.component.dataset.DataSetComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-dataset",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "dataset",
+    "extendsScheme": "",
+    "syntax": "dataset:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "log": { "kind": "property", "displayName": "Log", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockE [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "exchangeFormatter": { "kind": "property", "displayName": "Exchange Formatter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExchangeFormatter", "deprecated": false, "autowired": true, "secret": false, "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter." }
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.dataset.DataSet", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of DataSet to lookup in the registry" },
+    "dataSetIndex": { "kind": "parameter", "displayName": "Data Set Index", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "strict", "lenient", "off" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "lenient", "description": "Controls the behaviour of the CamelDataSetIndex header. For Consumers: - off = the header will not be set - strict\/lenient = the header will be set For Producers: - off = th [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "Time period in millis to wait before starting sending messages." },
+    "minRate": { "kind": "parameter", "displayName": "Min Rate", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Wait until the DataSet contains at least this number of messages" },
+    "preloadSize": { "kind": "parameter", "displayName": "Preload Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Sets how many messages should be preloaded (sent) before the route completes its initialization" },
+    "produceDelay": { "kind": "parameter", "displayName": "Produce Delay", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3", "description": "Allows a delay to be specified which causes a delay when a message is sent by the consumer (to simulate slow processing)" },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "assertPeriod": { "kind": "parameter", "displayName": "Assert Period", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a grace period after which the mock endpoint will re-assert to ensure the preliminary assertion is still valid. This is used for example to assert that exactly a number of messages arrives. For example if expectedMessageCount(int) was se [...]
+    "consumeDelay": { "kind": "parameter", "displayName": "Consume Delay", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "description": "Allows a delay to be specified which causes a delay when a message is consumed by the producer (to simulate slow processing)" },
+    "expectedCount": { "kind": "parameter", "displayName": "Expected Count", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Specifies the expected number of message exchanges that should be received by this endpoint. Beware: If you want to expect that 0 messages, then take extra care, as 0 matches when the tests starts, so you need to set a ass [...]
+    "failFast": { "kind": "parameter", "displayName": "Fail Fast", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether assertIsSatisfied() should fail fast at the first detected failed expectation while it may otherwise wait for all expected messages to arrive before performing expectations verifications. Is by default true. Set  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "log": { "kind": "parameter", "displayName": "Log", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.Mock [...]
+    "reportGroup": { "kind": "parameter", "displayName": "Report Group", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "A number that is used to turn on throughput logging based on groups of the size." },
+    "resultMinimumWaitTime": { "kind": "parameter", "displayName": "Result Minimum Wait Time", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the minimum expected amount of time (in millis) the assertIsSatisfied() will wait on a latch until it is satisfied" },
+    "resultWaitTime": { "kind": "parameter", "displayName": "Result Wait Time", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the maximum amount of time (in millis) the assertIsSatisfied() will wait on a latch until it is satisfied" },
+    "retainFirst": { "kind": "parameter", "displayName": "Retain First", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Specifies to only retain the first n'th number of received Exchanges. This is used when testing with big data, to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When u [...]
+    "retainLast": { "kind": "parameter", "displayName": "Retain Last", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Specifies to only retain the last n'th number of received Exchanges. This is used when testing with big data, to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When usin [...]
+    "sleepForEmptyTest": { "kind": "parameter", "displayName": "Sleep For Empty Test", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Allows a sleep to be specified to wait to check that this endpoint really is empty when expectedMessageCount(int) is called with zero" },
+    "copyOnExchange": { "kind": "parameter", "displayName": "Copy On Exchange", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to make a deep copy of the incoming Exchange when received at this mock endpoint. Is by default true." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/digitalocean.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/digitalocean.json
new file mode 100644
index 0000000..275df5a
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/digitalocean.json
@@ -0,0 +1,41 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "digitalocean",
+    "title": "DigitalOcean",
+    "description": "Manage Droplets and resources within the DigitalOcean cloud.",
+    "deprecated": false,
+    "firstVersion": "2.19.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.digitalocean.DigitalOceanComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-digitalocean",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "digitalocean",
+    "extendsScheme": "",
+    "syntax": "digitalocean:operation",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "operation": { "kind": "path", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.digitalocean.constants.DigitalOceanOperations", "enum": [ "create", "update", "delete", "list", "ownList", "get", "listBackups", "listActions", "listNeighbors", "listSnapshots", "listKernels", "listAllNeighbors", "enableBackups", "disableBackups", "reboot", "powerCycle", "shutdown", "powerOn", "powerOff", "restore",  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "page": { "kind": "parameter", "displayName": "Page", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "Use for pagination. Force the page number." },
+    "perPage": { "kind": "parameter", "displayName": "Per Page", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "25", "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "Use for pagination. Set the number of item per request. The maximum number of results per page i [...]
+    "resource": { "kind": "parameter", "displayName": "Resource", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.digitalocean.constants.DigitalOceanResources", "enum": [ "account", "actions", "blockStorages", "droplets", "mages", "snapshots", "keys", "regions", "sizes", "floatingIPs", "tags" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.di [...]
+    "digitalOceanClient": { "kind": "parameter", "displayName": "Digital Ocean Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.myjeeva.digitalocean.impl.DigitalOceanClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "To use a existing configured DigitalOceanClient as client" },
+    "httpProxyHost": { "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "Set a proxy host if needed" },
+    "httpProxyPassword": { "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "Set a proxy password if needed" },
+    "httpProxyPort": { "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "Set a proxy port if needed" },
+    "httpProxyUser": { "kind": "parameter", "displayName": "Http Proxy User", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "Set a proxy host if needed" },
+    "oAuthToken": { "kind": "parameter", "displayName": "OAuth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.digitalocean.DigitalOceanConfiguration", "configurationField": "configuration", "description": "DigitalOcean OAuth Token" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/direct.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/direct.json
new file mode 100644
index 0000000..c30ae15
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/direct.json
@@ -0,0 +1,42 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "direct",
+    "title": "Direct",
+    "description": "Call another endpoint from the same Camel Context synchronously.",
+    "deprecated": false,
+    "firstVersion": "1.0.0",
+    "label": "core,endpoint",
+    "javaType": "org.apache.camel.component.direct.DirectComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-direct",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "direct",
+    "extendsScheme": "",
+    "syntax": "direct:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "block": { "kind": "property", "displayName": "Block", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The timeout value to use if block is enabled." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of direct endpoint" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "block": { "kind": "parameter", "displayName": "Block", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active." },
+    "failIfNoConsumers": { "kind": "parameter", "displayName": "Fail If No Consumers", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the producer should fail by throwing an exception, when sending to a DIRECT endpoint with no active consumers." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The timeout value to use if block is enabled." },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether synchronous processing is forced. If enabled then the producer thread, will be forced to wait until the message has been completed before the same thread will continue processing. If disabled (default) then the p [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/disruptor.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/disruptor.json
new file mode 100644
index 0000000..c293075
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/disruptor.json
@@ -0,0 +1,51 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "disruptor",
+    "title": "Disruptor",
+    "description": "Provides asynchronous SEDA behavior using LMAX Disruptor.",
+    "deprecated": false,
+    "firstVersion": "2.12.0",
+    "label": "endpoint",
+    "javaType": "org.apache.camel.component.disruptor.DisruptorComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-disruptor",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "disruptor",
+    "extendsScheme": "",
+    "alternativeSchemes": "disruptor,disruptor-vm",
+    "syntax": "disruptor:name",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bufferSize": { "kind": "property", "displayName": "Buffer Size", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "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, "autowired": 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 me [...]
+    "defaultConcurrentConsumers": { "kind": "property", "displayName": "Default Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "To configure the default value for multiple consumers" },
+    "defaultWaitStrategy": { "kind": "property", "displayName": "Default Wait Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.disruptor.DisruptorWaitStrategy", "enum": [ "Blocking", "Sleeping", "BusySpin", "Yielding" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Blocking", "description": "To configure the default value for DisruptorWaitStrategy The default value is Blocking." },
+    "defaultBlockWhenFull": { "kind": "property", "displayName": "Default Block When Full", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "To configure the default value for block when full The default value is true." },
+    "defaultProducerType": { "kind": "property", "displayName": "Default Producer Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.disruptor.DisruptorProducerType", "enum": [ "Single", "Multi" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Multi", "description": "To configure the default value for DisruptorProducerType The default value is Multi." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of queue" },
+    "size": { "kind": "parameter", "displayName": "Size", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "description": "The maximum capacity of the Disruptors ringbuffer Will be effectively increased to the nearest power of two. Notice: Mind if you use this option, then its the first endpoint being created with the queue name, that determines the size. To make sure a [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "Number of concurrent threads processing exchanges." },
+    "multipleConsumers": { "kind": "parameter", "displayName": "Multiple Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether multiple consumers are allowed. If enabled, you can use Disruptor for Publish-Subscribe messaging. That is, you can send a message to the queue and have each consumer receive a copy of the  [...]
+    "waitStrategy": { "kind": "parameter", "displayName": "Wait Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.disruptor.DisruptorWaitStrategy", "enum": [ "Blocking", "Sleeping", "BusySpin", "Yielding" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Blocking", "description": "Defines the strategy used by consumer threads to wait on new exchanges to be published. The options al [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "blockWhenFull": { "kind": "parameter", "displayName": "Block When Full", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether a thread that sends messages to a full Disruptor will block until the ringbuffer's capacity is no longer exhausted. By default, the calling thread will block and wait until the message can be accepted. By d [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "producerType": { "kind": "parameter", "displayName": "Producer Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.disruptor.DisruptorProducerType", "enum": [ "Single", "Multi" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Multi", "description": "Defines the producers allowed on the Disruptor. The options allowed are: Multi to allow multiple producers and Single to enable certai [...]
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "description": "Timeout (in milliseconds) before a producer will stop waiting for an asynchronous task to complete. You can disable timeout by using 0 or a negative value." },
+    "waitForTaskToComplete": { "kind": "parameter", "displayName": "Wait For Task To Complete", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.WaitForTaskToComplete", "enum": [ "Never", "IfReplyExpected", "Always" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "IfReplyExpected", "description": "Option to specify whether the caller should wait for the async task to complete or not before continuing [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/djl.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/djl.json
new file mode 100644
index 0000000..6b0f51b
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/djl.json
@@ -0,0 +1,35 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "djl",
+    "title": "Deep Java Library",
+    "description": "Infer Deep Learning models from message exchanges data using Deep Java Library (DJL).",
+    "deprecated": false,
+    "firstVersion": "3.3.0",
+    "label": "ai,deeplearning",
+    "javaType": "org.apache.camel.component.djl.DJLComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-djl",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "djl",
+    "extendsScheme": "",
+    "syntax": "djl:application",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "application": { "kind": "path", "displayName": "Application", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Application name" },
+    "artifactId": { "kind": "parameter", "displayName": "Artifact Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Model Artifact" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "model": { "kind": "parameter", "displayName": "Model", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Model" },
+    "translator": { "kind": "parameter", "displayName": "Translator", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Translator" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dns.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dns.json
new file mode 100644
index 0000000..6e42cdf
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dns.json
@@ -0,0 +1,32 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "dns",
+    "title": "DNS",
+    "description": "Perform DNS queries using DNSJava.",
+    "deprecated": false,
+    "firstVersion": "2.7.0",
+    "label": "networking",
+    "javaType": "org.apache.camel.component.dns.DnsComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-dns",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "dns",
+    "extendsScheme": "",
+    "syntax": "dns:dnsType",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "dnsType": { "kind": "path", "displayName": "Dns Type", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.dns.DnsType", "enum": [ "dig", "ip", "lookup", "wikipedia" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The type of the lookup." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/docker.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/docker.json
new file mode 100644
index 0000000..02646a0
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/docker.json
@@ -0,0 +1,71 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "docker",
+    "title": "Docker",
+    "description": "Manage Docker containers.",
+    "deprecated": false,
+    "firstVersion": "2.15.0",
+    "label": "cloud,container,paas",
+    "javaType": "org.apache.camel.component.docker.DockerComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-docker",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "docker",
+    "extendsScheme": "",
+    "syntax": "docker:operation",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.docker.DockerConfiguration", "deprecated": false, "autowired": 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, "autowired": 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": "", "autowired": false, "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, "autowired": 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, "autowired": 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, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "cmdExecFactory": { "kind": "property", "displayName": "Cmd Exec Factory", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "followRedirectFilter": { "kind": "property", "displayName": "Follow Redirect Filter", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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", [...]
+    "email": { "kind": "parameter", "displayName": "Email", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Email address associated with the user" },
+    "host": { "kind": "parameter", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "localhost", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Docker host" },
+    "port": { "kind": "parameter", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2375", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Docker port" },
+    "requestTimeout": { "kind": "parameter", "displayName": "Request Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Request timeout for response (in seconds)" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "cmdExecFactory": { "kind": "parameter", "displayName": "Cmd Exec Factory", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 th [...]
+    "followRedirectFilter": { "kind": "parameter", "displayName": "Follow Redirect Filter", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Whether to follow redirect filter" },
+    "loggingFilter": { "kind": "parameter", "displayName": "Logging Filter", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Whether to use logging filter" },
+    "maxPerRouteConnections": { "kind": "parameter", "displayName": "Max Per Route Connections", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Maximum route connections" },
+    "maxTotalConnections": { "kind": "parameter", "displayName": "Max Total Connections", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Maximum total connections" },
+    "parameters": { "kind": "parameter", "displayName": "Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Additional configuration parameters as key\/value pairs" },
+    "serverAddress": { "kind": "parameter", "displayName": "Server Address", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Socket", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Socket connection mode" },
+    "certPath": { "kind": "parameter", "displayName": "Cert Path", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Location containing the SSL certificate chain" },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Password to authenticate with" },
+    "secure": { "kind": "parameter", "displayName": "Secure", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Use HTTPS communication" },
+    "tlsVerify": { "kind": "parameter", "displayName": "Tls Verify", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "Check TLS" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.docker.DockerConfiguration", "configurationField": "configuration", "description": "User name to authenticate with" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dozer.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dozer.json
new file mode 100644
index 0000000..40ca6ac
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dozer.json
@@ -0,0 +1,38 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "dozer",
+    "title": "Dozer",
+    "description": "Map between Java beans using the Dozer mapping library.",
+    "deprecated": false,
+    "firstVersion": "2.15.0",
+    "label": "transformation",
+    "javaType": "org.apache.camel.component.dozer.DozerComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-dozer",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "dozer",
+    "extendsScheme": "",
+    "syntax": "dozer:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dozer.DozerConfiguration", "configurationField": "configuration", "description": "A human readable name of the mapping." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "mappingConfiguration": { "kind": "parameter", "displayName": "Mapping Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.converter.dozer.DozerBeanMapperConfiguration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dozer.DozerConfiguration", "configurationField": "configuration", "description": "The name of a DozerBeanMapperConfiguration bean in the Camel re [...]
+    "mappingFile": { "kind": "parameter", "displayName": "Mapping File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "dozerBeanMapping.xml", "configurationClass": "org.apache.camel.component.dozer.DozerConfiguration", "configurationField": "configuration", "description": "The location of a Dozer configuration file. The file is loaded from the classpath by d [...]
+    "marshalId": { "kind": "parameter", "displayName": "Marshal Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dozer.DozerConfiguration", "configurationField": "configuration", "description": "The id of a dataFormat defined within the Camel Context to use for marshalling the mapping output to a non-Java type." },
+    "sourceModel": { "kind": "parameter", "displayName": "Source Model", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dozer.DozerConfiguration", "configurationField": "configuration", "description": "Fully-qualified class name for the source type used in the mapping. If specified, the input to the mapping is converted to the [...]
+    "targetModel": { "kind": "parameter", "displayName": "Target Model", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dozer.DozerConfiguration", "configurationField": "configuration", "description": "Fully-qualified class name for the target type used in the mapping." },
+    "unmarshalId": { "kind": "parameter", "displayName": "Unmarshal Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dozer.DozerConfiguration", "configurationField": "configuration", "description": "The id of a dataFormat defined within the Camel Context to use for unmarshalling the mapping input from a non-Java type." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/drill.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/drill.json
new file mode 100644
index 0000000..381b67a
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/drill.json
@@ -0,0 +1,36 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "drill",
+    "title": "Drill",
+    "description": "Perform queries against an Apache Drill cluster.",
+    "deprecated": false,
+    "firstVersion": "2.19.0",
+    "label": "database,sql",
+    "javaType": "org.apache.camel.component.drill.DrillComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-drill",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "drill",
+    "extendsScheme": "",
+    "syntax": "drill:host",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Host name or IP address" },
+    "clusterId": { "kind": "parameter", "displayName": "Cluster Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Cluster ID https:\/\/drill.apache.org\/docs\/using-the-jdbc-driver\/#determining-the-cluster-id" },
+    "directory": { "kind": "parameter", "displayName": "Directory", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Drill directory" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "mode": { "kind": "parameter", "displayName": "Mode", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.drill.DrillConnectionMode", "enum": [ "ZK", "DRILLBIT" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ZK", "description": "Connection mode: zk: Zookeeper drillbit: Drillbit direct connection https:\/\/drill.apache.org\/docs\/using-the-jdbc-driver\/" },
+    "port": { "kind": "parameter", "displayName": "Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "2181", "description": "Port number" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dropbox.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dropbox.json
new file mode 100644
index 0000000..6bf3baf
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/dropbox.json
@@ -0,0 +1,44 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "dropbox",
+    "title": "Dropbox",
+    "description": "Upload, download and manage files, folders, groups, collaborations, etc on Dropbox.",
+    "deprecated": false,
+    "firstVersion": "2.14.0",
+    "label": "cloud,file,api",
+    "javaType": "org.apache.camel.component.dropbox.DropboxComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-dropbox",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "dropbox",
+    "extendsScheme": "",
+    "syntax": "dropbox:operation",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "operation": { "kind": "path", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.dropbox.util.DropboxOperation", "enum": [ "put", "del", "search", "get", "move" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The specific action ( [...]
+    "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The access token to make API requests for a specific Dropbox user" },
+    "client": { "kind": "parameter", "displayName": "Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.dropbox.core.v2.DbxClientV2", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "To use an existing DbxClient instance as DropBox client." },
+    "clientIdentifier": { "kind": "parameter", "displayName": "Client Identifier", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Name of the app registered to make API requests" },
+    "localPath": { "kind": "parameter", "displayName": "Local Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Optional folder or file to upload on Dropbox from the local filesystem. If this option has not been configured then the message  [...]
+    "newRemotePath": { "kind": "parameter", "displayName": "New Remote Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Destination file or folder" },
+    "query": { "kind": "parameter", "displayName": "Query", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "A space-separated list of sub-strings to search for. A file matches only if it contains all the sub-strings. If this option is not set, a [...]
+    "remotePath": { "kind": "parameter", "displayName": "Remote Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Original file or folder to move" },
+    "uploadMode": { "kind": "parameter", "displayName": "Upload Mode", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.dropbox.util.DropboxUploadMode", "enum": [ "add", "force" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Which mode to upload. in case of add the new file will be [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ehcache.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ehcache.json
new file mode 100644
index 0000000..7288b6d
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ehcache.json
@@ -0,0 +1,62 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ehcache",
+    "title": "Ehcache",
+    "description": "Perform caching operations using Ehcache.",
+    "deprecated": false,
+    "firstVersion": "2.18.0",
+    "label": "cache,datagrid,clustering",
+    "javaType": "org.apache.camel.component.ehcache.EhcacheComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ehcache",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ehcache",
+    "extendsScheme": "",
+    "syntax": "ehcache:cacheName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "cacheManager": { "kind": "property", "displayName": "Cache Manager", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.ehcache.CacheManager", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 me [...]
+    "eventFiring": { "kind": "property", "displayName": "Event Firing", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.ehcache.event.EventFiring", "enum": [ "ASYNCHRONOUS", "SYNCHRONOUS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ASYNCHRONOUS", "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the delivery mode (sync [...]
+    "eventOrdering": { "kind": "property", "displayName": "Event Ordering", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.ehcache.event.EventOrdering", "enum": [ "UNORDERED", "ORDERED" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ORDERED", "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the delivery mode (ordered, u [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the type of events to listen for (EVICTED,EXPI [...]
+    "action": { "kind": "property", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 pre [...]
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.ehcache.config.CacheConfiguration", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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": "", "autowired": false, "secret": false, "description": "the cache name" },
+    "cacheManager": { "kind": "parameter", "displayName": "Cache Manager", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.ehcache.CacheManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache manager" },
+    "cacheManagerConfiguration": { "kind": "parameter", "displayName": "Cache Manager Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.ehcache.config.Configuration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache manager configuration" },
+    "configurationUri": { "kind": "parameter", "displayName": "Configuration Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Create Cache If Not Exist", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "eventFiring": { "kind": "parameter", "displayName": "Event Firing", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.ehcache.event.EventFiring", "enum": [ "ASYNCHRONOUS", "SYNCHRONOUS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ASYNCHRONOUS", "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the delivery mode (syn [...]
+    "eventOrdering": { "kind": "parameter", "displayName": "Event Ordering", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.ehcache.event.EventOrdering", "enum": [ "UNORDERED", "ORDERED" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ORDERED", "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the delivery mode (ordered,  [...]
+    "eventTypes": { "kind": "parameter", "displayName": "Event Types", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "EVICTED", "EXPIRED", "REMOVED", "CREATED", "UPDATED" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "Set the type of events to listen for (EVICTED,EXP [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 pr [...]
+    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": 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": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "configuration": { "kind": "parameter", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.ehcache.config.CacheConfiguration", "deprecated": false, "autowired": 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": "parameter", "displayName": "Configurations", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, org.ehcache.config.CacheConfiguration>", "deprecated": false, "autowired": 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": "parameter", "displayName": "Key Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache key type, default java.lang.Object" },
+    "valueType": { "kind": "parameter", "displayName": "Value Type", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ehcache.EhcacheConfiguration", "configurationField": "configuration", "description": "The cache value type, default java.lang.Object" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elasticsearch-rest.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elasticsearch-rest.json
new file mode 100644
index 0000000..35415b6
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elasticsearch-rest.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "elasticsearch-rest",
+    "title": "Elasticsearch Rest",
+    "description": "Send requests to ElasticSearch via REST API",
+    "deprecated": false,
+    "firstVersion": "2.21.0",
+    "label": "search,monitoring",
+    "javaType": "org.apache.camel.component.elasticsearch.ElasticsearchComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-elasticsearch-rest",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "elasticsearch-rest",
+    "extendsScheme": "",
+    "syntax": "elasticsearch-rest:clusterName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "connectionTimeout": { "kind": "property", "displayName": "Connection Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The time in ms to wait before connection will timeout." },
+    "hostAddresses": { "kind": "property", "displayName": "Host Addresses", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Comma separated list with ip:port formatted remote transport addresses to use. The ip and port options must be left blank for hostAddresses to be considered instead." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "maxRetryTimeout": { "kind": "property", "displayName": "Max Retry Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The time in ms before retry" },
+    "socketTimeout": { "kind": "property", "displayName": "Socket Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The timeout in ms to wait before the socket will timeout." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "client": { "kind": "property", "displayName": "Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.elasticsearch.client.RestClient", "deprecated": false, "autowired": true, "secret": false, "description": "To use an existing configured Elasticsearch client, instead of creating a client per endpoint. This allow to customize the client with specific settings." },
+    "enableSniffer": { "kind": "property", "displayName": "Enable Sniffer", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable automatically discover nodes from a running Elasticsearch cluster" },
+    "sniffAfterFailureDelay": { "kind": "property", "displayName": "Sniff After Failure Delay", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60000, "description": "The delay of a sniff execution scheduled after a failure (in milliseconds)" },
+    "snifferInterval": { "kind": "property", "displayName": "Sniffer Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300000, "description": "The interval between consecutive ordinary sniff executions in milliseconds. Will be honoured when sniffOnFailure is disabled or when there are no failures between consecutive sniff executions" },
+    "enableSSL": { "kind": "property", "displayName": "Enable SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable SSL" },
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Password for authenticate" },
+    "user": { "kind": "property", "displayName": "User", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Basic authenticate user" }
+  },
+  "properties": {
+    "clusterName": { "kind": "path", "displayName": "Cluster Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Name of the cluster" },
+    "connectionTimeout": { "kind": "parameter", "displayName": "Connection Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "The time in ms to wait before connection will timeout." },
+    "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Disconnect after it finish calling the producer" },
+    "from": { "kind": "parameter", "displayName": "From", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Starting index of the response." },
+    "hostAddresses": { "kind": "parameter", "displayName": "Host Addresses", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Comma separated list with ip:port formatted remote transport addresses to use." },
+    "indexName": { "kind": "parameter", "displayName": "Index Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "The name of the index to act against" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "maxRetryTimeout": { "kind": "parameter", "displayName": "Max Retry Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "The time in ms before retry" },
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.elasticsearch.ElasticsearchOperation", "enum": [ "Index", "Update", "Bulk", "BulkIndex", "GetById", "MultiGet", "MultiSearch", "Delete", "DeleteIndex", "Search", "Exists", "Ping" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.elasticsearch.Elasticse [...]
+    "scrollKeepAliveMs": { "kind": "parameter", "displayName": "Scroll Keep Alive Ms", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60000, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Time in ms during which elasticsearch will keep search context alive" },
+    "size": { "kind": "parameter", "displayName": "Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Size of the response." },
+    "socketTimeout": { "kind": "parameter", "displayName": "Socket Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "The timeout in ms to wait before the socket will timeout." },
+    "useScroll": { "kind": "parameter", "displayName": "Use Scroll", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Enable scroll usage" },
+    "waitForActiveShards": { "kind": "parameter", "displayName": "Wait For Active Shards", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Index creation waits for the write consistency number of shards to be available" },
+    "enableSniffer": { "kind": "parameter", "displayName": "Enable Sniffer", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Enable automatically discover nodes from a running Elasticsearch cluster" },
+    "sniffAfterFailureDelay": { "kind": "parameter", "displayName": "Sniff After Failure Delay", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60000, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "The delay of a sniff execution scheduled after a failure (in millis [...]
+    "snifferInterval": { "kind": "parameter", "displayName": "Sniffer Interval", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300000, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "The interval between consecutive ordinary sniff executions in milliseconds. Will b [...]
+    "enableSSL": { "kind": "parameter", "displayName": "Enable SSL", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.elasticsearch.ElasticsearchConfiguration", "configurationField": "configuration", "description": "Enable SSL" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elsql.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elsql.json
new file mode 100644
index 0000000..fc0f415
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/elsql.json
@@ -0,0 +1,84 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "elsql",
+    "title": "ElSQL",
+    "description": "Use ElSql to define SQL queries. Extends the SQL Component.",
+    "deprecated": true,
+    "firstVersion": "2.16.0",
+    "label": "database,sql",
+    "javaType": "org.apache.camel.component.elsql.ElsqlComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-elsql",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "elsql",
+    "extendsScheme": "",
+    "syntax": "elsql:elsqlName:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "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, "autowired": 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, "autowired": true, "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, "autowired": 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 [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "elSqlConfig": { "kind": "property", "displayName": "El Sql Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.opengamma.elsql.ElSqlConfig", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific configured ElSqlConfig. It may be better to use the databaseVendor option instead." }
+  },
+  "properties": {
+    "elsqlName": { "kind": "path", "displayName": "Elsql Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the elsql to use (is NAMED in the elsql file)" },
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 thi [...]
+    "allowNamedParameters": { "kind": "parameter", "displayName": "Allow Named Parameters", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to allow using named parameters in the queries." },
+    "databaseVendor": { "kind": "parameter", "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, "autowired": false, "secret": false, "description": "To use a vendor specific com.opengamma.elsql.ElSqlConfig" },
+    "dataSource": { "kind": "parameter", "displayName": "Data Source", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.sql.DataSource", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "description": "Sets the DataSource to use to communicate with the database at endpoint level." },
+    "outputClass": { "kind": "parameter", "displayName": "Output Class", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Specify the full package and class name to use as conversion when outputType=SelectOne." },
+    "outputHeader": { "kind": "parameter", "displayName": "Output Header", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Store the query result in a header instead of the message body. By default, outputHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If outputHeader is set, the value is u [...]
+    "outputType": { "kind": "parameter", "displayName": "Output Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.sql.SqlOutputType", "enum": [ "SelectOne", "SelectList", "StreamList" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SelectList", "description": "Make the output of consumer or producer to SelectList as List of Map, or SelectOne as single Java object in the following way: a) If th [...]
+    "separator": { "kind": "parameter", "displayName": "Separator", "group": "common", "label": "", "required": false, "type": "string", "javaType": "char", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "The separator to use when parameter values is taken from message body (if the body is a String type), to be inserted at # placeholders. Notice if you use named parameters, then a Map type is used instead. The default value is comma" },
+    "breakBatchOnConsumeFail": { "kind": "parameter", "displayName": "Break Batch On Consume Fail", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to break batch if onConsume failed." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "expectedUpdateCount": { "kind": "parameter", "displayName": "Expected Update Count", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Sets an expected update count to validate when using onConsume." },
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the maximum number of messages to poll" },
+    "onConsume": { "kind": "parameter", "displayName": "On Consume", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "After processing each row then this query can be executed, if the Exchange was processed successfully, for example to mark the row as processed. The query can have parameter." },
+    "onConsumeBatchComplete": { "kind": "parameter", "displayName": "On Consume Batch Complete", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "After processing the entire batch, this query can be executed to bulk update rows etc. The query cannot have parameters." },
+    "onConsumeFailed": { "kind": "parameter", "displayName": "On Consume Failed", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "After processing each row then this query can be executed, if the Exchange failed, for example to mark the row as failed. The query can have parameter." },
+    "routeEmptyResultSet": { "kind": "parameter", "displayName": "Route Empty Result Set", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether empty resultset should be allowed to be sent to the next hop. Defaults to false. So the empty resultset will be filtered out." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "transacted": { "kind": "parameter", "displayName": "Transacted", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables or disables transaction. If enabled then if processing an exchange failed then the consumer breaks out processing any further exchanges to cause a rollback eager." },
+    "useIterator": { "kind": "parameter", "displayName": "Use Iterator", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets how resultset should be delivered to route. Indicates delivery as either a list or individual object. defaults to true." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "processingStrategy": { "kind": "parameter", "displayName": "Processing Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.sql.SqlProcessingStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Allows to plugin to use a custom org.apache.camel.component.sql.SqlProcessingStrategy to execute queries when the consumer has processed the rows\/batch." },
+    "batch": { "kind": "parameter", "displayName": "Batch", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables or disables batch mode" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "noop": { "kind": "parameter", "displayName": "Noop", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If set, will ignore the results of the SQL query and use the existing IN message as the OUT message for the continuation of processing" },
+    "useMessageBodyForSql": { "kind": "parameter", "displayName": "Use Message Body For Sql", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to use the message body as the SQL and then headers for parameters. If this option is enabled then the SQL in the uri is not used. Note that query parameters in the message body are represen [...]
+    "alwaysPopulateStatement": { "kind": "parameter", "displayName": "Always Populate Statement", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled then the populateStatement method from org.apache.camel.component.sql.SqlPrepareStatementStrategy is always invoked, also if there is no expected parameters to be prepared. When this  [...]
+    "elSqlConfig": { "kind": "parameter", "displayName": "El Sql Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.opengamma.elsql.ElSqlConfig", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific configured ElSqlConfig. It may be better to use the databaseVendor option instead." },
+    "parametersCount": { "kind": "parameter", "displayName": "Parameters Count", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "If set greater than zero, then Camel will use this count value of parameters to replace instead of querying via JDBC metadata API. This is useful if the JDBC vendor could not return correct parameters count, then user may override instead." },
+    "placeholder": { "kind": "parameter", "displayName": "Placeholder", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "#", "description": "Specifies a character that will be replaced to in SQL query. Notice, that it is simple String.replaceAll() operation and no SQL parsing is involved (quoted strings will also change)." },
+    "prepareStatementStrategy": { "kind": "parameter", "displayName": "Prepare Statement Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.sql.SqlPrepareStatementStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Allows to plugin to use a custom org.apache.camel.component.sql.SqlPrepareStatementStrategy to control preparation of the query and prepared statement." },
+    "templateOptions": { "kind": "parameter", "displayName": "Template Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "template.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Configures the Spring JdbcTemplate with the key\/values from the Map" },
+    "usePlaceholder": { "kind": "parameter", "displayName": "Use Placeholder", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to use placeholder and replace all placeholder characters with sign in the SQL queries." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/eventadmin.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/eventadmin.json
new file mode 100644
index 0000000..a5020ac
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/eventadmin.json
@@ -0,0 +1,38 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "eventadmin",
+    "title": "OSGi EventAdmin",
+    "description": "The eventadmin component can be used in an OSGi environment to receive OSGi EventAdmin events and process them.",
+    "deprecated": false,
+    "firstVersion": "2.6.0",
+    "label": "eventbus",
+    "javaType": "org.apache.camel.component.eventadmin.EventAdminComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel.karaf",
+    "artifactId": "camel-eventadmin",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "eventadmin",
+    "extendsScheme": "",
+    "syntax": "eventadmin:topic",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bundleContext": { "kind": "property", "displayName": "Bundle Context", "group": "common", "required": false, "type": "object", "javaType": "org.osgi.framework.BundleContext", "deprecated": false, "autowired": false, "secret": false, "description": "The OSGi BundleContext is automatic injected by Camel" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "topic": { "kind": "path", "displayName": "Topic", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of topic to listen or send to" },
+    "send": { "kind": "parameter", "displayName": "Send", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to use 'send' or 'synchronous' deliver. Default false (async delivery)" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/exec.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/exec.json
new file mode 100644
index 0000000..01726eb
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/exec.json
@@ -0,0 +1,40 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "exec",
+    "title": "Exec",
+    "description": "Execute commands on the underlying operating system.",
+    "deprecated": false,
+    "firstVersion": "2.3.0",
+    "label": "system",
+    "javaType": "org.apache.camel.component.exec.ExecComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-exec",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "exec",
+    "extendsScheme": "",
+    "syntax": "exec:executable",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "executable": { "kind": "path", "displayName": "Executable", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the executable to be executed. The executable must not be empty or null." },
+    "args": { "kind": "parameter", "displayName": "Args", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The arguments may be one or many whitespace-separated tokens." },
+    "binding": { "kind": "parameter", "displayName": "Binding", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.exec.ExecBinding", "deprecated": false, "autowired": false, "secret": false, "description": "A reference to a org.apache.commons.exec.ExecBinding in the Registry." },
+    "commandExecutor": { "kind": "parameter", "displayName": "Command Executor", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.exec.ExecCommandExecutor", "deprecated": false, "autowired": false, "secret": false, "description": "A reference to a org.apache.commons.exec.ExecCommandExecutor in the Registry that customizes the command execution. The default command executor utilizes the commons-exec library, which adds a shutdo [...]
+    "commandLogLevel": { "kind": "parameter", "displayName": "Command Log Level", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "description": "Logging level to be used for commands during execution. The default value is DEBUG. Possible values are TRACE, DEBUG, INFO, WARN, ERR [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "outFile": { "kind": "parameter", "displayName": "Out File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The name of a file, created by the executable, that should be considered as its output. If no outFile is set, the standard output (stdout) of the executable will be used instead." },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "producer", "label": "", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "The timeout, in milliseconds, after which the executable should be terminated. If execution has not completed within the timeout, the component will send a termination request." },
+    "useStderrOnEmptyStdout": { "kind": "parameter", "displayName": "Use Stderr On Empty Stdout", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "A boolean indicating that when stdout is empty, this component will populate the Camel Message Body with stderr. This behavior is disabled (false) by default." },
+    "workingDir": { "kind": "parameter", "displayName": "Working Dir", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The directory in which the command should be executed. If null, the working directory of the current process will be used." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/facebook.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/facebook.json
new file mode 100644
index 0000000..bc84a68
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/facebook.json
@@ -0,0 +1,162 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "facebook",
+    "title": "Facebook",
+    "description": "Send requests to Facebook APIs supported by Facebook4J.",
+    "deprecated": false,
+    "firstVersion": "2.14.0",
+    "label": "social",
+    "javaType": "org.apache.camel.component.facebook.FacebookComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-facebook",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "facebook",
+    "extendsScheme": "",
+    "syntax": "facebook:methodName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "clientURL": { "kind": "property", "displayName": "Client URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.facebook.config.FacebookConfiguration", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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.c [...]
+  },
+  "properties": {
+    "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "What operation to perform" },
+    "achievementURL": { "kind": "parameter", "displayName": "Achievement URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.net.URL", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The unique URL of the achievement" },
+    "albumId": { "kind": "parameter", "displayName": "Album Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The album ID" },
+    "albumUpdate": { "kind": "parameter", "displayName": "Album Update", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.AlbumUpdate", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The facebook Album to be created or updated" },
+    "appId": { "kind": "parameter", "displayName": "App Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The ID of the Facebook Application" },
+    "center": { "kind": "parameter", "displayName": "Center", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.GeoLocation", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Location latitude and longitude" },
+    "checkinId": { "kind": "parameter", "displayName": "Checkin Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The checkin ID" },
+    "checkinUpdate": { "kind": "parameter", "displayName": "Checkin Update", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.CheckinUpdate", "deprecated": true, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The checkin to be created. Deprecated, instead create a Post with an attached location" },
+    "clientURL": { "kind": "parameter", "displayName": "Client URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Facebook4J API client URL" },
+    "clientVersion": { "kind": "parameter", "displayName": "Client Version", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Facebook4J client API version" },
+    "commentId": { "kind": "parameter", "displayName": "Comment Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The comment ID" },
+    "commentUpdate": { "kind": "parameter", "displayName": "Comment Update", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.CommentUpdate", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The facebook Comment to be created or updated" },
+    "debugEnabled": { "kind": "parameter", "displayName": "Debug Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Enables deubg output. Effective only with the embedded logger" },
+    "description": { "kind": "parameter", "displayName": "Description", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The description text" },
+    "distance": { "kind": "parameter", "displayName": "Distance", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Distance in meters" },
+    "domainId": { "kind": "parameter", "displayName": "Domain Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The domain ID" },
+    "domainName": { "kind": "parameter", "displayName": "Domain Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The domain name" },
+    "domainNames": { "kind": "parameter", "displayName": "Domain Names", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The domain names" },
+    "eventId": { "kind": "parameter", "displayName": "Event Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The event ID" },
+    "eventUpdate": { "kind": "parameter", "displayName": "Event Update", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.EventUpdate", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The event to be created or updated" },
+    "friendId": { "kind": "parameter", "displayName": "Friend Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The friend ID" },
+    "friendlistId": { "kind": "parameter", "displayName": "Friendlist Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The friend list ID" },
+    "friendlistName": { "kind": "parameter", "displayName": "Friendlist Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The friend list Name" },
+    "friendUserId": { "kind": "parameter", "displayName": "Friend User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The friend user ID" },
+    "groupId": { "kind": "parameter", "displayName": "Group Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The group ID" },
+    "gzipEnabled": { "kind": "parameter", "displayName": "Gzip Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Use Facebook GZIP encoding" },
+    "httpConnectionTimeout": { "kind": "parameter", "displayName": "Http Connection Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Http connection timeout in milliseconds" },
+    "httpDefaultMaxPerRoute": { "kind": "parameter", "displayName": "Http Default Max Per Route", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP maximum connections per route" },
+    "httpMaxTotalConnections": { "kind": "parameter", "displayName": "Http Max Total Connections", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "20", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP maximum total connections" },
+    "httpReadTimeout": { "kind": "parameter", "displayName": "Http Read Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "120000", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Http read timeout in milliseconds" },
+    "httpRetryCount": { "kind": "parameter", "displayName": "Http Retry Count", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Number of HTTP retries" },
+    "httpRetryIntervalSeconds": { "kind": "parameter", "displayName": "Http Retry Interval Seconds", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP retry interval in seconds" },
+    "httpStreamingReadTimeout": { "kind": "parameter", "displayName": "Http Streaming Read Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "40000", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP streaming read timeout in milliseconds" },
+    "ids": { "kind": "parameter", "displayName": "Ids", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The ids of users" },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "includeRead": { "kind": "parameter", "displayName": "Include Read", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Enables notifications that the user has already read in addition to unread ones" },
+    "isHidden": { "kind": "parameter", "displayName": "Is Hidden", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Whether hidden" },
+    "jsonStoreEnabled": { "kind": "parameter", "displayName": "Json Store Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "If set to true, raw JSON forms will be stored in DataObjectFactory" },
+    "link": { "kind": "parameter", "displayName": "Link", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.net.URL", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Link URL" },
+    "linkId": { "kind": "parameter", "displayName": "Link Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Link ID" },
+    "locale": { "kind": "parameter", "displayName": "Locale", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Locale", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Desired FQL locale" },
+    "mbeanEnabled": { "kind": "parameter", "displayName": "Mbean Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "If set to true, Facebook4J mbean will be registerd" },
+    "message": { "kind": "parameter", "displayName": "Message", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The message text" },
+    "messageId": { "kind": "parameter", "displayName": "Message Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The message ID" },
+    "metric": { "kind": "parameter", "displayName": "Metric", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The metric name" },
+    "milestoneId": { "kind": "parameter", "displayName": "Milestone Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The milestone id" },
+    "name": { "kind": "parameter", "displayName": "Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Test user name, must be of the form 'first last'" },
+    "noteId": { "kind": "parameter", "displayName": "Note Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The note ID" },
+    "notificationId": { "kind": "parameter", "displayName": "Notification Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The notification ID" },
+    "objectId": { "kind": "parameter", "displayName": "Object Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The insight object ID" },
+    "offerId": { "kind": "parameter", "displayName": "Offer Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The offer id" },
+    "optionDescription": { "kind": "parameter", "displayName": "Option Description", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The question's answer option description" },
+    "pageId": { "kind": "parameter", "displayName": "Page Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The page id" },
+    "permissionName": { "kind": "parameter", "displayName": "Permission Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The permission name" },
+    "permissions": { "kind": "parameter", "displayName": "Permissions", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Test user permissions in the format perm1,perm2,..." },
+    "photoId": { "kind": "parameter", "displayName": "Photo Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The photo ID" },
+    "pictureId": { "kind": "parameter", "displayName": "Picture Id", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The picture id" },
+    "pictureId2": { "kind": "parameter", "displayName": "Picture Id2", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The picture2 id" },
+    "pictureSize": { "kind": "parameter", "displayName": "Picture Size", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.PictureSize", "enum": [ "square", "small", "normal", "large", "thumbnail", "album" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The picture size" },
+    "placeId": { "kind": "parameter", "displayName": "Place Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The place ID" },
+    "postId": { "kind": "parameter", "displayName": "Post Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The post ID" },
+    "postUpdate": { "kind": "parameter", "displayName": "Post Update", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.PostUpdate", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The post to create or update" },
+    "prettyDebugEnabled": { "kind": "parameter", "displayName": "Pretty Debug Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Prettify JSON debug output if set to true" },
+    "queries": { "kind": "parameter", "displayName": "Queries", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "FQL queries" },
+    "query": { "kind": "parameter", "displayName": "Query", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "FQL query or search terms for search endpoints" },
+    "questionId": { "kind": "parameter", "displayName": "Question Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The question id" },
+    "reading": { "kind": "parameter", "displayName": "Reading", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.Reading", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Optional reading parameters. See Reading Options(#reading)" },
+    "readingOptions": { "kind": "parameter", "displayName": "Reading Options", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "reading.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "To configure Reading using [...]
+    "restBaseURL": { "kind": "parameter", "displayName": "Rest Base URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "https:\/\/graph.facebook.com\/", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "API base URL" },
+    "scoreValue": { "kind": "parameter", "displayName": "Score Value", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The numeric score with value" },
+    "size": { "kind": "parameter", "displayName": "Size", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.PictureSize", "enum": [ "square", "small", "normal", "large", "thumbnail", "album" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The picture size, one of large, normal, smal [...]
+    "source": { "kind": "parameter", "displayName": "Source", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.Media", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The media content from either a java.io.File or java.io.Inputstream" },
+    "subject": { "kind": "parameter", "displayName": "Subject", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The note of the subject" },
+    "tabId": { "kind": "parameter", "displayName": "Tab Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The tab id" },
+    "tagUpdate": { "kind": "parameter", "displayName": "Tag Update", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.TagUpdate", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Photo tag information" },
+    "testUser1": { "kind": "parameter", "displayName": "Test User1", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.TestUser", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Test user 1" },
+    "testUser2": { "kind": "parameter", "displayName": "Test User2", "group": "common", "label": "", "required": false, "type": "object", "javaType": "facebook4j.TestUser", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Test user 2" },
+    "testUserId": { "kind": "parameter", "displayName": "Test User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The ID of the test user" },
+    "title": { "kind": "parameter", "displayName": "Title", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The title text" },
+    "toUserId": { "kind": "parameter", "displayName": "To User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The ID of the user to tag" },
+    "toUserIds": { "kind": "parameter", "displayName": "To User Ids", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The IDs of the users to tag" },
+    "userId": { "kind": "parameter", "displayName": "User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The Facebook user ID" },
+    "userId1": { "kind": "parameter", "displayName": "User Id1", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The ID of a user 1" },
+    "userId2": { "kind": "parameter", "displayName": "User Id2", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The ID of a user 2" },
+    "userIds": { "kind": "parameter", "displayName": "User Ids", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The IDs of users to invite to event" },
+    "userLocale": { "kind": "parameter", "displayName": "User Locale", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The test user locale" },
+    "useSSL": { "kind": "parameter", "displayName": "Use SSL", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Use SSL" },
+    "videoBaseURL": { "kind": "parameter", "displayName": "Video Base URL", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "https:\/\/graph-video.facebook.com\/", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Video API base URL" },
+    "videoId": { "kind": "parameter", "displayName": "Video Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The video ID" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "httpProxyHost": { "kind": "parameter", "displayName": "Http Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP proxy server host name" },
+    "httpProxyPassword": { "kind": "parameter", "displayName": "Http Proxy Password", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP proxy server password" },
+    "httpProxyPort": { "kind": "parameter", "displayName": "Http Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP proxy server port" },
+    "httpProxyUser": { "kind": "parameter", "displayName": "Http Proxy User", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "HTTP proxy server user name" },
+    "oAuthAccessToken": { "kind": "parameter", "displayName": "OAuth Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The user access token" },
+    "oAuthAccessTokenURL": { "kind": "parameter", "displayName": "OAuth Access Token URL", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "https:\/\/graph.facebook.com\/oauth\/access_token", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "OAuth acce [...]
+    "oAuthAppId": { "kind": "parameter", "displayName": "OAuth App Id", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The application Id" },
+    "oAuthAppSecret": { "kind": "parameter", "displayName": "OAuth App Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "The application Secret" },
+    "oAuthAuthorizationURL": { "kind": "parameter", "displayName": "OAuth Authorization URL", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "https:\/\/www.facebook.com\/dialog\/oauth", "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "OAuth authoriza [...]
+    "oAuthPermissions": { "kind": "parameter", "displayName": "OAuth Permissions", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.facebook.config.FacebookEndpointConfiguration", "configurationField": "configuration", "description": "Default OAuth permissions. Comma separated permission names. See https:\/\/developers.f [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file-watch.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file-watch.json
new file mode 100644
index 0000000..4a7c0d1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file-watch.json
@@ -0,0 +1,48 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "file-watch",
+    "title": "File Watch",
+    "description": "Get notified about file events in a directory using java.nio.file.WatchService.",
+    "deprecated": false,
+    "firstVersion": "3.0.0",
+    "label": "file",
+    "javaType": "org.apache.camel.component.file.watch.FileWatchComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-file-watch",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "file-watch",
+    "extendsScheme": "",
+    "syntax": "file-watch:path",
+    "async": false,
+    "api": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "The number of concurrent consumers. Increase this value, if your route is slow to prevent buffering in queue." },
+    "fileHasher": { "kind": "property", "displayName": "File Hasher", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "io.methvin.watcher.hashing.FileHasher", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "#murmur3FFileHasher", "description": "Reference to io.methvin.watcher.hashing.FileHasher. This prevents emitting duplicate events on some platforms. For working with large files and if you dont need detect multiple  [...]
+    "pollThreads": { "kind": "property", "displayName": "Poll Threads", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "The number of threads polling WatchService. Increase this value, if you see OVERFLOW messages in log." },
+    "queueSize": { "kind": "property", "displayName": "Queue Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "description": "Maximum size of queue between WatchService and consumer. Unbounded by default." },
+    "useFileHashing": { "kind": "property", "displayName": "Use File Hashing", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Enables or disables file hashing to detect duplicate events. If you disable this, you can get some events multiple times on some platforms and JDKs. Check java.nio.file.WatchService limitations for your target plat [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "path": { "kind": "path", "displayName": "Path", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path of directory to consume events from." },
+    "antInclude": { "kind": "parameter", "displayName": "Ant Include", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "**", "description": "ANT style pattern to match files. The file is matched against path relative to endpoint path. Pattern must be also relative (not starting with slash)" },
+    "autoCreate": { "kind": "parameter", "displayName": "Auto Create", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Auto create directory if does not exists." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "The number of concurrent consumers. Increase this value, if your route is slow to prevent buffering in queue." },
+    "events": { "kind": "parameter", "displayName": "Events", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "java.util.Set<org.apache.camel.component.file.watch.constants.FileEventEnum>", "enum": [ "CREATE", "MODIFY", "DELETE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CREATE,MODIFY,DELETE", "description": "Comma separated list of events to watch." },
+    "fileHasher": { "kind": "parameter", "displayName": "File Hasher", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "io.methvin.watcher.hashing.FileHasher", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "#murmur3FFileHasher", "description": "Reference to io.methvin.watcher.hashing.FileHasher. This prevents emitting duplicate events on some platforms. For working with large files and if you dont need detect multiple [...]
+    "pollThreads": { "kind": "parameter", "displayName": "Poll Threads", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "The number of threads polling WatchService. Increase this value, if you see OVERFLOW messages in log." },
+    "queueSize": { "kind": "parameter", "displayName": "Queue Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "description": "Maximum size of queue between WatchService and consumer. Unbounded by default." },
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Watch recursive in current and child directories (including newly created directories)." },
+    "useFileHashing": { "kind": "parameter", "displayName": "Use File Hashing", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Enables or disables file hashing to detect duplicate events. If you disable this, you can get some events multiple times on some platforms and JDKs. Check java.nio.file.WatchService limitations for your target pla [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file.json
new file mode 100644
index 0000000..46a6363
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/file.json
@@ -0,0 +1,126 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "file",
+    "title": "File",
+    "description": "Read and write files.",
+    "deprecated": false,
+    "firstVersion": "1.0.0",
+    "label": "file,core",
+    "javaType": "org.apache.camel.component.file.FileComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-file",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "file",
+    "extendsScheme": "",
+    "syntax": "file:directoryName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "directoryName": { "kind": "path", "displayName": "Directory Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.io.File", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The starting directory" },
+    "charset": { "kind": "parameter", "displayName": "Charset", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option is used to specify the encoding of the file. You can use this on the consumer, to specify the encodings of the files, which allow Camel to know the charset it should load the file content in case the file content is being accessed. Likewise  [...]
+    "doneFileName": { "kind": "parameter", "displayName": "Done File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Producer: If provided, then Camel will write a 2nd done file when the original file has been written. The done file will be empty. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic plac [...]
+    "fileName": { "kind": "parameter", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Use Expression such as File Language to dynamically set the filename. For consumers, it's used as a filename filter. For producers, it's used to evaluate the filename to write. If an expression is set, it take precedence over the CamelFileName header [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the file will be deleted after it is processed successfully." },
+    "moveFailed": { "kind": "parameter", "displayName": "Move Failed", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the move failure expression based on Simple language. For example, to move files into a .error subdirectory use: .error. Note: When moving the files to the fail location Camel will handle the error and will not pick up the file again." },
+    "noop": { "kind": "parameter", "displayName": "Noop", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the file is not moved or deleted in any way. This option is good for readonly data, or for ETL type requirements. If noop=true, Camel will set idempotent=true as well, to avoid consuming the same files over and over again." },
+    "preMove": { "kind": "parameter", "displayName": "Pre Move", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Expression (such as File Language) used to dynamically set the filename when moving it before processing. For example to move in-progress files into the order directory set this value to order." },
+    "preSort": { "kind": "parameter", "displayName": "Pre Sort", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When pre-sort is enabled then the consumer will sort the file and directory names during polling, that was retrieved from the file system. You may want to do this in case you need to operate on the files in a sorted order. The  [...]
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If a directory, will look for files in all the sub-directories as well." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "directoryMustExist": { "kind": "parameter", "displayName": "Directory Must Exist", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Similar to the startingDirectoryMustExist option but this applies during polling (after starting the consumer)." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "extendedAttributes": { "kind": "parameter", "displayName": "Extended Attributes", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To define which file attributes of interest. Like posix:permissions,posix:owner,basic:lastAccessTime, it supports basic wildcard like posix:, basic:lastAccessTime" },
+    "inProgressRepository": { "kind": "parameter", "displayName": "In Progress Repository", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable in-progress repository org.apache.camel.spi.IdempotentRepository. The in-progress repository is used to account the current in progress files being consumed.  [...]
+    "localWorkDirectory": { "kind": "parameter", "displayName": "Local Work Directory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "When consuming, a local work directory can be used to store the remote file content directly in local files, to avoid loading the content into memory. This is beneficial, if you consume a very big re [...]
+    "onCompletionExceptionHandler": { "kind": "parameter", "displayName": "On Completion Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that happens during the file on completion process where the consumer d [...]
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "probeContentType": { "kind": "parameter", "displayName": "Probe Content Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to enable probing of the content type. If enable then the consumer uses Files#probeContentType(java.nio.file.Path) to determine the content-type of the file, and store that as a he [...]
+    "processStrategy": { "kind": "parameter", "displayName": "Process Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileProcessStrategy<java.io.File>", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.component.file.GenericFileProcessStrategy allowing you to implement your own readLock option or similar. Can also be used [...]
+    "resumeStrategy": { "kind": "parameter", "displayName": "Resume Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.consumer.FileConsumerResumeStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Set a resume strategy for files. This makes it possible to define a strategy for resuming reading files after the last point before stopping the application. [...]
+    "startingDirectoryMustExist": { "kind": "parameter", "displayName": "Starting Directory Must Exist", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the starting directory must exist. Mind that the autoCreate option is default enabled, which means the starting directory is normally auto created if it doesn' [...]
+    "startingDirectoryMustHaveAccess": { "kind": "parameter", "displayName": "Starting Directory Must Have Access", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the starting directory has access permissions. Mind that the startingDirectoryMustExist parameter must be set to true in order to verify that the di [...]
+    "appendChars": { "kind": "parameter", "displayName": "Append Chars", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Used to append characters (text) after writing files. This can for example be used to add new lines or other separators when writing and appending new files or existing files. To specify new-line (slash-n or slash-r) or tab (slash-t)  [...]
+    "fileExist": { "kind": "parameter", "displayName": "File Exist", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileExist", "enum": [ "Override", "Append", "Fail", "Ignore", "Move", "TryRename" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Override", "description": "What to do if a file already exists with the same name. Override, which is the default, replaces the exis [...]
+    "flatten": { "kind": "parameter", "displayName": "Flatten", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Flatten is used to flatten the file name path to strip any leading paths, so it's just the file name. This allows you to consume recursively into sub-directories, but when you eg write the files to another directory they will be [...]
+    "jailStartingDirectory": { "kind": "parameter", "displayName": "Jail Starting Directory", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for jailing (restricting) writing files to the starting directory (and sub) only. This is enabled by default to not allow Camel to write files to outside directories (to be more secured out of t [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "moveExisting": { "kind": "parameter", "displayName": "Move Existing", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Expression (such as File Language) used to compute file name to use when fileExist=Move is configured. To move files into a backup subdirectory just enter backup. This option only supports the following File Language tokens: file:na [...]
+    "tempFileName": { "kind": "parameter", "displayName": "Temp File Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The same as tempPrefix option but offering a more fine grained control on the naming of the temporary filename as it uses the File Language. The location for tempFilename is relative to the final file location in the option 'fileNa [...]
+    "tempPrefix": { "kind": "parameter", "displayName": "Temp Prefix", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option is used to write the file using a temporary name and then, after the write is complete, rename it to the real name. Can be used to identify files being written and also avoid consumers (not using exclusive read locks) readin [...]
+    "allowNullBody": { "kind": "parameter", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Used to specify if a null body is allowed during file writing. If set to true then an empty file will be created, when set to false, and attempting to send a null body to the file component, a G [...]
+    "chmod": { "kind": "parameter", "displayName": "Chmod", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Specify the file permissions which is sent by the producer, the chmod value must be between 000 and 777; If there is a leading digit like in 0755 we will ignore it." },
+    "chmodDirectory": { "kind": "parameter", "displayName": "Chmod Directory", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Specify the directory permissions used when the producer creates missing directories, the chmod value must be between 000 and 777; If there is a leading digit like in 0755 we will ignore it." },
+    "eagerDeleteTargetFile": { "kind": "parameter", "displayName": "Eager Delete Target File", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not to eagerly delete any existing target file. This option only applies when you use fileExists=Override and the tempFileName option as well. You can use this to disa [...]
+    "forceWrites": { "kind": "parameter", "displayName": "Force Writes", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to force syncing writes to the file system. You can turn this off if you do not want this level of guarantee, for example if writing to logs \/ audit logs etc; this would yield better performa [...]
+    "keepLastModified": { "kind": "parameter", "displayName": "Keep Last Modified", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will keep the last modified timestamp from the source file (if any). Will use the Exchange.FILE_LAST_MODIFIED header to located the timestamp. This header can contain either a java.util.Da [...]
+    "moveExistingFileStrategy": { "kind": "parameter", "displayName": "Move Existing File Strategy", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.strategy.FileMoveExistingStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Strategy (Custom Strategy) used to move file with special naming token to use when fileExist=Move is configured. By default, there is an  [...]
+    "autoCreate": { "kind": "parameter", "displayName": "Auto Create", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Automatically create missing directories in the file's pathname. For the file consumer, that means creating the starting directory. For the file producer, it means the directory the files should be written to." },
+    "bufferSize": { "kind": "parameter", "displayName": "Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 131072, "description": "Buffer size in bytes used for writing files (or in case of FTP for downloading and uploading files)." },
+    "copyAndDeleteOnRenameFail": { "kind": "parameter", "displayName": "Copy And Delete On Rename Fail", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to fallback and do a copy and delete file, in case the file could not be renamed directly. This option is not available for the FTP component." },
+    "renameUsingCopy": { "kind": "parameter", "displayName": "Rename Using Copy", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Perform rename operations using a copy and delete strategy. This is primarily used in environments where the regular rename operation is unreliable (e.g. across different file systems or networks). This option  [...]
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used" },
+    "antExclude": { "kind": "parameter", "displayName": "Ant Exclude", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Ant style filter exclusion. If both antInclude and antExclude are used, antExclude takes precedence over antInclude. Multiple exclusions may be specified in comma-delimited format." },
+    "antFilterCaseSensitive": { "kind": "parameter", "displayName": "Ant Filter Case Sensitive", "group": "filter", "label": "consumer,filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets case sensitive flag on ant filter." },
+    "antInclude": { "kind": "parameter", "displayName": "Ant Include", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format." },
+    "eagerMaxMessagesPerPoll": { "kind": "parameter", "displayName": "Eager Max Messages Per Poll", "group": "filter", "label": "consumer,filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then per [...]
+    "exclude": { "kind": "parameter", "displayName": "Exclude", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to exclude files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endp [...]
+    "excludeExt": { "kind": "parameter", "displayName": "Exclude Ext", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use exclu [...]
+    "filter": { "kind": "parameter", "displayName": "Filter", "group": "filter", "label": "consumer,filter", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileFilter<java.io.File>", "deprecated": false, "autowired": false, "secret": false, "description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method." },
+    "filterDirectory": { "kind": "parameter", "displayName": "Filter Directory", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd}" },
+    "filterFile": { "kind": "parameter", "displayName": "Filter File", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000" },
+    "idempotent": { "kind": "parameter", "displayName": "Idempotent", "group": "filter", "label": "consumer,filter", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "description": "Option to use the Idempotent Consumer EIP pattern to let Camel skip already processed files. Will by default use a memory based LRUCache that holds 1000 entries. If noop=true then idempotent will be enable [...]
+    "idempotentKey": { "kind": "parameter", "displayName": "Idempotent Key", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size}" },
+    "idempotentRepository": { "kind": "parameter", "displayName": "Idempotent Repository", "group": "filter", "label": "consumer,filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryIdempotentRepository if none is specified and idempotent is true." },
+    "include": { "kind": "parameter", "displayName": "Include", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endp [...]
+    "includeExt": { "kind": "parameter", "displayName": "Include Ext", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use inclu [...]
+    "maxDepth": { "kind": "parameter", "displayName": "Max Depth", "group": "filter", "label": "consumer,filter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "description": "The maximum depth to traverse when recursively processing a directory." },
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "filter", "label": "consumer,filter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to di [...]
+    "minDepth": { "kind": "parameter", "displayName": "Min Depth", "group": "filter", "label": "consumer,filter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory." },
+    "move": { "kind": "parameter", "displayName": "Move", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Expression (such as Simple Language) used to dynamically set the filename when moving it after processing. To move files into a .done subdirectory just enter .done." },
+    "exclusiveReadLockStrategy": { "kind": "parameter", "displayName": "Exclusive Read Lock Strategy", "group": "lock", "label": "consumer,lock", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy<java.io.File>", "deprecated": false, "autowired": false, "secret": false, "description": "Pluggable read-lock as a org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy implementation." },
+    "readLock": { "kind": "parameter", "displayName": "Read Lock", "group": "lock", "label": "consumer,lock", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "none", "markerFile", "fileLock", "rename", "changed", "idempotent", "idempotent-changed", "idempotent-rename" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "Used by consumer, to only poll the files if it has exclusive read-lock on the file (i.e. th [...]
+    "readLockCheckInterval": { "kind": "parameter", "displayName": "Read Lock Check Interval", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Interval in millis for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the changed read lock, you can [...]
+    "readLockDeleteOrphanLockFiles": { "kind": "parameter", "displayName": "Read Lock Delete Orphan Lock Files", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not read lock with marker files should upon startup delete any orphan read lock files, which may have been left on the file system, if Camel was not properly shutdown ( [...]
+    "readLockIdempotentReleaseAsync": { "kind": "parameter", "displayName": "Read Lock Idempotent Release Async", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the delayed release task should be synchronous or asynchronous. See more details at the readLockIdempotentReleaseDelay option." },
+    "readLockIdempotentReleaseAsyncPoolSize": { "kind": "parameter", "displayName": "Read Lock Idempotent Release Async Pool Size", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of threads in the scheduled thread pool when using asynchronous release tasks. Using a default of 1 core threads should be sufficient in almost all use-cases, only set this to [...]
+    "readLockIdempotentReleaseDelay": { "kind": "parameter", "displayName": "Read Lock Idempotent Release Delay", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Whether to delay the release task for a period of millis. This can be used to delay the release tasks to expand the window when a file is regarded as read-locked, in an active\/active cluster scenario wit [...]
+    "readLockIdempotentReleaseExecutorService": { "kind": "parameter", "displayName": "Read Lock Idempotent Release Executor Service", "group": "lock", "label": "consumer,lock", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom and shared thread pool for asynchronous release tasks. See more details at the readLockIdempotentReleaseDelay option." },
+    "readLockLoggingLevel": { "kind": "parameter", "displayName": "Read Lock Logging Level", "group": "lock", "label": "consumer,lock", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "description": "Logging level used when a read lock could not be acquired. By default a DEBUG is logged. You can change this leve [...]
+    "readLockMarkerFile": { "kind": "parameter", "displayName": "Read Lock Marker File", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to use marker file with the changed, rename, or exclusive read lock types. By default a marker file is used as well to guard against other processes picking up the same files. This behavior can b [...]
+    "readLockMinAge": { "kind": "parameter", "displayName": "Read Lock Min Age", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "This option is applied only for readLock=changed. It allows to specify a minimum age the file must be before attempting to acquire the read lock. For example use readLockMinAge=300s to require the file is at last 5 mi [...]
+    "readLockMinLength": { "kind": "parameter", "displayName": "Read Lock Min Length", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "This option is applied only for readLock=changed. It allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is 1. You can set this option to  [...]
+    "readLockRemoveOnCommit": { "kind": "parameter", "displayName": "Read Lock Remove On Commit", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "This option is applied only for readLock=idempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file is succeeded and a commit [...]
+    "readLockRemoveOnRollback": { "kind": "parameter", "displayName": "Read Lock Remove On Rollback", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "This option is applied only for readLock=idempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file failed and a rollback  [...]
+    "readLockTimeout": { "kind": "parameter", "displayName": "Read Lock Timeout", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "description": "Optional timeout in millis for the read-lock, if supported by the read-lock. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file a [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "shuffle": { "kind": "parameter", "displayName": "Shuffle", "group": "sort", "label": "consumer,sort", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To shuffle the list of files (sort in random order)" },
+    "sortBy": { "kind": "parameter", "displayName": "Sort By", "group": "sort", "label": "consumer,sort", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Built-in sort by using the File Language. Supports nested sorts, so you can have a sort by file name and as a 2nd group sort by modified date." },
+    "sorter": { "kind": "parameter", "displayName": "Sorter", "group": "sort", "label": "consumer,sort", "required": false, "type": "object", "javaType": "java.util.Comparator<org.apache.camel.component.file.GenericFile<java.io.File>>", "deprecated": false, "autowired": false, "secret": false, "description": "Pluggable sorter as a java.util.Comparator class." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/flatpack.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/flatpack.json
new file mode 100644
index 0000000..ca5e5e6
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/flatpack.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "flatpack",
+    "title": "Flatpack",
+    "description": "Parse fixed width and delimited files using the FlatPack library.",
+    "deprecated": false,
+    "firstVersion": "1.4.0",
+    "label": "transformation",
+    "javaType": "org.apache.camel.component.flatpack.FlatpackComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-flatpack",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "flatpack",
+    "extendsScheme": "",
+    "syntax": "flatpack:type:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "type": { "kind": "path", "displayName": "Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.flatpack.FlatpackType", "enum": [ "fixed", "delim" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "delim", "description": "Whether to use fixed or delimiter" },
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URL for loading the flatpack mapping file from classpath or file system" },
+    "allowShortLines": { "kind": "parameter", "displayName": "Allow Short Lines", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for lines to be shorter than expected and ignores the extra characters" },
+    "delimiter": { "kind": "parameter", "displayName": "Delimiter", "group": "common", "label": "", "required": false, "type": "string", "javaType": "char", "deprecated": false, "autowired": false, "secret": false, "defaultValue": ",", "description": "The default character delimiter for delimited files." },
+    "ignoreExtraColumns": { "kind": "parameter", "displayName": "Ignore Extra Columns", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for lines to be longer than expected and ignores the extra characters" },
+    "ignoreFirstRecord": { "kind": "parameter", "displayName": "Ignore First Record", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the first line is ignored for delimited files (for the column headers)." },
+    "splitRows": { "kind": "parameter", "displayName": "Split Rows", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets the Component to send each row as a separate exchange once parsed" },
+    "textQualifier": { "kind": "parameter", "displayName": "Text Qualifier", "group": "common", "label": "", "required": false, "type": "string", "javaType": "char", "deprecated": false, "autowired": false, "secret": false, "description": "The text qualifier for delimited files." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/fop.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/fop.json
new file mode 100644
index 0000000..72fe64f
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/fop.json
@@ -0,0 +1,34 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "fop",
+    "title": "FOP",
+    "description": "Render messages into PDF and other output formats supported by Apache FOP.",
+    "deprecated": false,
+    "firstVersion": "2.10.0",
+    "label": "file,transformation",
+    "javaType": "org.apache.camel.component.fop.FopComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-fop",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "fop",
+    "extendsScheme": "",
+    "syntax": "fop:outputType",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "outputType": { "kind": "path", "displayName": "Output Type", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.fop.FopOutputType", "enum": [ "pdf", "ps", "pcl", "png", "jpeg", "svg", "xml", "mif", "rtf", "txt" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The primary output format is PDF but other output formats are also supported." },
+    "fopFactory": { "kind": "parameter", "displayName": "Fop Factory", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.fop.apps.FopFactory", "deprecated": false, "autowired": false, "secret": false, "description": "Allows to use a custom configured or implementation of org.apache.fop.apps.FopFactory." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "userConfigURL": { "kind": "parameter", "displayName": "User Config URL", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The location of a configuration file which can be loaded from classpath or file system." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/freemarker.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/freemarker.json
new file mode 100644
index 0000000..d89357d
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/freemarker.json
@@ -0,0 +1,42 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "freemarker",
+    "title": "Freemarker",
+    "description": "Transform messages using FreeMarker templates.",
+    "deprecated": false,
+    "firstVersion": "2.10.0",
+    "label": "transformation",
+    "javaType": "org.apache.camel.component.freemarker.FreemarkerComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-freemarker",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "freemarker",
+    "extendsScheme": "",
+    "syntax": "freemarker:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "allowContextMapAll": { "kind": "property", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext.  [...]
+    "allowTemplateFromHeader": { "kind": "property", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulne [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "localizedLookup": { "kind": "property", "displayName": "Localized Lookup", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables\/disables localized template lookup. Disabled by default." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "freemarker.template.Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "To use an existing freemarker.template.Configuration instance as the configuration." }
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "allowTemplateFromHeader": { "kind": "parameter", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vuln [...]
+    "configuration": { "kind": "parameter", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "freemarker.template.Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the Freemarker configuration to use" },
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to use resource content cache or not" },
+    "encoding": { "kind": "parameter", "displayName": "Encoding", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the encoding to be used for loading the template file." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "templateUpdateDelay": { "kind": "parameter", "displayName": "Template Update Delay", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Number of seconds the loaded template resource will remain in the cache." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ftp.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ftp.json
new file mode 100644
index 0000000..b1012df
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ftp.json
@@ -0,0 +1,147 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ftp",
+    "title": "FTP",
+    "description": "Upload and download files to\/from FTP servers.",
+    "deprecated": false,
+    "deprecationNote": "",
+    "firstVersion": "1.1.0",
+    "label": "file",
+    "javaType": "org.apache.camel.component.file.remote.FtpComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ftp",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ftp",
+    "extendsScheme": "file",
+    "syntax": "ftp:host:port\/directoryName",
+    "alternativeSyntax": "ftp:username:password@host:port\/directoryName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Hostname of the FTP server" },
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Port of the FTP server" },
+    "directoryName": { "kind": "path", "displayName": "Directory Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "The starting directory" },
+    "binary": { "kind": "parameter", "displayName": "Binary", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Specifies the file transfer mode, BINARY or ASCII. Default is ASCII (false)." },
+    "charset": { "kind": "parameter", "displayName": "Charset", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option is used to specify the encoding of the file. You can use this on the consumer, to specify the encodings of the files, which allow Camel to know the charset it should load the file content in case the file content is being accessed. Likewise  [...]
+    "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not to disconnect from remote FTP server right after use. Disconnect will only disconnect the current connection to the FTP server. If you have a consumer which you want to stop, then you need to stop the consumer\/ [...]
+    "doneFileName": { "kind": "parameter", "displayName": "Done File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Producer: If provided, then Camel will write a 2nd done file when the original file has been written. The done file will be empty. This option configures what file name to use. Either you can specify a fixed name. Or you can use dynamic plac [...]
+    "fileName": { "kind": "parameter", "displayName": "File Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Use Expression such as File Language to dynamically set the filename. For consumers, it's used as a filename filter. For producers, it's used to evaluate the filename to write. If an expression is set, it take precedence over the CamelFileName header [...]
+    "passiveMode": { "kind": "parameter", "displayName": "Passive Mode", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets passive mode connections. Default is active mode connections." },
+    "separator": { "kind": "parameter", "displayName": "Separator", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.remote.RemoteFileConfiguration.PathSeparator", "enum": [ "UNIX", "Windows", "Auto" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "UNIX", "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets t [...]
+    "transferLoggingIntervalSeconds": { "kind": "parameter", "displayName": "Transfer Logging Interval Seconds", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "description": "Configures the interval in seconds to use when logging the progress of upload and download operations that are in-flight. This is used for logging progress when operations takes longer time." },
+    "transferLoggingLevel": { "kind": "parameter", "displayName": "Transfer Logging Level", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "description": "Configure the logging level to use when logging the progress of upload and download operations." },
+    "transferLoggingVerbose": { "kind": "parameter", "displayName": "Transfer Logging Verbose", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Configures whether the perform verbose (fine grained) logging of the progress of upload and download operations." },
+    "fastExistsCheck": { "kind": "parameter", "displayName": "Fast Exists Check", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If set this option to be true, camel-ftp will use the list file directly to check if the file exists. Since some FTP server may not support to list the file directly, if the option is false, cam [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "delete": { "kind": "parameter", "displayName": "Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the file will be deleted after it is processed successfully." },
+    "moveFailed": { "kind": "parameter", "displayName": "Move Failed", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the move failure expression based on Simple language. For example, to move files into a .error subdirectory use: .error. Note: When moving the files to the fail location Camel will handle the error and will not pick up the file again." },
+    "noop": { "kind": "parameter", "displayName": "Noop", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the file is not moved or deleted in any way. This option is good for readonly data, or for ETL type requirements. If noop=true, Camel will set idempotent=true as well, to avoid consuming the same files over and over again." },
+    "preMove": { "kind": "parameter", "displayName": "Pre Move", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Expression (such as File Language) used to dynamically set the filename when moving it before processing. For example to move in-progress files into the order directory set this value to order." },
+    "preSort": { "kind": "parameter", "displayName": "Pre Sort", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When pre-sort is enabled then the consumer will sort the file and directory names during polling, that was retrieved from the file system. You may want to do this in case you need to operate on the files in a sorted order. The  [...]
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If a directory, will look for files in all the sub-directories as well." },
+    "resumeDownload": { "kind": "parameter", "displayName": "Resume Download", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Configures whether resume download is enabled. This must be supported by the FTP server (almost all FTP servers support it). In addition the options localWorkDirectory must be configured so downloaded files are st [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "streamDownload": { "kind": "parameter", "displayName": "Stream Download", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets the download method to use when not using a local working directory. If set to true, the [...]
+    "download": { "kind": "parameter", "displayName": "Download", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the FTP consumer should download the file. If this option is set to false, then the message body will be null, but the consumer will still trigger a Camel Exchange that has details about the file su [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "handleDirectoryParserAbsoluteResult": { "kind": "parameter", "displayName": "Handle Directory Parser Absolute Result", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Allows you to set how the co [...]
+    "ignoreFileNotFoundOrPermissionError": { "kind": "parameter", "displayName": "Ignore File Not Found Or Permission Error", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Whether to ignore when (tr [...]
+    "inProgressRepository": { "kind": "parameter", "displayName": "In Progress Repository", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable in-progress repository org.apache.camel.spi.IdempotentRepository. The in-progress repository is used to account the current in progress files being consumed.  [...]
+    "localWorkDirectory": { "kind": "parameter", "displayName": "Local Work Directory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "When consuming, a local work directory can be used to store the remote file content directly in local files, to avoid loading the content into memory. This is beneficial, if you consume a very big re [...]
+    "onCompletionExceptionHandler": { "kind": "parameter", "displayName": "On Completion Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.ExceptionHandler to handle any thrown exceptions that happens during the file on completion process where the consumer d [...]
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "processStrategy": { "kind": "parameter", "displayName": "Process Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileProcessStrategy<org.apache.commons.net.ftp.FTPFile>", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.component.file.GenericFileProcessStrategy allowing you to implement your own readLock option or sim [...]
+    "useList": { "kind": "parameter", "displayName": "Use List", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Whether to allow using LIST command when downloading a file. Default is true. In some us [...]
+    "fileExist": { "kind": "parameter", "displayName": "File Exist", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileExist", "enum": [ "Override", "Append", "Fail", "Ignore", "Move", "TryRename" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Override", "description": "What to do if a file already exists with the same name. Override, which is the default, replaces the exis [...]
+    "flatten": { "kind": "parameter", "displayName": "Flatten", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Flatten is used to flatten the file name path to strip any leading paths, so it's just the file name. This allows you to consume recursively into sub-directories, but when you eg write the files to another directory they will be [...]
+    "jailStartingDirectory": { "kind": "parameter", "displayName": "Jail Starting Directory", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for jailing (restricting) writing files to the starting directory (and sub) only. This is enabled by default to not allow Camel to write files to outside directories (to be more secured out of t [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "moveExisting": { "kind": "parameter", "displayName": "Move Existing", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Expression (such as File Language) used to compute file name to use when fileExist=Move is configured. To move files into a backup subdirectory just enter backup. This option only supports the following File Language tokens: file:na [...]
+    "tempFileName": { "kind": "parameter", "displayName": "Temp File Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The same as tempPrefix option but offering a more fine grained control on the naming of the temporary filename as it uses the File Language. The location for tempFilename is relative to the final file location in the option 'fileNa [...]
+    "tempPrefix": { "kind": "parameter", "displayName": "Temp Prefix", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "This option is used to write the file using a temporary name and then, after the write is complete, rename it to the real name. Can be used to identify files being written and also avoid consumers (not using exclusive read locks) readin [...]
+    "allowNullBody": { "kind": "parameter", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Used to specify if a null body is allowed during file writing. If set to true then an empty file will be created, when set to false, and attempting to send a null body to the file component, a G [...]
+    "chmod": { "kind": "parameter", "displayName": "Chmod", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Allows you to set chmod on the stored file. For example chmod=640." },
+    "disconnectOnBatchComplete": { "kind": "parameter", "displayName": "Disconnect On Batch Complete", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not to disconnect from remote FTP server right after a Batch upload is complete. disconnectOnBatchComplete will only disconnect the current connection to the  [...]
+    "eagerDeleteTargetFile": { "kind": "parameter", "displayName": "Eager Delete Target File", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not to eagerly delete any existing target file. This option only applies when you use fileExists=Override and the tempFileName option as well. You can use this to disa [...]
+    "keepLastModified": { "kind": "parameter", "displayName": "Keep Last Modified", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Will keep the last modified timestamp from the source file (if any). Will use the Exchange.FILE_LAST_MODIFIED header to located the timestamp. This header can contain either a java.util.Da [...]
+    "moveExistingFileStrategy": { "kind": "parameter", "displayName": "Move Existing File Strategy", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.strategy.FileMoveExistingStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Strategy (Custom Strategy) used to move file with special naming token to use when fileExist=Move is configured. By default, there is an  [...]
+    "sendNoop": { "kind": "parameter", "displayName": "Send Noop", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Whether to send a noop command as a pre-write check before uploading files to the FTP  [...]
+    "activePortRange": { "kind": "parameter", "displayName": "Active Port Range", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Set the client side port range in active mode. The syntax is: minPort-maxPort Both port numbers are inclu [...]
+    "autoCreate": { "kind": "parameter", "displayName": "Auto Create", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Automatically create missing directories in the file's pathname. For the file consumer, that means creating the starting directory. For the file producer, it means the directory the files should be written to." },
+    "bufferSize": { "kind": "parameter", "displayName": "Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 131072, "description": "Buffer size in bytes used for writing files (or in case of FTP for downloading and uploading files)." },
+    "connectTimeout": { "kind": "parameter", "displayName": "Connect Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets the connect timeout for waiting for a connection to be established Used by both FTPClient [...]
+    "ftpClient": { "kind": "parameter", "displayName": "Ftp Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.commons.net.ftp.FTPClient", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom instance of FTPClient" },
+    "ftpClientConfig": { "kind": "parameter", "displayName": "Ftp Client Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.commons.net.ftp.FTPClientConfig", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom instance of FTPClientConfig to configure the FTP client the endpoint should use." },
+    "ftpClientConfigParameters": { "kind": "parameter", "displayName": "Ftp Client Config Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "ftpClientConfig.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Used by FtpComponent to provide additional parameters for the FTPClientConfig" },
+    "ftpClientParameters": { "kind": "parameter", "displayName": "Ftp Client Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "ftpClient.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Used by FtpComponent to provide additional parameters for the FTPClient" },
+    "maximumReconnectAttempts": { "kind": "parameter", "displayName": "Maximum Reconnect Attempts", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Specifies the maximum reconnect attempts Camel performs when it tries to connect to the remote FTP server. Use 0 to disable this behavior." },
+    "reconnectDelay": { "kind": "parameter", "displayName": "Reconnect Delay", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "Delay in millis Camel will wait before performing a reconnect attempt." },
+    "siteCommand": { "kind": "parameter", "displayName": "Site Command", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets optional site command(s) to be executed after successful login. Multiple site commands can be separated using [...]
+    "soTimeout": { "kind": "parameter", "displayName": "So Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "300000", "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets the so timeout FTP and FTPS Is the SocketOptions.SO_TIMEOUT value in millis. Recommended option is [...]
+    "stepwise": { "kind": "parameter", "displayName": "Stepwise", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets whether we should stepwise change directories while traversing file structures when downloading files, [...]
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used" },
+    "throwExceptionOnConnectFailed": { "kind": "parameter", "displayName": "Throw Exception On Connect Failed", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Should an exception be thrown if connection failed (exhauste [...]
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Sets the data timeout for waiting for reply Used only by FTPClient" },
+    "antExclude": { "kind": "parameter", "displayName": "Ant Exclude", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Ant style filter exclusion. If both antInclude and antExclude are used, antExclude takes precedence over antInclude. Multiple exclusions may be specified in comma-delimited format." },
+    "antFilterCaseSensitive": { "kind": "parameter", "displayName": "Ant Filter Case Sensitive", "group": "filter", "label": "consumer,filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets case sensitive flag on ant filter." },
+    "antInclude": { "kind": "parameter", "displayName": "Ant Include", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Ant style filter inclusion. Multiple inclusions may be specified in comma-delimited format." },
+    "eagerMaxMessagesPerPoll": { "kind": "parameter", "displayName": "Eager Max Messages Per Poll", "group": "filter", "label": "consumer,filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Allows for controlling whether the limit from maxMessagesPerPoll is eager or not. If eager then the limit is during the scanning of files. Where as false would scan all files, and then per [...]
+    "exclude": { "kind": "parameter", "displayName": "Exclude", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to exclude files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endp [...]
+    "excludeExt": { "kind": "parameter", "displayName": "Exclude Ext", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to exclude files matching file extension name (case insensitive). For example to exclude bak files, then use excludeExt=bak. Multiple extensions can be separated by comma, for example to exclude bak and dat files, use exclu [...]
+    "filter": { "kind": "parameter", "displayName": "Filter", "group": "filter", "label": "consumer,filter", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileFilter<org.apache.commons.net.ftp.FTPFile>", "deprecated": false, "autowired": false, "secret": false, "description": "Pluggable filter as a org.apache.camel.component.file.GenericFileFilter class. Will skip files if filter returns false in its accept() method." },
+    "filterDirectory": { "kind": "parameter", "displayName": "Filter Directory", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Filters the directory based on Simple language. For example to filter on current date, you can use a simple date pattern such as ${date:now:yyyMMdd}" },
+    "filterFile": { "kind": "parameter", "displayName": "Filter File", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Filters the file based on Simple language. For example to filter on file size, you can use ${file:size} 5000" },
+    "idempotent": { "kind": "parameter", "displayName": "Idempotent", "group": "filter", "label": "consumer,filter", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "description": "Option to use the Idempotent Consumer EIP pattern to let Camel skip already processed files. Will by default use a memory based LRUCache that holds 1000 entries. If noop=true then idempotent will be enable [...]
+    "idempotentKey": { "kind": "parameter", "displayName": "Idempotent Key", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom idempotent key. By default the absolute path of the file is used. You can use the File Language, for example to use the file name and file size, you can do: idempotentKey=${file:name}-${file:size}" },
+    "idempotentRepository": { "kind": "parameter", "displayName": "Idempotent Repository", "group": "filter", "label": "consumer,filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.IdempotentRepository", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable repository org.apache.camel.spi.IdempotentRepository which by default use MemoryIdempotentRepository if none is specified and idempotent is true." },
+    "include": { "kind": "parameter", "displayName": "Include", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to include files, if filename matches the regex pattern (matching is case in-sensitive). Notice if you use symbols such as plus sign and others you would need to configure this using the RAW() syntax if configuring this as an endp [...]
+    "includeExt": { "kind": "parameter", "displayName": "Include Ext", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Is used to include files matching file extension name (case insensitive). For example to include txt files, then use includeExt=txt. Multiple extensions can be separated by comma, for example to include txt and xml files, use inclu [...]
+    "maxDepth": { "kind": "parameter", "displayName": "Max Depth", "group": "filter", "label": "consumer,filter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 2147483647, "description": "The maximum depth to traverse when recursively processing a directory." },
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "filter", "label": "consumer,filter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To define a maximum messages to gather per poll. By default no maximum is set. Can be used to set a limit of e.g. 1000 to avoid when starting up the server that there are thousands of files. Set a value of 0 or negative to di [...]
+    "minDepth": { "kind": "parameter", "displayName": "Min Depth", "group": "filter", "label": "consumer,filter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The minimum depth to start processing when recursively processing a directory. Using minDepth=1 means the base directory. Using minDepth=2 means the first sub directory." },
+    "move": { "kind": "parameter", "displayName": "Move", "group": "filter", "label": "consumer,filter", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Expression (such as Simple Language) used to dynamically set the filename when moving it after processing. To move files into a .done subdirectory just enter .done." },
+    "exclusiveReadLockStrategy": { "kind": "parameter", "displayName": "Exclusive Read Lock Strategy", "group": "lock", "label": "consumer,lock", "required": false, "type": "object", "javaType": "org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy<org.apache.commons.net.ftp.FTPFile>", "deprecated": false, "autowired": false, "secret": false, "description": "Pluggable read-lock as a org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy implementation." },
+    "readLock": { "kind": "parameter", "displayName": "Read Lock", "group": "lock", "label": "consumer,lock", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "none", "markerFile", "fileLock", "rename", "changed", "idempotent", "idempotent-changed", "idempotent-rename" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "Used by consumer, to only poll the files if it has exclusive read-lock on the file (i.e. th [...]
+    "readLockCheckInterval": { "kind": "parameter", "displayName": "Read Lock Check Interval", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Interval in millis for the read-lock, if supported by the read lock. This interval is used for sleeping between attempts to acquire the read lock. For example when using the changed read lock, you can [...]
+    "readLockDeleteOrphanLockFiles": { "kind": "parameter", "displayName": "Read Lock Delete Orphan Lock Files", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not read lock with marker files should upon startup delete any orphan read lock files, which may have been left on the file system, if Camel was not properly shutdown ( [...]
+    "readLockLoggingLevel": { "kind": "parameter", "displayName": "Read Lock Logging Level", "group": "lock", "label": "consumer,lock", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "description": "Logging level used when a read lock could not be acquired. By default a DEBUG is logged. You can change this leve [...]
+    "readLockMarkerFile": { "kind": "parameter", "displayName": "Read Lock Marker File", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to use marker file with the changed, rename, or exclusive read lock types. By default a marker file is used as well to guard against other processes picking up the same files. This behavior can b [...]
+    "readLockMinAge": { "kind": "parameter", "displayName": "Read Lock Min Age", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "This option is applied only for readLock=changed. It allows to specify a minimum age the file must be before attempting to acquire the read lock. For example use readLockMinAge=300s to require the file is at last 5 mi [...]
+    "readLockMinLength": { "kind": "parameter", "displayName": "Read Lock Min Length", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "description": "This option is applied only for readLock=changed. It allows you to configure a minimum file length. By default Camel expects the file to contain data, and thus the default value is 1. You can set this option to  [...]
+    "readLockRemoveOnCommit": { "kind": "parameter", "displayName": "Read Lock Remove On Commit", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "This option is applied only for readLock=idempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file is succeeded and a commit [...]
+    "readLockRemoveOnRollback": { "kind": "parameter", "displayName": "Read Lock Remove On Rollback", "group": "lock", "label": "consumer,lock", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "This option is applied only for readLock=idempotent. It allows to specify whether to remove the file name entry from the idempotent repository when processing the file failed and a rollback  [...]
+    "readLockTimeout": { "kind": "parameter", "displayName": "Read Lock Timeout", "group": "lock", "label": "consumer,lock", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "description": "Optional timeout in millis for the read-lock, if supported by the read-lock. If the read-lock could not be granted and the timeout triggered, then Camel will skip the file. At next poll Camel, will try the file a [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "account": { "kind": "parameter", "displayName": "Account", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Account to use for login" },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Password to use for login" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.file.remote.FtpConfiguration", "configurationField": "configuration", "description": "Username to use for login" },
+    "shuffle": { "kind": "parameter", "displayName": "Shuffle", "group": "sort", "label": "consumer,sort", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To shuffle the list of files (sort in random order)" },
+    "sortBy": { "kind": "parameter", "displayName": "Sort By", "group": "sort", "label": "consumer,sort", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Built-in sort by using the File Language. Supports nested sorts, so you can have a sort by file name and as a 2nd group sort by modified date." },
+    "sorter": { "kind": "parameter", "displayName": "Sorter", "group": "sort", "label": "consumer,sort", "required": false, "type": "object", "javaType": "java.util.Comparator<org.apache.camel.component.file.GenericFile<org.apache.commons.net.ftp.FTPFile>>", "deprecated": false, "autowired": false, "secret": false, "description": "Pluggable sorter as a java.util.Comparator class." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ganglia.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ganglia.json
new file mode 100644
index 0000000..3cd6ea1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ganglia.json
@@ -0,0 +1,58 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ganglia",
+    "title": "Ganglia",
+    "description": "Send metrics to Ganglia monitoring system.",
+    "deprecated": true,
+    "firstVersion": "2.15.0",
+    "label": "monitoring",
+    "javaType": "org.apache.camel.component.ganglia.GangliaComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ganglia",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ganglia",
+    "extendsScheme": "",
+    "syntax": "ganglia:host:port",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "dmax": { "kind": "property", "displayName": "Dmax", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 ind [...]
+    "groupName": { "kind": "property", "displayName": "Group Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "metricName": { "kind": "property", "displayName": "Metric Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "MULTICAST", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Send the UDP metric packets using [...]
+    "prefix": { "kind": "property", "displayName": "Prefix", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "STRING", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "descr [...]
+    "units": { "kind": "property", "displayName": "Units", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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), o [...]
+    "wireFormat31x": { "kind": "property", "displayName": "Wire Format31x", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.ganglia.GangliaConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared configuration" }
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "239.2.11.71", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Host name for Ganglia server" },
+    "port": { "kind": "path", "displayName": "Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8649, "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Port for Ganglia server" },
+    "dmax": { "kind": "parameter", "displayName": "Dmax", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 in [...]
+    "groupName": { "kind": "parameter", "displayName": "Group Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "java", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "The group that the metric belongs to." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "metricName": { "kind": "parameter", "displayName": "Metric Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "metric", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "The name to use for the metric." },
+    "mode": { "kind": "parameter", "displayName": "Mode", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "info.ganglia.gmetric4j.gmetric.GMetric.UDPAddressingMode", "enum": [ "MULTICAST", "UNICAST" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MULTICAST", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Send the UDP metric packets usin [...]
+    "prefix": { "kind": "parameter", "displayName": "Prefix", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Slope", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "info.ganglia.gmetric4j.gmetric.GMetricSlope", "enum": [ "ZERO", "POSITIVE", "NEGATIVE", "BOTH" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "BOTH", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "The slope" },
+    "spoofHostname": { "kind": "parameter", "displayName": "Spoof Hostname", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "description": "Spoofing information IP:hostname" },
+    "tmax": { "kind": "parameter", "displayName": "Tmax", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "displayName": "Ttl", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "STRING", "configurationClass": "org.apache.camel.component.ganglia.GangliaConfiguration", "configurationField": "configuration", "desc [...]
+    "units": { "kind": "parameter", "displayName": "Units", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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),  [...]
+    "wireFormat31x": { "kind": "parameter", "displayName": "Wire Format31x", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/git.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/git.json
new file mode 100644
index 0000000..6c9639b
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/git.json
@@ -0,0 +1,45 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "git",
+    "title": "Git",
+    "description": "Perform operations on git repositories.",
+    "deprecated": false,
+    "firstVersion": "2.16.0",
+    "label": "file",
+    "javaType": "org.apache.camel.component.git.GitComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-git",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "git",
+    "extendsScheme": "",
+    "syntax": "git:localPath",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "localPath": { "kind": "path", "displayName": "Local Path", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Local repository path" },
+    "branchName": { "kind": "parameter", "displayName": "Branch Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The branch name to work on" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "type": { "kind": "parameter", "displayName": "Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.git.consumer.GitType", "enum": [ "commit", "tag", "branch" ], "deprecated": false, "autowired": false, "secret": false, "description": "The consumer type" },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "allowEmpty": { "kind": "parameter", "displayName": "Allow Empty", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "The flag to manage empty git commits" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "clone", "init", "add", "remove", "commit", "commitAll", "createBranch", "deleteBranch", "createTag", "deleteTag", "status", "log", "push", "pull", "showBranches", "cherryPick", "remoteAdd", "remoteList" ], "deprecated": false, "autowired": false, "secret": false, "description": "The operation to do on [...]
+    "password": { "kind": "parameter", "displayName": "Password", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Remote repository password" },
+    "remoteName": { "kind": "parameter", "displayName": "Remote Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The remote repository name to use in particular operation like pull" },
+    "remotePath": { "kind": "parameter", "displayName": "Remote Path", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The remote repository path" },
+    "tagName": { "kind": "parameter", "displayName": "Tag Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The tag name to work on" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Remote repository username" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/github.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/github.json
new file mode 100644
index 0000000..02551e6
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/github.json
@@ -0,0 +1,62 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "github",
+    "title": "GitHub",
+    "description": "Interact with the GitHub API.",
+    "deprecated": false,
+    "firstVersion": "2.15.0",
+    "label": "file,cloud,api",
+    "javaType": "org.apache.camel.component.github.GitHubComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-github",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "github",
+    "extendsScheme": "",
+    "syntax": "github:type\/branchName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "oauthToken": { "kind": "property", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "GitHub OAuth token. Must be configured on either component or endpoint." }
+  },
+  "properties": {
+    "type": { "kind": "path", "displayName": "Type", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.github.GitHubType", "enum": [ "CLOSEPULLREQUEST", "PULLREQUESTCOMMENT", "COMMIT", "PULLREQUEST", "TAG", "PULLREQUESTSTATE", "PULLREQUESTFILES", "GETCOMMITFILE", "CREATEISSUE", "EVENT" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "What git operation to execute" },
+    "branchName": { "kind": "path", "displayName": "Branch Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Name of branch" },
+    "repoName": { "kind": "parameter", "displayName": "Repo Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "GitHub repository name" },
+    "repoOwner": { "kind": "parameter", "displayName": "Repo Owner", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "GitHub repository owner (organization)" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "startingSha": { "kind": "parameter", "displayName": "Starting Sha", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "last", "description": "The starting sha to use for polling commits with the commit consumer. The value can either be a sha for the sha to start from, or use beginning to start from the beginning, or last to start from the last commit." },
+    "eventFetchStrategy": { "kind": "parameter", "displayName": "Event Fetch Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.github.event.GitHubEventFetchStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To specify a custom strategy that configures how the EventsConsumer fetches events." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "encoding": { "kind": "parameter", "displayName": "Encoding", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use the given encoding when getting a git commit file" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "state": { "kind": "parameter", "displayName": "State", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "error", "failure", "pending", "success" ], "deprecated": false, "autowired": false, "secret": false, "description": "To set git commit status state" },
+    "targetUrl": { "kind": "parameter", "displayName": "Target Url", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To set git commit status target url" },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "oauthToken": { "kind": "parameter", "displayName": "Oauth Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "GitHub OAuth token. Must be configured on either component or endpoint." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-bigquery.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-bigquery.json
new file mode 100644
index 0000000..1621aa4
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-bigquery.json
@@ -0,0 +1,39 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "google-bigquery",
+    "title": "Google BigQuery",
+    "description": "Google BigQuery data warehouse for analytics.",
+    "deprecated": false,
+    "firstVersion": "2.20.0",
+    "label": "cloud,bigdata",
+    "javaType": "org.apache.camel.component.google.bigquery.GoogleBigQueryComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-google-bigquery",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "google-bigquery",
+    "extendsScheme": "",
+    "syntax": "google-bigquery:projectId:datasetId:tableId",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory", "deprecated": false, "autowired": true, "secret": false, "description": "ConnectionFactory to obtain connection to Bigquery Service. If not provided the default one will be used" },
+    "datasetId": { "kind": "property", "displayName": "Dataset Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "BigQuery Dataset Id" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "projectId": { "kind": "property", "displayName": "Project Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Google Cloud Project Id" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "projectId": { "kind": "path", "displayName": "Project Id", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.bigquery.GoogleBigQueryConfiguration", "configurationField": "configuration", "description": "Google Cloud Project Id" },
+    "datasetId": { "kind": "path", "displayName": "Dataset Id", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.bigquery.GoogleBigQueryConfiguration", "configurationField": "configuration", "description": "BigQuery Dataset Id" },
+    "tableId": { "kind": "path", "displayName": "Table Id", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.bigquery.GoogleBigQueryConfiguration", "configurationField": "configuration", "description": "BigQuery table id" },
+    "connectionFactory": { "kind": "parameter", "displayName": "Connection Factory", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.google.bigquery.GoogleBigQueryConfiguration", "configurationField": "configuration", "description": "ConnectionFacto [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "useAsInsertId": { "kind": "parameter", "displayName": "Use As Insert Id", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.bigquery.GoogleBigQueryConfiguration", "configurationField": "configuration", "description": "Field name to use as insert id" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-calendar.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-calendar.json
new file mode 100644
index 0000000..774e4e0
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-calendar.json
@@ -0,0 +1,93 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "google-calendar",
+    "title": "Google Calendar",
+    "description": "Perform various operations on a Google Calendar.",
+    "deprecated": false,
+    "firstVersion": "2.15.0",
+    "label": "api,cloud",
+    "javaType": "org.apache.camel.component.google.calendar.GoogleCalendarComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-google-calendar",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "google-calendar",
+    "extendsScheme": "",
+    "syntax": "google-calendar:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "description": "To use the shared configuration" },
+    "scopes": { "kind": "property", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 ap [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory", "deprecated": false, "autowired": 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, "autowired": 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 te [...]
+    "clientSecret": { "kind": "property", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client secret of the calendar application" },
+    "emailAddress": { "kind": "property", "displayName": "Email Address", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "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": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "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": "property", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 whene [...]
+    "user": { "kind": "property", "displayName": "User", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "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" }
+  },
+  "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": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "c [...]
+    "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": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration [...]
+    "applicationName": { "kind": "parameter", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client ID of the calendar application" },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "scopes": { "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 a [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 t [...]
+    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "Client secret of the calendar application" },
+    "emailAddress": { "kind": "parameter", "displayName": "Email Address", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration", "configurationField": "configuration", "description": "The emailAddress of the Google Service Account." },
+    "p12FileName": { "kind": "parameter", "displayName": "P12 File Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "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": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 when [...]
+    "user": { "kind": "parameter", "displayName": "User", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "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" }
+  },
+  "apis": {
+    "acl": { "consumerOnly": false, "producerOnly": false, "description": "The acl collection of methods", "methods": { "delete": { "description": "Deletes an access control rule", "signatures": [ "com.google.api.services.calendar.Calendar$Acl$Delete delete(String calendarId, String ruleId)" ] }, "get": { "description": "Returns an access control rule", "signatures": [ "com.google.api.services.calendar.Calendar$Acl$Get get(String calendarId, String ruleId)" ] }, "insert": { "description" [...]
+    "calendars": { "consumerOnly": false, "producerOnly": false, "description": "The calendars collection of methods", "methods": { "clear": { "description": "Clears a primary calendar", "signatures": [ "com.google.api.services.calendar.Calendar$Calendars$Clear clear(String calendarId)" ] }, "delete": { "description": "Deletes a secondary calendar", "signatures": [ "com.google.api.services.calendar.Calendar$Calendars$Delete delete(String calendarId)" ] }, "get": { "description": "Returns [...]
+    "channels": { "consumerOnly": false, "producerOnly": false, "description": "The channels collection of methods", "methods": { "stop": { "description": "Stop watching resources through this channel", "signatures": [ "com.google.api.services.calendar.Calendar$Channels$Stop stop(com.google.api.services.calendar.model.Channel content)" ] } } },
+    "events": { "consumerOnly": false, "producerOnly": false, "description": "The events collection of methods", "methods": { "calendarImport": { "description": "Imports an event", "signatures": [ "com.google.api.services.calendar.Calendar$Events$CalendarImport calendarImport(String calendarId, com.google.api.services.calendar.model.Event content)" ] }, "delete": { "description": "Deletes an event", "signatures": [ "com.google.api.services.calendar.Calendar$Events$Delete delete(String ca [...]
+    "freebusy": { "consumerOnly": false, "producerOnly": false, "description": "The freebusy collection of methods", "methods": { "query": { "description": "Returns free\/busy information for a set of calendars", "signatures": [ "com.google.api.services.calendar.Calendar$Freebusy$Query query(com.google.api.services.calendar.model.FreeBusyRequest content)" ] } } },
+    "list": { "consumerOnly": false, "producerOnly": false, "description": "The calendarList collection of methods", "methods": { "delete": { "description": "Deletes an entry on the user's calendar list", "signatures": [ "com.google.api.services.calendar.Calendar$CalendarList$Delete delete(String calendarId)" ] }, "get": { "description": "Returns an entry on the user's calendar list", "signatures": [ "com.google.api.services.calendar.Calendar$CalendarList$Get get(String calendarId)" ] }, [...]
+    "settings": { "consumerOnly": false, "producerOnly": false, "description": "The settings collection of methods", "methods": { "get": { "description": "Returns a single user setting", "signatures": [ "com.google.api.services.calendar.Calendar$Settings$Get get(String setting)" ] }, "watch": { "description": "Watch for changes to Settings resources", "signatures": [ "com.google.api.services.calendar.Calendar$Settings$Watch watch(com.google.api.services.calendar.model.Channel content)" ] } } }
+  },
+  "apiProperties": {
+    "acl": { "methods": { "delete": { "properties": { "calendarId": { "kind": "parameter", "displayName": "Calendar Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the primary keyword.", "optional":  [...]
+    "calendars": { "methods": { "clear": { "properties": { "calendarId": { "kind": "parameter", "displayName": "Calendar Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the primary keyword.", "option [...]
+    "channels": { "methods": { "stop": { "properties": { "contentChannel": { "kind": "parameter", "displayName": "Content Channel", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.calendar.model.Channel", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.calendar.model.Channel", "optional": false } } } } },
+    "events": { "methods": { "calendarImport": { "properties": { "calendarId": { "kind": "parameter", "displayName": "Calendar Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the primary keyword.", " [...]
+    "freebusy": { "methods": { "query": { "properties": { "content": { "kind": "parameter", "displayName": "Content", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.calendar.model.FreeBusyRequest", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.calendar.model.FreeBusyRequest", "optional": false } } } } },
+    "list": { "methods": { "delete": { "properties": { "calendarId": { "kind": "parameter", "displayName": "Calendar Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the primary keyword.", "optional": [...]
+    "settings": { "methods": { "get": { "properties": { "setting": { "kind": "parameter", "displayName": "Setting", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of the user setting", "optional": false } } }, "watch": { "properties": { "contentChannel": { "kind": "parameter", "displayName": "Content Channel", "group": "common", "label": "", "required": f [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-drive.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-drive.json
new file mode 100644
index 0000000..3f257e6
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-drive.json
@@ -0,0 +1,98 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "google-drive",
+    "title": "Google Drive",
+    "description": "Manage files in Google Drive.",
+    "deprecated": false,
+    "firstVersion": "2.14.0",
+    "label": "file,cloud,api",
+    "javaType": "org.apache.camel.component.google.drive.GoogleDriveComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-google-drive",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "google-drive",
+    "extendsScheme": "",
+    "syntax": "google-drive:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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:\/\/develop [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.drive.GoogleDriveClientFactory", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 th [...]
+  },
+  "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": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationFiel [...]
+    "applicationName": { "kind": "parameter", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.drive.GoogleDriveConfiguration", "configurationField": "configuration", "description": "Client ID of the drive application" },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "scopes": { "kind": "parameter", "displayName": "Scopes", "group": "common", "label": "", "required": false, "type": "array", "javaType": "java.util.List<java.lang.String>", "deprecated": false, "autowired": 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:\/\/develo [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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 us [...]
+    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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 t [...]
+  },
+  "apis": {
+    "drive-apps": { "consumerOnly": false, "producerOnly": false, "description": "The apps collection of methods", "methods": { "get": { "description": "Gets a specific app", "signatures": [ "com.google.api.services.drive.Drive$Apps$Get get(String appId)" ] } } },
+    "drive-changes": { "consumerOnly": false, "producerOnly": false, "description": "The changes collection of methods", "methods": { "get": { "description": "Deprecated - Use changes", "signatures": [ "com.google.api.services.drive.Drive$Changes$Get get(String changeId)" ] }, "watch": { "description": "Subscribe to changes for a user", "signatures": [ "com.google.api.services.drive.Drive$Changes$Watch watch(com.google.api.services.drive.model.Channel content)" ] } } },
+    "drive-channels": { "consumerOnly": false, "producerOnly": false, "description": "The channels collection of methods", "methods": { "stop": { "description": "Stop watching resources through this channel", "signatures": [ "com.google.api.services.drive.Drive$Channels$Stop stop(com.google.api.services.drive.model.Channel content)" ] } } },
+    "drive-children": { "consumerOnly": false, "producerOnly": false, "description": "The children collection of methods", "methods": { "delete": { "description": "Removes a child from a folder", "signatures": [ "com.google.api.services.drive.Drive$Children$Delete delete(String folderId, String childId)" ] }, "get": { "description": "Gets a specific child reference", "signatures": [ "com.google.api.services.drive.Drive$Children$Get get(String folderId, String childId)" ] }, "insert": { " [...]
+    "drive-comments": { "consumerOnly": false, "producerOnly": false, "description": "The comments collection of methods", "methods": { "delete": { "description": "Deletes a comment", "signatures": [ "com.google.api.services.drive.Drive$Comments$Delete delete(String fileId, String commentId)" ] }, "get": { "description": "Gets a comment by ID", "signatures": [ "com.google.api.services.drive.Drive$Comments$Get get(String fileId, String commentId)" ] }, "insert": { "description": "Creates  [...]
+    "drive-files": { "consumerOnly": false, "producerOnly": false, "description": "The files collection of methods", "methods": { "copy": { "description": "Creates a copy of the specified file", "signatures": [ "com.google.api.services.drive.Drive$Files$Copy copy(String fileId, com.google.api.services.drive.model.File content)" ] }, "delete": { "description": "Permanently deletes a file by ID", "signatures": [ "com.google.api.services.drive.Drive$Files$Delete delete(String fileId)" ] },  [...]
+    "drive-parents": { "consumerOnly": false, "producerOnly": false, "description": "The parents collection of methods", "methods": { "delete": { "description": "Removes a parent from a file", "signatures": [ "com.google.api.services.drive.Drive$Parents$Delete delete(String fileId, String parentId)" ] }, "get": { "description": "Gets a specific parent reference", "signatures": [ "com.google.api.services.drive.Drive$Parents$Get get(String fileId, String parentId)" ] }, "insert": { "descri [...]
+    "drive-permissions": { "consumerOnly": false, "producerOnly": false, "description": "The permissions collection of methods", "methods": { "delete": { "description": "Deletes a permission from a file or Team Drive", "signatures": [ "com.google.api.services.drive.Drive$Permissions$Delete delete(String fileId, String permissionId)" ] }, "get": { "description": "Gets a permission by ID", "signatures": [ "com.google.api.services.drive.Drive$Permissions$Get get(String fileId, String permis [...]
+    "drive-properties": { "consumerOnly": false, "producerOnly": false, "description": "The properties collection of methods", "methods": { "delete": { "description": "Deletes a property", "signatures": [ "com.google.api.services.drive.Drive$Properties$Delete delete(String fileId, String propertyKey)" ] }, "get": { "description": "Gets a property by its key", "signatures": [ "com.google.api.services.drive.Drive$Properties$Get get(String fileId, String propertyKey)" ] }, "insert": { "desc [...]
+    "drive-realtime": { "consumerOnly": false, "producerOnly": false, "description": "The realtime collection of methods", "methods": { "get": { "description": "Exports the contents of the Realtime API data model associated with this file as JSON", "signatures": [ "com.google.api.services.drive.Drive$Realtime$Get get(String fileId)" ] }, "update": { "description": "Overwrites the Realtime API data model associated with this file with the provided JSON data model", "signatures": [ "com.go [...]
+    "drive-replies": { "consumerOnly": false, "producerOnly": false, "description": "The replies collection of methods", "methods": { "delete": { "description": "Deletes a reply", "signatures": [ "com.google.api.services.drive.Drive$Replies$Delete delete(String fileId, String commentId, String replyId)" ] }, "get": { "description": "Gets a reply", "signatures": [ "com.google.api.services.drive.Drive$Replies$Get get(String fileId, String commentId, String replyId)" ] }, "insert": { "descr [...]
+    "drive-revisions": { "consumerOnly": false, "producerOnly": false, "description": "The revisions collection of methods", "methods": { "delete": { "description": "Removes a revision", "signatures": [ "com.google.api.services.drive.Drive$Revisions$Delete delete(String fileId, String revisionId)" ] }, "get": { "description": "Gets a specific revision", "signatures": [ "com.google.api.services.drive.Drive$Revisions$Get get(String fileId, String revisionId)" ] }, "list": { "description":  [...]
+  },
+  "apiProperties": {
+    "drive-apps": { "methods": { "get": { "properties": { "appId": { "kind": "parameter", "displayName": "App Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the app", "optional": false } } } } },
+    "drive-changes": { "methods": { "get": { "properties": { "changeId": { "kind": "parameter", "displayName": "Change Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the change", "optional": false } } }, "watch": { "properties": { "contentChannel": { "kind": "parameter", "displayName": "Content Channel", "group": "common", "label": "", "required": [...]
+    "drive-channels": { "methods": { "stop": { "properties": { "contentChannel": { "kind": "parameter", "displayName": "Content Channel", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.drive.model.Channel", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.drive.model.Channel", "optional": false } } } } },
+    "drive-children": { "methods": { "delete": { "properties": { "childId": { "kind": "parameter", "displayName": "Child Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the child", "optional": false }, "folderId": { "kind": "parameter", "displayName": "Folder Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "jav [...]
+    "drive-comments": { "methods": { "delete": { "properties": { "commentId": { "kind": "parameter", "displayName": "Comment Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the comment", "optional": false }, "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "j [...]
+    "drive-files": { "methods": { "copy": { "properties": { "content": { "kind": "parameter", "displayName": "Content", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.drive.model.File", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.drive.model.File", "optional": false }, "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": fa [...]
+    "drive-parents": { "methods": { "delete": { "properties": { "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the file", "optional": false }, "parentId": { "kind": "parameter", "displayName": "Parent Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.la [...]
+    "drive-permissions": { "methods": { "delete": { "properties": { "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID for the file or Team Drive", "optional": false }, "permissionId": { "kind": "parameter", "displayName": "Permission Id", "group": "common", "label": "", "required": false, "type": "st [...]
+    "drive-properties": { "methods": { "delete": { "properties": { "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the file", "optional": false }, "propertyKey": { "kind": "parameter", "displayName": "Property Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": [...]
+    "drive-realtime": { "methods": { "get": { "properties": { "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the file that the Realtime API data model is associated with", "optional": false } } }, "update": { "properties": { "fileId": { "kind": "parameter", "displayName": "File Id", "group": "c [...]
+    "drive-replies": { "methods": { "delete": { "properties": { "commentId": { "kind": "parameter", "displayName": "Comment Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the comment", "optional": false }, "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "ja [...]
+    "drive-revisions": { "methods": { "delete": { "properties": { "fileId": { "kind": "parameter", "displayName": "File Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the file", "optional": false }, "revisionId": { "kind": "parameter", "displayName": "Revision Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "j [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-mail.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-mail.json
new file mode 100644
index 0000000..16da11a
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-mail.json
@@ -0,0 +1,85 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "google-mail",
+    "title": "Google Mail",
+    "description": "Manage messages in Google Mail.",
+    "deprecated": false,
+    "firstVersion": "2.15.0",
+    "label": "cloud,api,mail",
+    "javaType": "org.apache.camel.component.google.mail.GoogleMailComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-google-mail",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "google-mail",
+    "extendsScheme": "",
+    "syntax": "google-mail:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Google mail application name. Example would be camel-google-mail\/1.0" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client ID of the mail application" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared configuration" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.mail.GoogleMailClientFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleMailClientFactory" },
+    "accessToken": { "kind": "property", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client secret of the mail application" },
+    "refreshToken": { "kind": "property", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the  [...]
+  },
+  "properties": {
+    "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.google.mail.internal.GoogleMailApiName", "enum": [ "THREADS", "MESSAGES", "ATTACHMENTS", "LABELS", "HISTORY", "DRAFTS", "USERS" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "c [...]
+    "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "attachments", "create", "delete", "get", "getProfile", "gmailImport", "insert", "list", "modify", "patch", "send", "stop", "trash", "untrash", "update", "watch" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMa [...]
+    "applicationName": { "kind": "parameter", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Google mail application name. Example would be camel-google-mail\/1.0" },
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client ID of the mail application" },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "Client secret of the mail application" },
+    "refreshToken": { "kind": "parameter", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.mail.GoogleMailConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the [...]
+  },
+  "apis": {
+    "attachments": { "consumerOnly": false, "producerOnly": false, "description": "The attachments collection of methods", "methods": { "get": { "description": "Gets the specified message attachment", "signatures": [ "com.google.api.services.gmail.Gmail$Users$Messages$Attachments$Get get(String userId, String messageId, String id)" ] } } },
+    "drafts": { "consumerOnly": false, "producerOnly": false, "description": "The drafts collection of methods", "methods": { "create": { "description": "Creates a new draft with the DRAFT label", "signatures": [ "com.google.api.services.gmail.Gmail$Users$Drafts$Create create(String userId, com.google.api.services.gmail.model.Draft content)", "com.google.api.services.gmail.Gmail$Users$Drafts$Create create(String userId, com.google.api.services.gmail.model.Draft content, com.google.api.cl [...]
+    "history": { "consumerOnly": false, "producerOnly": false, "description": "The history collection of methods", "methods": { "list": { "description": "Lists the history of all changes to the given mailbox", "signatures": [ "com.google.api.services.gmail.Gmail$Users$History$List list(String userId)" ] } } },
+    "labels": { "consumerOnly": false, "producerOnly": false, "description": "The labels collection of methods", "methods": { "create": { "description": "Creates a new label", "signatures": [ "com.google.api.services.gmail.Gmail$Users$Labels$Create create(String userId, com.google.api.services.gmail.model.Label content)" ] }, "delete": { "description": "Immediately and permanently deletes the specified label and removes it from any messages and threads that it is applied to", "signatures [...]
+    "messages": { "consumerOnly": false, "producerOnly": false, "description": "The messages collection of methods", "methods": { "batchDelete": { "description": "Deletes many messages by message ID", "signatures": [ "com.google.api.services.gmail.Gmail$Users$Messages$BatchDelete batchDelete(String userId, com.google.api.services.gmail.model.BatchDeleteMessagesRequest content)" ] }, "batchModify": { "description": "Modifies the labels on the specified messages", "signatures": [ "com.goog [...]
+    "threads": { "consumerOnly": false, "producerOnly": false, "description": "The threads collection of methods", "methods": { "delete": { "description": "Immediately and permanently deletes the specified thread", "signatures": [ "com.google.api.services.gmail.Gmail$Users$Threads$Delete delete(String userId, String id)" ] }, "get": { "description": "Gets the specified thread", "signatures": [ "com.google.api.services.gmail.Gmail$Users$Threads$Get get(String userId, String id)" ] }, "lis [...]
+    "users": { "consumerOnly": false, "producerOnly": false, "description": "The users collection of methods", "methods": { "getProfile": { "description": "Gets the current user's Gmail profile", "signatures": [ "com.google.api.services.gmail.Gmail$Users$GetProfile getProfile(String userId)" ] }, "stop": { "description": "Stop receiving push notifications for the given user mailbox", "signatures": [ "com.google.api.services.gmail.Gmail$Users$Stop stop(String userId)" ] }, "watch": { "des [...]
+  },
+  "apiProperties": {
+    "attachments": { "methods": { "get": { "properties": { "id": { "kind": "parameter", "displayName": "Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The ID of the attachment", "optional": false }, "messageId": { "kind": "parameter", "displayName": "Message Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.Str [...]
+    "drafts": { "methods": { "create": { "properties": { "content": { "kind": "parameter", "displayName": "Content", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.gmail.model.Draft", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.gmail.model.Draft media metadata or null if none", "optional": false }, "mediaContent": { "kind": "parameter", "displayName": "Media Content", "gro [...]
+    "history": { "methods": { "list": { "properties": { "userId": { "kind": "parameter", "displayName": "User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The user's email address. The special value me can be used to indicate the authenticated user. default: me", "optional": false } } } } },
+    "labels": { "methods": { "create": { "properties": { "content": { "kind": "parameter", "displayName": "Content", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.gmail.model.Label", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.gmail.model.Label", "optional": false }, "userId": { "kind": "parameter", "displayName": "User Id", "group": "common", "label": "", "required": fal [...]
+    "messages": { "methods": { "batchDelete": { "properties": { "batchDeleteMessagesRequest": { "kind": "parameter", "displayName": "Batch Delete Messages Request", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.gmail.model.BatchDeleteMessagesRequest", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.gmail.model.BatchDeleteMessagesRequest", "optional": false }, "userId": { "kin [...]
+    "threads": { "methods": { "delete": { "properties": { "id": { "kind": "parameter", "displayName": "Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "ID of the Thread to delete", "optional": false }, "userId": { "kind": "parameter", "displayName": "User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", [...]
+    "users": { "methods": { "getProfile": { "properties": { "userId": { "kind": "parameter", "displayName": "User Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The user's email address. The special value me can be used to indicate the authenticated user. default: me", "optional": false } } }, "stop": { "properties": { "userId": { "kind": "parameter", "disp [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-sheets.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-sheets.json
new file mode 100644
index 0000000..9f00d7e
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/google-sheets.json
@@ -0,0 +1,78 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "google-sheets",
+    "title": "Google Sheets",
+    "description": "Manage spreadsheets in Google Sheets.",
+    "deprecated": false,
+    "firstVersion": "2.23.0",
+    "label": "api,cloud,sheets",
+    "javaType": "org.apache.camel.component.google.sheets.GoogleSheetsComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-google-sheets",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "google-sheets",
+    "extendsScheme": "",
+    "syntax": "google-sheets:apiName\/methodName",
+    "async": false,
+    "api": true,
+    "apiSyntax": "apiName\/methodName",
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false,
+    "verifiers": "parameters,connectivity"
+  },
+  "componentProperties": {
+    "applicationName": { "kind": "property", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "Google Sheets application name. Example would be camel-google-sheets\/1.0" },
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "Client ID of the sheets application" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared configuration" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "splitResult": { "kind": "property", "displayName": "Split Result", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "When consumer return an array or collection this will generate one exchange per element, a [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "clientFactory": { "kind": "property", "displayName": "Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.google.sheets.GoogleSheetsClientFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the GoogleSheetsClientFactory as factory for creating the client. Will by default use BatchGoogleSheetsClientFactory" },
+    "accessToken": { "kind": "property", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term u [...]
+    "clientSecret": { "kind": "property", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "Client secret of the sheets application" },
+    "refreshToken": { "kind": "property", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Sheets component can obtain a new accessToken whenever th [...]
+  },
+  "properties": {
+    "apiName": { "kind": "path", "displayName": "Api Name", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.google.sheets.internal.GoogleSheetsApiName", "enum": [ "SPREADSHEETS", "DATA" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "What kind of op [...]
+    "methodName": { "kind": "path", "displayName": "Method Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "create", "get", "update", "append", "batchUpdate", "clear" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "What sub operation to use [...]
+    "applicationName": { "kind": "parameter", "displayName": "Application Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "Google Sheets application name. Example would be camel-google-sheets\/1.0" },
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "Client ID of the sheets application" },
+    "inBody": { "kind": "parameter", "displayName": "In Body", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of a parameter to be passed in the exchange In Body" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "splitResult": { "kind": "parameter", "displayName": "Split Result", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "When consumer return an array or collection this will generate one exchange per element,  [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term  [...]
+    "clientSecret": { "kind": "parameter", "displayName": "Client Secret", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "Client secret of the sheets application" },
+    "refreshToken": { "kind": "parameter", "displayName": "Refresh Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration", "configurationField": "configuration", "description": "OAuth 2 refresh token. Using this, the Google Sheets component can obtain a new accessToken whenever t [...]
+  },
+  "apis": {
+    "data": { "consumerOnly": false, "producerOnly": false, "description": "The values collection of methods", "methods": { "append": { "description": "Appends values to a spreadsheet", "signatures": [ "com.google.api.services.sheets.v4.Sheets$Spreadsheets$Values$Append append(String spreadsheetId, String range, com.google.api.services.sheets.v4.model.ValueRange content)" ] }, "batchClear": { "description": "Clears one or more ranges of values from a spreadsheet", "signatures": [ "com.go [...]
+    "spreadsheets": { "consumerOnly": false, "producerOnly": false, "description": "The spreadsheets collection of methods", "methods": { "batchUpdate": { "description": "Applies one or more updates to the spreadsheet", "signatures": [ "com.google.api.services.sheets.v4.Sheets$Spreadsheets$BatchUpdate batchUpdate(String spreadsheetId, com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest content)" ] }, "create": { "description": "Creates a spreadsheet, returning the newly [...]
+  },
+  "apiProperties": {
+    "data": { "methods": { "append": { "properties": { "range": { "kind": "parameter", "displayName": "Range", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The A1 notation of a range to search for a logical table of data. Values will be appended after the last row of the table.", "optional": false }, "spreadsheetId": { "kind": "parameter", "displayName": "Spre [...]
+    "spreadsheets": { "methods": { "batchUpdate": { "properties": { "batchUpdateSpreadsheetRequest": { "kind": "parameter", "displayName": "Batch Update Spreadsheet Request", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest", "deprecated": false, "autowired": false, "secret": false, "description": "The com.google.api.services.sheets.v4.model.BatchUpdateSpreadsheetRequest", "optional": f [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/grape.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/grape.json
new file mode 100644
index 0000000..3fb942e
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/grape.json
@@ -0,0 +1,33 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "grape",
+    "title": "Grape",
+    "description": "Fetch, load and manage additional jars dynamically after Camel Context was started.",
+    "deprecated": false,
+    "firstVersion": "2.16.0",
+    "label": "management,deployment",
+    "javaType": "org.apache.camel.component.grape.GrapeComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-grape",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "grape",
+    "extendsScheme": "",
+    "syntax": "grape:defaultCoordinates",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "patchesRepository": { "kind": "property", "displayName": "Patches Repository", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.grape.PatchesRepository", "deprecated": false, "autowired": false, "secret": false, "description": "Implementation of org.apache.camel.component.grape.PatchesRepository, by default: FilePatchesRepository" }
+  },
+  "properties": {
+    "defaultCoordinates": { "kind": "path", "displayName": "Default Coordinates", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Maven coordinates to use as default to grab if the message body is empty." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/graphql.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/graphql.json
new file mode 100644
index 0000000..69682dd
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/graphql.json
@@ -0,0 +1,43 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "graphql",
+    "title": "GraphQL",
+    "description": "Send GraphQL queries and mutations to external systems.",
+    "deprecated": false,
+    "firstVersion": "3.0.0",
+    "label": "api",
+    "javaType": "org.apache.camel.component.graphql.GraphqlComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-graphql",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "graphql",
+    "extendsScheme": "",
+    "syntax": "graphql:httpUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The GraphQL server URI." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operationName": { "kind": "parameter", "displayName": "Operation Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The query or mutation name." },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The proxy host in the format hostname:port." },
+    "query": { "kind": "parameter", "displayName": "Query", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The query text." },
+    "queryFile": { "kind": "parameter", "displayName": "Query File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The query file name located in the classpath." },
+    "queryHeader": { "kind": "parameter", "displayName": "Query Header", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The name of a header containing the GraphQL query." },
+    "variables": { "kind": "parameter", "displayName": "Variables", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.util.json.JsonObject", "deprecated": false, "autowired": false, "secret": false, "description": "The JsonObject instance containing the operation variables." },
+    "variablesHeader": { "kind": "parameter", "displayName": "Variables Header", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The name of a header containing a JsonObject instance containing the operation variables." },
+    "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "The access token sent in the Authorization header." },
+    "jwtAuthorizationType": { "kind": "parameter", "displayName": "Jwt Authorization Type", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Bearer", "description": "The JWT Authorization type. Default is Bearer." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "The password for Basic authentication." },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "The username for Basic authentication." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/guava-eventbus.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/guava-eventbus.json
new file mode 100644
index 0000000..f926518
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/guava-eventbus.json
@@ -0,0 +1,40 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "guava-eventbus",
+    "title": "Guava EventBus",
+    "description": "Send and receive messages to\/from Guava EventBus.",
+    "deprecated": false,
+    "firstVersion": "2.10.0",
+    "label": "eventbus",
+    "javaType": "org.apache.camel.component.guava.eventbus.GuavaEventBusComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-guava-eventbus",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "guava-eventbus",
+    "extendsScheme": "",
+    "syntax": "guava-eventbus:eventBusRef",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "eventBus": { "kind": "property", "displayName": "Event Bus", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.google.common.eventbus.EventBus", "deprecated": false, "autowired": false, "secret": false, "description": "To use the given Guava EventBus instance" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "listenerInterface": { "kind": "property", "displayName": "Listener Interface", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.Class<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "description": "The interface with method(s) marked with the Subscribe annotation. Dynamic proxy will be created over the interface so it could be registered as the EventBus listener. Particularly useful when creating mult [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "eventBusRef": { "kind": "path", "displayName": "Event Bus Ref", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To lookup the Guava EventBus from the registry with the given name" },
+    "eventClass": { "kind": "parameter", "displayName": "Event Class", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.Class<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "description": "If used on the consumer side of the route, will filter events received from the EventBus to the instances of the class and superclasses of eventClass. Null value of this option is equal to setting it to the java.lang.Object i.e.  [...]
+    "listenerInterface": { "kind": "parameter", "displayName": "Listener Interface", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.Class<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "description": "The interface with method(s) marked with the Subscribe annotation. Dynamic proxy will be created over the interface so it could be registered as the EventBus listener. Particularly useful when creating multi-event l [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/http.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/http.json
new file mode 100644
index 0000000..a50e7b1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/http.json
@@ -0,0 +1,119 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "http",
+    "title": "HTTP",
+    "description": "Send requests to external HTTP servers using Apache HTTP Client 4.x.",
+    "deprecated": false,
+    "firstVersion": "2.3.0",
+    "label": "http",
+    "javaType": "org.apache.camel.component.http.HttpComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-http",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "http",
+    "extendsScheme": "",
+    "alternativeSchemes": "http,https",
+    "syntax": "http:\/\/httpUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": true,
+    "verifiers": "parameters,connectivity"
+  },
+  "componentProperties": {
+    "cookieStore": { "kind": "property", "displayName": "Cookie Store", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.http.client.CookieStore", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.http.client.CookieStore. By default the org.apache.http.impl.client.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is f [...]
+    "copyHeaders": { "kind": "property", "displayName": "Copy Headers", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange headers will be copied to OUT exchange headers according to copy strategy. Setting this to false, allows to only include the headers from the HTTP response (not propagating IN heade [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "responsePayloadStreamingThreshold": { "kind": "property", "displayName": "Response Payload Streaming Threshold", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "description": "This threshold in bytes controls whether the response payload should be stored in memory as a byte array or be streaming based. Set this to -1 to always use streaming mode." },
+    "skipRequestHeaders": { "kind": "property", "displayName": "Skip Request Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip mapping all the Camel headers as HTTP request headers. If there are no data from Camel headers needed to be included in the HTTP request then this can avoid parsing over [...]
+    "skipResponseHeaders": { "kind": "property", "displayName": "Skip Response Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip mapping all the HTTP response headers to Camel headers. If there are no data needed from HTTP headers then this can avoid parsing overhead with many object allocations [...]
+    "allowJavaSerializedObject": { "kind": "property", "displayName": "Allow Java Serialized Object", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will des [...]
+    "authCachingDisabled": { "kind": "property", "displayName": "Auth Caching Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables authentication scheme caching" },
+    "automaticRetriesDisabled": { "kind": "property", "displayName": "Automatic Retries Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables automatic request recovery and re-execution" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "clientConnectionManager": { "kind": "property", "displayName": "Client Connection Manager", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.http.conn.HttpClientConnectionManager", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component." },
+    "connectionsPerRoute": { "kind": "property", "displayName": "Connections Per Route", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 20, "description": "The maximum number of connections per route." },
+    "connectionStateDisabled": { "kind": "property", "displayName": "Connection State Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables connection state tracking" },
+    "connectionTimeToLive": { "kind": "property", "displayName": "Connection Time To Live", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "The time for connection to live, the time unit is millisecond, the default value is always keep alive." },
+    "contentCompressionDisabled": { "kind": "property", "displayName": "Content Compression Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables automatic content decompression" },
+    "cookieManagementDisabled": { "kind": "property", "displayName": "Cookie Management Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables state (cookie) management" },
+    "defaultUserAgentDisabled": { "kind": "property", "displayName": "Default User Agent Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables the default user agent set by this builder if none has been provided by the user" },
+    "httpBinding": { "kind": "property", "displayName": "Http Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.http.common.HttpBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient." },
+    "httpClientConfigurer": { "kind": "property", "displayName": "Http Client Configurer", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.http.HttpClientConfigurer", "deprecated": false, "autowired": false, "secret": false, "description": "To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used." },
+    "httpConfiguration": { "kind": "property", "displayName": "Http Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.http.common.HttpConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared HttpConfiguration as base configuration." },
+    "httpContext": { "kind": "property", "displayName": "Http Context", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.http.protocol.HttpContext", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.http.protocol.HttpContext when executing requests." },
+    "maxTotalConnections": { "kind": "property", "displayName": "Max Total Connections", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 200, "description": "The maximum number of connections." },
+    "redirectHandlingDisabled": { "kind": "property", "displayName": "Redirect Handling Disabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Disables automatic redirect handling" },
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "proxyAuthDomain": { "kind": "property", "displayName": "Proxy Auth Domain", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication domain to use" },
+    "proxyAuthHost": { "kind": "property", "displayName": "Proxy Auth Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication host" },
+    "proxyAuthMethod": { "kind": "property", "displayName": "Proxy Auth Method", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "Basic", "Digest", "NTLM" ], "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication method to use" },
+    "proxyAuthNtHost": { "kind": "property", "displayName": "Proxy Auth Nt Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication domain (workstation name) to use with NTML" },
+    "proxyAuthPassword": { "kind": "property", "displayName": "Proxy Auth Password", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Proxy authentication password" },
+    "proxyAuthPort": { "kind": "property", "displayName": "Proxy Auth Port", "group": "proxy", "label": "producer,proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication port" },
+    "proxyAuthUsername": { "kind": "property", "displayName": "Proxy Auth Username", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Proxy authentication username" },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to us [...]
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." },
+    "x509HostnameVerifier": { "kind": "property", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier." },
+    "connectionRequestTimeout": { "kind": "property", "displayName": "Connection Request Timeout", "group": "timeout", "label": "timeout", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "The timeout in milliseconds used when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an inf [...]
+    "connectTimeout": { "kind": "property", "displayName": "Connect Timeout", "group": "timeout", "label": "timeout", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is int [...]
+    "socketTimeout": { "kind": "property", "displayName": "Socket Timeout", "group": "timeout", "label": "timeout", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Defines the socket timeout in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infini [...]
+  },
+  "properties": {
+    "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The url of the HTTP endpoint to call." },
+    "chunked": { "kind": "parameter", "displayName": "Chunked", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is false the Servlet will disable the HTTP streaming and set the content-length header on the response" },
+    "disableStreamCache": { "kind": "parameter", "displayName": "Disable Stream Cache", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Determines whether or not the raw input stream from Servlet is cached or not (Camel will read the stream into a in memory\/overflow to file, Stream caching) cache. By default Camel will cache the Servlet inpu [...]
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "httpBinding": { "kind": "parameter", "displayName": "Http Binding", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.http.common.HttpBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient." },
+    "bridgeEndpoint": { "kind": "parameter", "displayName": "Bridge Endpoint", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, HttpProducer will ignore the Exchange.HTTP_URI header, and use the endpoint's URI for request. You may also set the option throwExceptionOnFailure to be false to let the HttpProducer send al [...]
+    "clearExpiredCookies": { "kind": "parameter", "displayName": "Clear Expired Cookies", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to clear expired cookies before sending the HTTP request. This ensures the cookies store does not keep growing by adding new cookies which is newer removed when they are expired. If the component [...]
+    "connectionClose": { "kind": "parameter", "displayName": "Connection Close", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether a Connection Close header must be added to HTTP Request. By default connectionClose is false." },
+    "copyHeaders": { "kind": "parameter", "displayName": "Copy Headers", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange headers will be copied to OUT exchange headers according to copy strategy. Setting this to false, allows to only include the headers from the HTTP response (not propagating IN head [...]
+    "customHostHeader": { "kind": "parameter", "displayName": "Custom Host Header", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use custom host header for producer. When not set in query will be ignored. When set will override host header derived from url." },
+    "httpMethod": { "kind": "parameter", "displayName": "Http Method", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.http.common.HttpMethods", "enum": [ "GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE", "PATCH" ], "deprecated": false, "autowired": false, "secret": false, "description": "Configure the HTTP method to use. The HttpMethod header cannot override this option if set." },
+    "ignoreResponseBody": { "kind": "parameter", "displayName": "Ignore Response Body", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If this option is true, The http producer won't read response body and cache the input stream" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "preserveHostHeader": { "kind": "parameter", "displayName": "Preserve Host Header", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, HttpProducer will set the Host header to the value contained in the current exchange Host header, useful in reverse proxy applications where you want the Host header received by the [...]
+    "throwExceptionOnFailure": { "kind": "parameter", "displayName": "Throw Exception On Failure", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Option to disable throwing the HttpOperationFailedException in case of failed responses from the remote server. This allows you to get all responses regardless of the HTTP status code." },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side, and if the caused Exception was send back serialized in the response as a application\/x-java-serialized-object content type. On the producer side t [...]
+    "cookieHandler": { "kind": "parameter", "displayName": "Cookie Handler", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.http.base.cookie.CookieHandler", "deprecated": false, "autowired": false, "secret": false, "description": "Configure a cookie handler to maintain a HTTP session" },
+    "cookieStore": { "kind": "parameter", "displayName": "Cookie Store", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.http.client.CookieStore", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom CookieStore. By default the BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie stor [...]
+    "deleteWithBody": { "kind": "parameter", "displayName": "Delete With Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the HTTP DELETE should include the message body or not. By default HTTP DELETE do not include any HTTP body. However in some rare cases users may need to be able to include the message [...]
+    "getWithBody": { "kind": "parameter", "displayName": "Get With Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the HTTP GET should include the message body or not. By default HTTP GET do not include any HTTP body. However in some rare cases users may need to be able to include the message body." },
+    "okStatusCodeRange": { "kind": "parameter", "displayName": "Ok Status Code Range", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "200-299", "description": "The status codes which are considered a success response. The values are inclusive. Multiple ranges can be defined, separated by comma, e.g. 200-204,209,301-304. Each range  [...]
+    "skipRequestHeaders": { "kind": "parameter", "displayName": "Skip Request Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip mapping all the Camel headers as HTTP request headers. If there are no data from Camel headers needed to be included in the HTTP request then this can avoid parsing ove [...]
+    "skipResponseHeaders": { "kind": "parameter", "displayName": "Skip Response Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to skip mapping all the HTTP response headers to Camel headers. If there are no data needed from HTTP headers then this can avoid parsing overhead with many object allocation [...]
+    "userAgent": { "kind": "parameter", "displayName": "User Agent", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To set a custom HTTP User-Agent request header" },
+    "clientBuilder": { "kind": "parameter", "displayName": "Client Builder", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.http.impl.client.HttpClientBuilder", "deprecated": false, "autowired": false, "secret": false, "description": "Provide access to the http client request parameters used on new RequestConfig instances used by producers or consumers of this endpoint." },
+    "clientConnectionManager": { "kind": "parameter", "displayName": "Client Connection Manager", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.http.conn.HttpClientConnectionManager", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HttpClientConnectionManager to manage connections" },
+    "connectionsPerRoute": { "kind": "parameter", "displayName": "Connections Per Route", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 20, "description": "The maximum number of connections per route." },
+    "httpClient": { "kind": "parameter", "displayName": "Http Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.http.client.HttpClient", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a custom HttpClient to be used by the producer" },
+    "httpClientConfigurer": { "kind": "parameter", "displayName": "Http Client Configurer", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.http.HttpClientConfigurer", "deprecated": false, "autowired": false, "secret": false, "description": "Register a custom configuration strategy for new HttpClient instances created by producers or consumers such as to configure authentication mechanisms etc." },
+    "httpClientOptions": { "kind": "parameter", "displayName": "Http Client Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "httpClient.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure the HttpClient using the key\/values from the Map." },
+    "httpContext": { "kind": "parameter", "displayName": "Http Context", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.http.protocol.HttpContext", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HttpContext instance" },
+    "maxTotalConnections": { "kind": "parameter", "displayName": "Max Total Connections", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 200, "description": "The maximum number of connections." },
+    "useSystemProperties": { "kind": "parameter", "displayName": "Use System Properties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To use System Properties as fallback for configuration" },
+    "proxyAuthDomain": { "kind": "parameter", "displayName": "Proxy Auth Domain", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication domain to use with NTML" },
+    "proxyAuthHost": { "kind": "parameter", "displayName": "Proxy Auth Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication host" },
+    "proxyAuthMethod": { "kind": "parameter", "displayName": "Proxy Auth Method", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "Basic", "Digest", "NTLM" ], "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication method to use" },
+    "proxyAuthNtHost": { "kind": "parameter", "displayName": "Proxy Auth Nt Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication domain (workstation name) to use with NTML" },
+    "proxyAuthPassword": { "kind": "parameter", "displayName": "Proxy Auth Password", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Proxy authentication password" },
+    "proxyAuthPort": { "kind": "parameter", "displayName": "Proxy Auth Port", "group": "proxy", "label": "producer,proxy", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication port" },
+    "proxyAuthScheme": { "kind": "parameter", "displayName": "Proxy Auth Scheme", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "http", "https" ], "deprecated": false, "autowired": false, "secret": false, "description": "Proxy authentication scheme to use" },
+    "proxyAuthUsername": { "kind": "parameter", "displayName": "Proxy Auth Username", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Proxy authentication username" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy hostname to use" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "producer,proxy", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Proxy port to use" },
+    "authDomain": { "kind": "parameter", "displayName": "Auth Domain", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Authentication domain to use with NTML" },
+    "authenticationPreemptive": { "kind": "parameter", "displayName": "Authentication Preemptive", "group": "security", "label": "producer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If this option is true, camel-http sends preemptive basic authentication to the server." },
+    "authHost": { "kind": "parameter", "displayName": "Auth Host", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Authentication host to use with NTML" },
+    "authMethod": { "kind": "parameter", "displayName": "Auth Method", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Authentication methods allowed to use as a comma separated list of values Basic, Digest or NTLM." },
+    "authMethodPriority": { "kind": "parameter", "displayName": "Auth Method Priority", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "Basic", "Digest", "NTLM" ], "deprecated": false, "autowired": false, "secret": false, "description": "Which authentication method to prioritize to use, either as Basic, Digest or NTLM." },
+    "authPassword": { "kind": "parameter", "displayName": "Auth Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication password" },
+    "authUsername": { "kind": "parameter", "displayName": "Auth Username", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Authentication username" },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. If you need to use  [...]
+    "x509HostnameVerifier": { "kind": "parameter", "displayName": "X509 Hostname Verifier", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/influxdb.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/influxdb.json
new file mode 100644
index 0000000..cb5d0d9
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/influxdb.json
@@ -0,0 +1,40 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "influxdb",
+    "title": "InfluxDB",
+    "description": "Interact with InfluxDB, a time series database.",
+    "deprecated": false,
+    "firstVersion": "2.18.0",
+    "label": "database",
+    "javaType": "org.apache.camel.component.influxdb.InfluxDbComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-influxdb",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "influxdb",
+    "extendsScheme": "",
+    "syntax": "influxdb:connectionBean",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "influxDB": { "kind": "property", "displayName": "Influx DB", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.influxdb.InfluxDB", "deprecated": false, "autowired": true, "secret": false, "description": "The shared Influx DB to use for all endpoints" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "connectionBean": { "kind": "path", "displayName": "Connection Bean", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Connection to the influx database, of class InfluxDB.class" },
+    "autoCreateDatabase": { "kind": "parameter", "displayName": "Auto Create Database", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Define if we want to auto create the database if it's not present" },
+    "batch": { "kind": "parameter", "displayName": "Batch", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Define if this operation is a batch operation or not" },
+    "checkDatabaseExistence": { "kind": "parameter", "displayName": "Check Database Existence", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Define if we want to check the database existence while starting the endpoint" },
+    "databaseName": { "kind": "parameter", "displayName": "Database Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The name of the database where the time series will be stored" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "insert", "description": "Define if this operation is an insert or a query" },
+    "query": { "kind": "parameter", "displayName": "Query", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Define the query in case of operation query" },
+    "retentionPolicy": { "kind": "parameter", "displayName": "Retention Policy", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "default", "description": "The string that defines the retention policy to the data created by the endpoint" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/iota.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/iota.json
new file mode 100644
index 0000000..c65745b
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/iota.json
@@ -0,0 +1,38 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "iota",
+    "title": "IOTA",
+    "description": "Manage financial transactions using IOTA distributed ledger.",
+    "deprecated": false,
+    "firstVersion": "2.23.0",
+    "label": "ledger,api",
+    "javaType": "org.apache.camel.component.iota.IOTAComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-iota",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "iota",
+    "extendsScheme": "",
+    "syntax": "iota:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Component name" },
+    "depth": { "kind": "parameter", "displayName": "Depth", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "9", "description": "The depth determines how deep the tangle is analysed for getting Tips" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "minWeightMagnitude": { "kind": "parameter", "displayName": "Min Weight Magnitude", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "14", "description": "The minWeightMagnitude is the minimum number of zeroes that a proof-of-work output\/transaction hash must end with to be considered valid by full nodes" },
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "sendTransfer", "getNewAddress", "getTransfers" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Which operation to perform, one of: sendTransfer, getNewAddress, getTransfers" },
+    "tag": { "kind": "parameter", "displayName": "Tag", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "TAG" },
+    "url": { "kind": "parameter", "displayName": "Url", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Node url" },
+    "securityLevel": { "kind": "parameter", "displayName": "Security Level", "group": "security", "label": "security", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "description": "Security level to be used for the private key \/ address. Can be 1, 2 or 3." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/irc.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/irc.json
new file mode 100644
index 0000000..88b305f
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/irc.json
@@ -0,0 +1,62 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "irc",
+    "title": "IRC",
+    "description": "Send and receive messages to\/from and IRC chat.",
+    "deprecated": false,
+    "firstVersion": "1.1.0",
+    "label": "chat",
+    "javaType": "org.apache.camel.component.irc.IrcComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-irc",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "irc",
+    "extendsScheme": "",
+    "syntax": "irc:hostname:port",
+    "alternativeSyntax": "irc:username:password@hostname:port",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "hostname": { "kind": "path", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Hostname for the IRC chat server" },
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Port number for the IRC chat server. If no port is configured then a default port of either 6667, 6668 or 6669 is used." },
+    "autoRejoin": { "kind": "parameter", "displayName": "Auto Rejoin", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Whether to auto re-join when being kicked" },
+    "channels": { "kind": "parameter", "displayName": "Channels", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Comma separated list of IRC channels." },
+    "commandTimeout": { "kind": "parameter", "displayName": "Command Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Delay in milliseconds before sending commands after the connection is established." },
+    "keys": { "kind": "parameter", "displayName": "Keys", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Comma separated list of keys for channels." },
+    "namesOnJoin": { "kind": "parameter", "displayName": "Names On Join", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Sends NAMES command to channel after joining it. onReply has to be true in order to process the result which w [...]
+    "nickname": { "kind": "parameter", "displayName": "Nickname", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "The nickname used in chat." },
+    "persistent": { "kind": "parameter", "displayName": "Persistent", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Use persistent messages." },
+    "realname": { "kind": "parameter", "displayName": "Realname", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "The IRC user's actual name." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "colors": { "kind": "parameter", "displayName": "Colors", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Whether or not the server supports color codes." },
+    "onJoin": { "kind": "parameter", "displayName": "On Join", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle user join events." },
+    "onKick": { "kind": "parameter", "displayName": "On Kick", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle kick events." },
+    "onMode": { "kind": "parameter", "displayName": "On Mode", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle mode change events." },
+    "onNick": { "kind": "parameter", "displayName": "On Nick", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle nickname change events." },
+    "onPart": { "kind": "parameter", "displayName": "On Part", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle user part events." },
+    "onPrivmsg": { "kind": "parameter", "displayName": "On Privmsg", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle private message events." },
+    "onQuit": { "kind": "parameter", "displayName": "On Quit", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle user quit events." },
+    "onReply": { "kind": "parameter", "displayName": "On Reply", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Whether or not to handle general responses to commands or informational messages." },
+    "onTopic": { "kind": "parameter", "displayName": "On Topic", "group": "filter", "label": "filter", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Handle topic change events." },
+    "nickPassword": { "kind": "parameter", "displayName": "Nick Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Your IRC server nickname password." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "The IRC server password." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "Used for configuring security using SSL. Reference to a org.apache.ca [...]
+    "trustManager": { "kind": "parameter", "displayName": "Trust Manager", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.schwering.irc.lib.ssl.SSLTrustManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "The trust manager used to verify the SSL server's certificate." },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.irc.IrcConfiguration", "configurationField": "configuration", "description": "The IRC server user name." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ironmq.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ironmq.json
new file mode 100644
index 0000000..87f725e
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ironmq.json
@@ -0,0 +1,63 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ironmq",
+    "title": "IronMQ",
+    "description": "Send and receive messages to\/from IronMQ an elastic and durable hosted message queue as a service.",
+    "deprecated": false,
+    "firstVersion": "2.17.0",
+    "label": "cloud,messaging",
+    "javaType": "org.apache.camel.component.ironmq.IronMQComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ironmq",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ironmq",
+    "extendsScheme": "",
+    "syntax": "ironmq:queueName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "queueName": { "kind": "path", "displayName": "Queue Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "The name of the IronMQ queue" },
+    "client": { "kind": "parameter", "displayName": "Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "io.iron.ironmq.Client", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "Reference to a io.iron.ironmq.Client in the Registry." },
+    "ironMQCloud": { "kind": "parameter", "displayName": "Iron MQCloud", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "https:\/\/mq-aws-us-east-1-1.iron.io", "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "IronMq Cloud url. Urls for public clusters: https:\/\/mq-aws-us-east-1 [...]
+    "preserveHeaders": { "kind": "parameter", "displayName": "Preserve Headers", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "Should message headers be preserved when publishing messages. This will add the Camel headers to the Ir [...]
+    "projectId": { "kind": "parameter", "displayName": "Project Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "IronMQ projectId" },
+    "token": { "kind": "parameter", "displayName": "Token", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "IronMQ token" },
+    "batchDelete": { "kind": "parameter", "displayName": "Batch Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "Should messages be deleted in one batch. This will limit the number of api requests since messages ar [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "The number of concurrent consumers." },
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "Number of messages to poll pr. call. Maximum is 100." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "After timeout (in seconds), item will be placed back onto the queue." },
+    "wait": { "kind": "parameter", "displayName": "Wait", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "Time in seconds to wait for a message to become available. This enables long polling. Default is 0 (does not wait), maximum is 30." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "visibilityDelay": { "kind": "parameter", "displayName": "Visibility Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.ironmq.IronMQConfiguration", "configurationField": "configuration", "description": "The item will not be available on the queue until this many seconds have passed. Default is 0 seconds." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcache.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcache.json
new file mode 100644
index 0000000..772cefa
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcache.json
@@ -0,0 +1,60 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jcache",
+    "title": "JCache",
+    "description": "Perform caching operations against JSR107\/JCache.",
+    "deprecated": false,
+    "firstVersion": "2.17.0",
+    "label": "cache,datagrid,clustering",
+    "javaType": "org.apache.camel.component.jcache.JCacheComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jcache",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jcache",
+    "extendsScheme": "",
+    "syntax": "jcache:cacheName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "cacheConfiguration": { "kind": "property", "displayName": "Cache Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.cache.configuration.Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "A Configuration for the Cache" },
+    "cacheConfigurationProperties": { "kind": "property", "displayName": "Cache Configuration Properties", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Map", "deprecated": false, "autowired": false, "secret": false, "description": "Properties to configure jcache" },
+    "cacheConfigurationPropertiesRef": { "kind": "property", "displayName": "Cache Configuration Properties Ref", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "References to an existing Properties or Map to lookup in the registry to use for configuring jcache." },
+    "cachingProvider": { "kind": "property", "displayName": "Caching Provider", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The fully qualified class name of the javax.cache.spi.CachingProvider" },
+    "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "An implementation specific URI for the CacheManager" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "cacheName": { "kind": "path", "displayName": "Cache Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cache" },
+    "cacheConfiguration": { "kind": "parameter", "displayName": "Cache Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.cache.configuration.Configuration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "A Configuration for the Cache" },
+    "cacheConfigurationProperties": { "kind": "parameter", "displayName": "Cache Configuration Properties", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Properties", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "The Properties for the javax.cache.spi.CachingProvider to create the CacheManager" },
+    "cachingProvider": { "kind": "parameter", "displayName": "Caching Provider", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "The fully qualified class name of the javax.cache.spi.CachingProvider" },
+    "configurationUri": { "kind": "parameter", "displayName": "Configuration Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "An implementation specific URI for the CacheManager" },
+    "managementEnabled": { "kind": "parameter", "displayName": "Management Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "Whether management gathering is enabled" },
+    "readThrough": { "kind": "parameter", "displayName": "Read Through", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "If read-through caching should be used" },
+    "statisticsEnabled": { "kind": "parameter", "displayName": "Statistics Enabled", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "Whether statistics gathering is enabled" },
+    "storeByValue": { "kind": "parameter", "displayName": "Store By Value", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "If cache should use store-by-value or store-by-reference semantics" },
+    "writeThrough": { "kind": "parameter", "displayName": "Write Through", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "If write-through caching should be used" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "filteredEvents": { "kind": "parameter", "displayName": "Filtered Events", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CREATED", "UPDATED", "REMOVED", "EXPIRED" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "Events a consumer should filter (multiple events can b [...]
+    "oldValueRequired": { "kind": "parameter", "displayName": "Old Value Required", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "if the old value is required for events" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "if the event listener should block the thread causing the event" },
+    "eventFilters": { "kind": "parameter", "displayName": "Event Filters", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.util.List<javax.cache.event.CacheEntryEventFilter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "The CacheEntryEventFilter. If using eventFilters option, [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "To configure using a cache operation by default. If an operation in the message header, then the operation from the header take [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "cacheLoaderFactory": { "kind": "parameter", "displayName": "Cache Loader Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.cache.configuration.Factory<javax.cache.integration.CacheLoader>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "The CacheLoader factory" },
+    "cacheWriterFactory": { "kind": "parameter", "displayName": "Cache Writer Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.cache.configuration.Factory<javax.cache.integration.CacheWriter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "The CacheWriter factory" },
+    "createCacheIfNotExists": { "kind": "parameter", "displayName": "Create Cache If Not Exists", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "Configure if a cache need to be created if it does exist or can't be pre-conf [...]
+    "expiryPolicyFactory": { "kind": "parameter", "displayName": "Expiry Policy Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.cache.configuration.Factory<javax.cache.expiry.ExpiryPolicy>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "The ExpiryPolicy factory" },
+    "lookupProviders": { "kind": "parameter", "displayName": "Lookup Providers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jcache.JCacheConfiguration", "configurationField": "configuration", "description": "Configure if a camel-cache should try to find implementations of jcache api in runtimes like  [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcr.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcr.json
new file mode 100644
index 0000000..7ba488e
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jcr.json
@@ -0,0 +1,48 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jcr",
+    "title": "JCR",
+    "description": "Read and write nodes to\/from a JCR compliant content repository.",
+    "deprecated": false,
+    "firstVersion": "1.3.0",
+    "label": "database,cms",
+    "javaType": "org.apache.camel.component.jcr.JcrComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jcr",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jcr",
+    "extendsScheme": "",
+    "syntax": "jcr:host\/base",
+    "alternativeSyntax": "jcr:username:password@host\/base",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the javax.jcr.Repository to lookup from the Camel registry to be used." },
+    "base": { "kind": "path", "displayName": "Base", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Get the base node when accessing the repository" },
+    "deep": { "kind": "parameter", "displayName": "Deep", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "When isDeep is true, events whose associated parent node is at absPath or within its subgraph are received." },
+    "eventTypes": { "kind": "parameter", "displayName": "Event Types", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "eventTypes (a combination of one or more event types encoded as a bit mask value such as javax.jcr.observation.Event.NODE_ADDED, javax.jcr.observation.Event.NODE_REMOVED, etc.)." },
+    "nodeTypeNames": { "kind": "parameter", "displayName": "Node Type Names", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "When a comma separated nodeTypeName list string is set, only events whose associated parent node has one of the node types (or a subtype of one of the node types) in this list will be received." },
+    "noLocal": { "kind": "parameter", "displayName": "No Local", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If noLocal is true, then events generated by the session through which the listener was registered are ignored. Otherwise, they are not ignored." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Password for login" },
+    "sessionLiveCheckInterval": { "kind": "parameter", "displayName": "Session Live Check Interval", "group": "common", "label": "", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "description": "Interval in milliseconds to wait before each session live checking The default value is 60000 ms." },
+    "sessionLiveCheckIntervalOnStart": { "kind": "parameter", "displayName": "Session Live Check Interval On Start", "group": "common", "label": "", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3000", "description": "Interval in milliseconds to wait before the first session live checking. The default value is 3000 ms." },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Username for login" },
+    "uuids": { "kind": "parameter", "displayName": "Uuids", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "When a comma separated uuid list string is set, only events whose associated parent node has one of the identifiers in the comma separated uuid list will be received." },
+    "workspaceName": { "kind": "parameter", "displayName": "Workspace Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The workspace to access. If it's not specified then the default one will be used" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jdbc.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jdbc.json
new file mode 100644
index 0000000..ec81a90
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jdbc.json
@@ -0,0 +1,47 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jdbc",
+    "title": "JDBC",
+    "description": "Access databases through SQL and JDBC.",
+    "deprecated": false,
+    "firstVersion": "1.2.0",
+    "label": "database,sql",
+    "javaType": "org.apache.camel.component.jdbc.JdbcComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jdbc",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jdbc",
+    "extendsScheme": "",
+    "syntax": "jdbc:dataSourceName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "dataSource": { "kind": "property", "displayName": "Data Source", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "javax.sql.DataSource", "deprecated": false, "autowired": false, "secret": false, "description": "To use the DataSource instance instead of looking up the data source by name from the registry." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "connectionStrategy": { "kind": "property", "displayName": "Connection Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jdbc.ConnectionStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom strategy for working with connections. Do not use a custom strategy when using the spring-jdbc component because a special Spring ConnectionStrategy is used by default to  [...]
+  },
+  "properties": {
+    "dataSourceName": { "kind": "path", "displayName": "Data Source Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of DataSource to lookup in the Registry. If the name is dataSource or default, then Camel will attempt to lookup a default DataSource from the registry, meaning if there is a only one instance of DataSource found, [...]
+    "allowNamedParameters": { "kind": "parameter", "displayName": "Allow Named Parameters", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to allow using named parameters in the queries." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "outputClass": { "kind": "parameter", "displayName": "Output Class", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Specify the full package and class name to use as conversion when outputType=SelectOne or SelectList." },
+    "outputType": { "kind": "parameter", "displayName": "Output Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jdbc.JdbcOutputType", "enum": [ "SelectOne", "SelectList", "StreamList" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SelectList", "description": "Determines the output the producer should use." },
+    "parameters": { "kind": "parameter", "displayName": "Parameters", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "statement.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Optional parameters to the java.sql.Statement. For example to set maxRows, fetchSize etc." },
+    "readSize": { "kind": "parameter", "displayName": "Read Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The default maximum number of rows that can be read by a polling query. The default value is 0." },
+    "resetAutoCommit": { "kind": "parameter", "displayName": "Reset Auto Commit", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Camel will set the autoCommit on the JDBC connection to be false, commit the change after executed the statement and reset the autoCommit flag of the connection at the end, if the resetAutoCommit is true. If the JDBC co [...]
+    "transacted": { "kind": "parameter", "displayName": "Transacted", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether transactions are in use." },
+    "useGetBytesForBlob": { "kind": "parameter", "displayName": "Use Get Bytes For Blob", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To read BLOB columns as bytes instead of string data. This may be needed for certain databases such as Oracle where you must read BLOB columns as bytes." },
+    "useHeadersAsParameters": { "kind": "parameter", "displayName": "Use Headers As Parameters", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Set this option to true to use the prepareStatementStrategy with named parameters. This allows to define queries with named placeholders, and use headers with the dynamic values for the query placeholders." },
+    "useJDBC4ColumnNameAndLabelSemantics": { "kind": "parameter", "displayName": "Use JDBC4 Column Name And Label Semantics", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to use JDBC 4 or JDBC 3.0 or older semantic when retrieving column name. JDBC 4.0 uses columnLabel to get the column name where as JDBC 3.0 uses both columnName o [...]
+    "beanRowMapper": { "kind": "parameter", "displayName": "Bean Row Mapper", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jdbc.BeanRowMapper", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.component.jdbc.BeanRowMapper when using outputClass. The default implementation will lower case the row names and skip underscores, and dashes. For example CUST_ID is  [...]
+    "connectionStrategy": { "kind": "parameter", "displayName": "Connection Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jdbc.ConnectionStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom strategy for working with connections. Do not use a custom strategy when using the spring-jdbc component because a special Spring ConnectionStrategy is used by default to [...]
+    "prepareStatementStrategy": { "kind": "parameter", "displayName": "Prepare Statement Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "Allows the plugin to use a custom org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy to control preparation of the query and prepared statement." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jetty.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jetty.json
new file mode 100644
index 0000000..56f142a
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jetty.json
@@ -0,0 +1,95 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jetty",
+    "title": "Jetty",
+    "description": "Expose HTTP endpoints using Jetty 9.",
+    "deprecated": false,
+    "deprecationNote": "",
+    "firstVersion": "1.2.0",
+    "label": "http",
+    "javaType": "org.apache.camel.component.jetty9.JettyHttpComponent9",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jetty",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jetty",
+    "extendsScheme": "http",
+    "syntax": "jetty:httpUri",
+    "async": true,
+    "api": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "continuationTimeout": { "kind": "property", "displayName": "Continuation Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "30000", "description": "Allows to set a timeout in millis when using Jetty as consumer (server). By default Jetty uses 30000. You can use a value of = 0 to never expire. If a timeout occurs then t [...]
+    "enableJmx": { "kind": "property", "displayName": "Enable Jmx", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "If this option is true, Jetty JMX support will be enabled for this endpoint." },
+    "maxThreads": { "kind": "property", "displayName": "Max Threads", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured." },
+    "minThreads": { "kind": "property", "displayName": "Min Threads", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured." },
+    "muteException": { "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." },
+    "requestBufferSize": { "kind": "property", "displayName": "Request Buffer Size", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows to configure a custom value of the request buffer size on the Jetty connectors." },
+    "requestHeaderSize": { "kind": "property", "displayName": "Request Header Size", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows to configure a custom value of the request header size on the Jetty connectors." },
+    "responseBufferSize": { "kind": "property", "displayName": "Response Buffer Size", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows to configure a custom value of the response buffer size on the Jetty connectors." },
+    "responseHeaderSize": { "kind": "property", "displayName": "Response Header Size", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Allows to configure a custom value of the response header size on the Jetty connectors." },
+    "sendServerVersion": { "kind": "property", "displayName": "Send Server Version", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "If the option is true, jetty will send the server header with the jetty version information to the client which sends the request. NOTE please make sure there is no any other camel-jett [...]
+    "useContinuation": { "kind": "property", "displayName": "Use Continuation", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not to use Jetty continuations for the Jetty Server." },
+    "useXForwardedForHeader": { "kind": "property", "displayName": "Use XForwarded For Header", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "To use the X-Forwarded-For header in HttpServletRequest.getRemoteAddr." },
+    "threadPool": { "kind": "property", "displayName": "Thread Pool", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.eclipse.jetty.util.thread.ThreadPool", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use a custom thread pool for the server. This option should only be used in special circumstances." },
+    "allowJavaSerializedObject": { "kind": "property", "displayName": "Allow Java Serialized Object", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will des [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.eclipse.jetty.server.handler.ErrorHandler", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "This option is used to set the ErrorHandler that Jetty server uses." },
+    "httpBinding": { "kind": "property", "displayName": "Http Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.http.common.HttpBinding", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Not to be used - use JettyHttpBinding instead." },
+    "httpConfiguration": { "kind": "property", "displayName": "Http Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.http.common.HttpConfiguration", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Jetty component does not use HttpConfiguration." },
+    "jettyHttpBinding": { "kind": "property", "displayName": "Jetty Http Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jetty.JettyHttpBinding", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer." },
+    "mbContainer": { "kind": "property", "displayName": "Mb Container", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.eclipse.jetty.jmx.MBeanContainer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans." },
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use a http proxy to configure the hostname." },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "To use a http proxy to configure the port number." },
+    "keystore": { "kind": "property", "displayName": "Keystore", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry." },
+    "socketConnectorProperties": { "kind": "property", "displayName": "Socket Connector Properties", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map which contains general HTTP connector properties. Uses the same principle as sslSocketConnectorProperties." },
+    "socketConnectors": { "kind": "property", "displayName": "Socket Connectors", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.Integer, org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "deprecationNote": "", "autowired": 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, "deprecationNote": "", "autowired": false, "secret": true, "description": "The key password, which is used to access the certificate's key entry in the keystore (this is the same password that is supplied to the keystore command's -keypass option)." },
+    "sslPassword": { "kind": "property", "displayName": "Ssl Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "description": "The ssl password, which is required to access the keystore file (this is the same password that is supplied to the keystore command's -storepass option)." },
+    "sslSocketConnectorProperties": { "kind": "property", "displayName": "Ssl Socket Connector Properties", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map which contains general SSL connector properties." },
+    "sslSocketConnectors": { "kind": "property", "displayName": "Ssl Socket Connectors", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.Integer, org.eclipse.jetty.server.Connector>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A map which contains per port number specific SSL connectors." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters" }
+  },
+  "properties": {
+    "httpUri": { "kind": "path", "displayName": "Http Uri", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.net.URI", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The url of the HTTP endpoint to call." },
+    "chunked": { "kind": "parameter", "displayName": "Chunked", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is false the Servlet will disable the HTTP streaming and set the content-length header on the response" },
+    "disableStreamCache": { "kind": "parameter", "displayName": "Disable Stream Cache", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Determines whether or not the raw input stream from Servlet is cached or not (Camel will read the stream into a in memory\/overflow to file, Stream caching) cache. By default Camel will cache the Servlet inpu [...]
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "httpBinding": { "kind": "parameter", "displayName": "Http Binding", "group": "common (advanced)", "label": "common,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.http.common.HttpBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient." },
+    "async": { "kind": "parameter", "displayName": "Async", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Configure the consumer to work in async mode" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "continuationTimeout": { "kind": "parameter", "displayName": "Continuation Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "description": "Allows to set a timeout in millis when using Jetty as consumer (server). By default Jetty uses 30000. You can use a value of = 0 to never expire. If a timeout occurs then the request will be exp [...]
+    "enableCORS": { "kind": "parameter", "displayName": "Enable CORS", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, Jetty server will setup the CrossOriginFilter which supports the CORS out of box." },
+    "enableJmx": { "kind": "parameter", "displayName": "Enable Jmx", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If this option is true, Jetty JMX support will be enabled for this endpoint. See Jetty JMX support for more details." },
+    "enableMultipartFilter": { "kind": "parameter", "displayName": "Enable Multipart Filter", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether org.apache.camel.component.jetty.MultiPartFilter is enabled or not. You should set this value to false when bridging endpoints, to ensure multipart requests is proxied\/bridged as well." },
+    "httpMethodRestrict": { "kind": "parameter", "displayName": "Http Method Restrict", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Used to only allow consuming if the HttpMethod matches, such as GET\/POST\/PUT etc. Multiple methods can be specified separated by comma." },
+    "matchOnUriPrefix": { "kind": "parameter", "displayName": "Match On Uri Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not the consumer should try to find a target consumer by matching the URI prefix if no exact match is found." },
+    "muteException": { "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." },
+    "responseBufferSize": { "kind": "parameter", "displayName": "Response Buffer Size", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom buffer size on the javax.servlet.ServletResponse." },
+    "sendDateHeader": { "kind": "parameter", "displayName": "Send Date Header", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the option is true, jetty server will send the date header to the client which sends the request. NOTE please make sure there is no any other camel-jetty endpoint is share the same port, otherwise this option  [...]
+    "sendServerVersion": { "kind": "parameter", "displayName": "Send Server Version", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If the option is true, jetty will send the server header with the jetty version information to the client which sends the request. NOTE please make sure there is no any other camel-jetty endpoint is share th [...]
+    "sessionSupport": { "kind": "parameter", "displayName": "Session Support", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable the session manager on the server side of Jetty." },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side, and if the caused Exception was send back serialized in the response as a application\/x-java-serialized-object content type. On the producer side t [...]
+    "useContinuation": { "kind": "parameter", "displayName": "Use Continuation", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "description": "Whether or not to use Jetty continuations for the Jetty Server." },
+    "eagerCheckContentAvailable": { "kind": "parameter", "displayName": "Eager Check Content Available", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to eager check whether the HTTP requests has content if the content-length header is 0 or not present. This can be turned on in case HTTP clients do not send s [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "filterInitParameters": { "kind": "parameter", "displayName": "Filter Init Parameters", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "prefix": "filter.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Configuration of the filter init parameters. These parameters will be applied to the filter list before starting the jett [...]
+    "filters": { "kind": "parameter", "displayName": "Filters", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.util.List<javax.servlet.Filter>", "deprecated": false, "autowired": false, "secret": false, "description": "Allows using a custom filters which is putted into a list and can be find in the Registry. Multiple values can be separated by comma." },
+    "handlers": { "kind": "parameter", "displayName": "Handlers", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "array", "javaType": "java.util.List<org.eclipse.jetty.server.Handler>", "deprecated": false, "autowired": false, "secret": false, "description": "Specifies a comma-delimited set of Handler instances to lookup in your Registry. These handlers are added to the Jetty servlet context (for example, to add security). Important: You can not  [...]
+    "mapHttpMessageBody": { "kind": "parameter", "displayName": "Map Http Message Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange Body of the exchange will be mapped to HTTP body. Setting this to false will avoid the HTTP mapping." },
+    "mapHttpMessageFormUrlEncodedBody": { "kind": "parameter", "displayName": "Map Http Message Form Url Encoded Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange Form Encoded body of the exchange will be mapped to HTTP. Setting this to false will avoid the HTTP Form Encoded  [...]
+    "mapHttpMessageHeaders": { "kind": "parameter", "displayName": "Map Http Message Headers", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If this option is true then IN exchange Headers of the exchange will be mapped to HTTP headers. Setting this to false will avoid the HTTP Headers mapping." },
+    "multipartFilter": { "kind": "parameter", "displayName": "Multipart Filter", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "javax.servlet.Filter", "deprecated": false, "autowired": false, "secret": false, "description": "Allows using a custom multipart filter. Note: setting multipartFilterRef forces the value of enableMultipartFilter to true." },
+    "optionsEnabled": { "kind": "parameter", "displayName": "Options Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP OPTIONS for this Servlet consumer. By default OPTIONS is turned off." },
+    "traceEnabled": { "kind": "parameter", "displayName": "Trace Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP TRACE for this Servlet consumer. By default TRACE is turned off." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "To configure security using SSLContextParameters" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jing.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jing.json
new file mode 100644
index 0000000..b9bec0f
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jing.json
@@ -0,0 +1,33 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jing",
+    "title": "Jing",
+    "description": "Validate XML against a RelaxNG schema (XML Syntax or Compact Syntax) using Jing library.",
+    "deprecated": true,
+    "firstVersion": "1.1.0",
+    "label": "validation",
+    "javaType": "org.apache.camel.component.validator.jing.JingComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jing",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jing",
+    "extendsScheme": "",
+    "syntax": "jing:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URL to a local resource on the classpath or a full URL to a remote resource or resource on the file system which contains the schema to validate against." },
+    "compactSyntax": { "kind": "parameter", "displayName": "Compact Syntax", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to validate using RelaxNG compact syntax or not. By default this is false for using RelaxNG XML Syntax (rng) And true is for using RelaxNG Compact Syntax (rnc)" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jms.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jms.json
new file mode 100644
index 0000000..17387e4
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jms.json
@@ -0,0 +1,224 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jms",
+    "title": "JMS",
+    "description": "Sent and receive messages to\/from a JMS Queue or Topic.",
+    "deprecated": false,
+    "deprecationNote": "",
+    "firstVersion": "1.0.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.jms.JmsComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jms",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jms",
+    "extendsScheme": "",
+    "syntax": "jms:destinationType:destinationName",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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. [...]
+    "connectionFactory": { "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "autowired": 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, "autowired": 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 [...]
+    "durableSubscriptionName": { "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 configur [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific [...]
+    "replyTo": { "kind": "property", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 tha [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationFiel [...]
+    "artemisConsumerPriority": { "kind": "property", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. N [...]
+    "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 picku [...]
+    "autoStartup": { "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "descri [...]
+    "concurrentConsumers": { "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 [...]
+    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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).  [...]
+    "replyToDeliveryPersistent": { "kind": "property", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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 b [...]
+    "subscriptionName": { "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 dura [...]
+    "subscriptionShared": { "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 sp [...]
+    "acceptMessagesWhileStopping": { "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while i [...]
+    "allowReplyManagerQuickStop": { "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in the [...]
+    "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, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The  [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": [...]
+    "eagerLoadingOfProperties": { "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "eagerPoisonBody": { "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties  [...]
+    "exposeListenerSession": { "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consu [...]
+    "replyToSameDestinationAllowed": { "kind": "property", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "taskExecutor": { "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMo [...]
+    "deliveryPersistent": { "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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 us [...]
+    "formatDateHeadersToIso8601": { "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 8 [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "preserveMessageQos": { "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, ins [...]
+    "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, "autowired": 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 (w [...]
+    "replyToConcurrentConsumers": { "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "replyToMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 als [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "property", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for  [...]
+    "replyToOverride": { "kind": "property", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of s [...]
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 defau [...]
+    "timeToLive": { "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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, "autowired": 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 i [...]
+    "allowNullBody": { "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 mess [...]
+    "alwaysCopyMessage": { "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 i [...]
+    "correlationProperty": { "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "disableTimeToLive": { "kind": "property", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 r [...]
+    "forceSendOriginalMessage": { "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "includeSentJMSMessageID": { "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly ( [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", " [...]
+    "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, "autowired": 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 c [...]
+    "streamMessageTypeEnabled": { "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message p [...]
+    "allowAutoWiredConnectionFactory": { "kind": "property", "displayName": "Allow Auto Wired Connection Factory", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "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 use [...]
+    "allowAutoWiredDestinationResolver": { "kind": "property", "displayName": "Allow Auto Wired Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "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 w [...]
+    "allowSerializedHeaders": { "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 transferExch [...]
+    "artemisStreamingEnabled": { "kind": "property", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhe [...]
+    "asyncStartListener": { "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. Fo [...]
+    "asyncStopListener": { "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsConfiguration", "deprecated": false, "autowired": 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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.Dest [...]
+    "errorHandler": { "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": 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 t [...]
+    "exceptionListener": { "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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 w [...]
+    "includeAllJMSXProperties": { "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encodin [...]
+    "mapJmsMessage": { "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "maxMessagesPerTask": { "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 m [...]
+    "messageConverter": { "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.Messag [...]
+    "messageCreatedStrategy": { "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when  [...]
+    "messageIdEnabled": { "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 broke [...]
+    "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerC [...]
+    "messageTimestampEnabled": { "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "pubSubNoLocal": { "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, "autowired": 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": "duration", "javaType": "long", "deprecated": false, "autowired": 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": "duration", "javaType": "long", "deprecated": false, "autowired": 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 mil [...]
+    "requestTimeoutCheckerInterval": { "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 do [...]
+    "synchronous": { "kind": "property", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "transferException": { "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 consu [...]
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 fi [...]
+    "useMessageIDAsCorrelationID": { "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID  [...]
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional c [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in  [...]
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "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, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "desc [...]
+    "errorHandlerLogStackTrace": { "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 d [...]
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "property", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this f [...]
+    "lazyCreateTransactionManager": { "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionMana [...]
+    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" },
+    "destinationName": { "kind": "path", "displayName": "Destination Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the queue or topic to use as destination" },
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "connectionFactory": { "kind": "parameter", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.jms.ConnectionFactory", "deprecated": false, "autowired": 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": "parameter", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 t [...]
+    "durableSubscriptionName": { "kind": "parameter", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 configu [...]
+    "jmsMessageType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specifi [...]
+    "replyTo": { "kind": "parameter", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "kind": "parameter", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 th [...]
+    "acknowledgementModeName": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationFie [...]
+    "artemisConsumerPriority": { "kind": "parameter", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active.  [...]
+    "asyncConsumer": { "kind": "parameter", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 pick [...]
+    "autoStartup": { "kind": "parameter", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "kind": "parameter", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "descr [...]
+    "concurrentConsumers": { "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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\/repl [...]
+    "maxConcurrentConsumers": { "kind": "parameter", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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). [...]
+    "replyToDeliveryPersistent": { "kind": "parameter", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "kind": "parameter", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "subscriptionName": { "kind": "parameter", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 dur [...]
+    "subscriptionShared": { "kind": "parameter", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 s [...]
+    "acceptMessagesWhileStopping": { "kind": "parameter", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while  [...]
+    "allowReplyManagerQuickStop": { "kind": "parameter", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in th [...]
+    "consumerType": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The [...]
+    "defaultTaskExecutorType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description" [...]
+    "eagerLoadingOfProperties": { "kind": "parameter", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "eagerPoisonBody": { "kind": "parameter", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "exposeListenerSession": { "kind": "parameter", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when cons [...]
+    "replyToSameDestinationAllowed": { "kind": "parameter", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a repl [...]
+    "taskExecutor": { "kind": "parameter", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": 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": "parameter", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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": "parameter", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryM [...]
+    "deliveryPersistent": { "kind": "parameter", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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": "parameter", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": 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 u [...]
+    "formatDateHeadersToIso8601": { "kind": "parameter", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "preserveMessageQos": { "kind": "parameter", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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, in [...]
+    "priority": { "kind": "parameter", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "autowired": 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 ( [...]
+    "replyToConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 [...]
+    "replyToMaxConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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 al [...]
+    "replyToOnTimeoutMaxConcurrentConsumers": { "kind": "parameter", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for [...]
+    "replyToOverride": { "kind": "parameter", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 [...]
+    "replyToType": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of  [...]
+    "requestTimeout": { "kind": "parameter", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 defa [...]
+    "timeToLive": { "kind": "parameter", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": 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": "parameter", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "allowNullBody": { "kind": "parameter", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 mes [...]
+    "alwaysCopyMessage": { "kind": "parameter", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "correlationProperty": { "kind": "parameter", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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 JM [...]
+    "disableTimeToLive": { "kind": "parameter", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "forceSendOriginalMessage": { "kind": "parameter", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "includeSentJMSMessageID": { "kind": "parameter", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly  [...]
+    "replyToCacheLevelName": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration",  [...]
+    "replyToDestinationSelectorName": { "kind": "parameter", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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  [...]
+    "streamMessageTypeEnabled": { "kind": "parameter", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message  [...]
+    "allowSerializedHeaders": { "kind": "parameter", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 transferExc [...]
+    "artemisStreamingEnabled": { "kind": "parameter", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overh [...]
+    "asyncStartListener": { "kind": "parameter", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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. F [...]
+    "asyncStopListener": { "kind": "parameter", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "destinationResolver": { "kind": "parameter", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.Des [...]
+    "errorHandler": { "kind": "parameter", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": 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  [...]
+    "exceptionListener": { "kind": "parameter", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.jms.ExceptionListener", "deprecated": false, "autowired": 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." },
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "idleConsumerLimit": { "kind": "parameter", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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": "parameter", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "includeAllJMSXProperties": { "kind": "parameter", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "jmsKeyFormatStrategy": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for encodi [...]
+    "mapJmsMessage": { "kind": "parameter", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 java [...]
+    "maxMessagesPerTask": { "kind": "parameter", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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  [...]
+    "messageConverter": { "kind": "parameter", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.Messa [...]
+    "messageCreatedStrategy": { "kind": "parameter", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when [...]
+    "messageIdEnabled": { "kind": "parameter", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 brok [...]
+    "messageListenerContainerFactory": { "kind": "parameter", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListener [...]
+    "messageTimestampEnabled": { "kind": "parameter", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
+    "pubSubNoLocal": { "kind": "parameter", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "receiveTimeout": { "kind": "parameter", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "kind": "parameter", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 mi [...]
+    "requestTimeoutCheckerInterval": { "kind": "parameter", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": 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 d [...]
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 cons [...]
+    "transferExchange": { "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 f [...]
+    "useMessageIDAsCorrelationID": { "kind": "parameter", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID [...]
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional  [...]
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in [...]
+    "errorHandlerLoggingLevel": { "kind": "parameter", "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, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "des [...]
+    "errorHandlerLogStackTrace": { "kind": "parameter", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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  [...]
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": 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": "parameter", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "kind": "parameter", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this  [...]
+    "lazyCreateTransactionManager": { "kind": "parameter", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionMan [...]
+    "transactionManager": { "kind": "parameter", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "kind": "parameter", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "kind": "parameter", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 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." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jmx.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jmx.json
new file mode 100644
index 0000000..ec48be5
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jmx.json
@@ -0,0 +1,60 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jmx",
+    "title": "JMX",
+    "description": "Receive JMX notifications.",
+    "deprecated": false,
+    "firstVersion": "2.6.0",
+    "label": "monitoring",
+    "javaType": "org.apache.camel.component.jmx.JMXComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jmx",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jmx",
+    "extendsScheme": "",
+    "syntax": "jmx:serverURL",
+    "async": false,
+    "api": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "serverURL": { "kind": "path", "displayName": "Server URL", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Server url comes from the remaining endpoint. Use platform to connect to local JVM." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "format": { "kind": "parameter", "displayName": "Format", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "xml", "raw" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "xml", "description": "Format for the message body. Either xml or raw. If xml, the notification is serialized to xml. If raw, then the raw java object is set as the body." },
+    "granularityPeriod": { "kind": "parameter", "displayName": "Granularity Period", "group": "consumer", "label": "", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "description": "The frequency to poll the bean to check the monitor (monitor types only)." },
+    "monitorType": { "kind": "parameter", "displayName": "Monitor Type", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "counter", "gauge", "string" ], "deprecated": false, "autowired": false, "secret": false, "description": "The type of monitor to create. One of string, gauge, counter (monitor types only)." },
+    "objectDomain": { "kind": "parameter", "displayName": "Object Domain", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The domain for the mbean you're connecting to" },
+    "objectName": { "kind": "parameter", "displayName": "Object Name", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The name key for the mbean you're connecting to. This value is mutually exclusive with the object properties that get passed." },
+    "observedAttribute": { "kind": "parameter", "displayName": "Observed Attribute", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The attribute to observe for the monitor bean or consumer." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "executorService": { "kind": "parameter", "displayName": "Executor Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.concurrent.ExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom shared thread pool for the consumers. By default each consume has their own thread-pool to process and route notifications." },
+    "handback": { "kind": "parameter", "displayName": "Handback", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "description": "Value to handback to the listener when a notification is received. This value will be put in the message header with the key jmx.handback" },
+    "notificationFilter": { "kind": "parameter", "displayName": "Notification Filter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.management.NotificationFilter", "deprecated": false, "autowired": false, "secret": false, "description": "Reference to a bean that implements the NotificationFilter." },
+    "objectProperties": { "kind": "parameter", "displayName": "Object Properties", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "prefix": "key.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Properties for the object name. These values will be used if the objectName param is not set" },
+    "reconnectDelay": { "kind": "parameter", "displayName": "Reconnect Delay", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "description": "The number of seconds to wait before attempting to retry establishment of the initial connection or attempt to reconnect a lost connection" },
+    "reconnectOnConnectionFailure": { "kind": "parameter", "displayName": "Reconnect On Connection Failure", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true the consumer will attempt to reconnect to the JMX server when any connection failure occurs. The consumer will attempt to re-establish the JMX connection every 'x' seconds unt [...]
+    "testConnectionOnStartup": { "kind": "parameter", "displayName": "Test Connection On Startup", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If true the consumer will throw an exception if unable to establish the JMX connection upon startup. If false, the consumer will attempt to establish the JMX connection every 'x' seconds until t [...]
+    "initThreshold": { "kind": "parameter", "displayName": "Init Threshold", "group": "counter", "label": "counter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Initial threshold for the monitor. The value must exceed this before notifications are fired (counter monitor only)." },
+    "modulus": { "kind": "parameter", "displayName": "Modulus", "group": "counter", "label": "counter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The value at which the counter is reset to zero (counter monitor only)." },
+    "offset": { "kind": "parameter", "displayName": "Offset", "group": "counter", "label": "counter", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The amount to increment the threshold after it's been exceeded (counter monitor only)." },
+    "differenceMode": { "kind": "parameter", "displayName": "Difference Mode", "group": "gauge", "label": "counter,gauge", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, then the value reported in the notification is the difference from the threshold as opposed to the value itself (counter and gauge monitor only)." },
+    "notifyHigh": { "kind": "parameter", "displayName": "Notify High", "group": "gauge", "label": "gauge", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the gauge will fire a notification when the high threshold is exceeded (gauge monitor only)." },
+    "notifyLow": { "kind": "parameter", "displayName": "Notify Low", "group": "gauge", "label": "gauge", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the gauge will fire a notification when the low threshold is exceeded (gauge monitor only)." },
+    "thresholdHigh": { "kind": "parameter", "displayName": "Threshold High", "group": "gauge", "label": "gauge", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "description": "Value for the gauge's high threshold (gauge monitor only)." },
+    "thresholdLow": { "kind": "parameter", "displayName": "Threshold Low", "group": "gauge", "label": "gauge", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "description": "Value for the gauge's low threshold (gauge monitor only)." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Credentials for making a remote connection" },
+    "user": { "kind": "parameter", "displayName": "User", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Credentials for making a remote connection" },
+    "notifyDiffer": { "kind": "parameter", "displayName": "Notify Differ", "group": "string", "label": "consumer,string", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, will fire a notification when the string attribute differs from the string to compare (string monitor or consumer). By default the consumer will notify match if observed attribute and string to compare h [...]
+    "notifyMatch": { "kind": "parameter", "displayName": "Notify Match", "group": "string", "label": "consumer,string", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, will fire a notification when the string attribute matches the string to compare (string monitor or consumer). By default the consumer will notify match if observed attribute and string to compare has been [...]
+    "stringToCompare": { "kind": "parameter", "displayName": "String To Compare", "group": "string", "label": "consumer,string", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Value for attribute to compare (string monitor or consumer). By default the consumer will notify match if observed attribute and string to compare has been configured." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jolt.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jolt.json
new file mode 100644
index 0000000..b0e4628
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jolt.json
@@ -0,0 +1,40 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jolt",
+    "title": "JOLT",
+    "description": "JSON to JSON transformation using JOLT.",
+    "deprecated": false,
+    "firstVersion": "2.16.0",
+    "label": "transformation",
+    "javaType": "org.apache.camel.component.jolt.JoltComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jolt",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jolt",
+    "extendsScheme": "",
+    "syntax": "jolt:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "allowTemplateFromHeader": { "kind": "property", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulne [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "transform": { "kind": "property", "displayName": "Transform", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.bazaarvoice.jolt.Transform", "deprecated": false, "autowired": false, "secret": false, "description": "Explicitly sets the Transform to use. If not set a Transform specified by the transformDsl will be created" }
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "allowTemplateFromHeader": { "kind": "parameter", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vuln [...]
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to use resource content cache or not" },
+    "inputType": { "kind": "parameter", "displayName": "Input Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jolt.JoltInputOutputType", "enum": [ "Hydrated", "JsonString" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Hydrated", "description": "Specifies if the input is hydrated JSON or a JSON String." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "outputType": { "kind": "parameter", "displayName": "Output Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jolt.JoltInputOutputType", "enum": [ "Hydrated", "JsonString" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Hydrated", "description": "Specifies if the output should be hydrated JSON or a JSON String." },
+    "transformDsl": { "kind": "parameter", "displayName": "Transform Dsl", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jolt.JoltTransformType", "enum": [ "Chainr", "Shiftr", "Defaultr", "Removr", "Sortr" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Chainr", "description": "Specifies the Transform DSL of the endpoint resource. If none is specified Chainr will be used." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jooq.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jooq.json
new file mode 100644
index 0000000..64c817c
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jooq.json
@@ -0,0 +1,61 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jooq",
+    "title": "JOOQ",
+    "description": "Store and retrieve Java objects from an SQL database using JOOQ.",
+    "deprecated": false,
+    "firstVersion": "3.0.0",
+    "label": "database,sql",
+    "javaType": "org.apache.camel.component.jooq.JooqComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jooq",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jooq",
+    "extendsScheme": "",
+    "syntax": "jooq:entityType",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jooq.JooqConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration (database connection, database entity type, etc.)" },
+    "databaseConfiguration": { "kind": "property", "displayName": "Database Configuration", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.jooq.Configuration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "To use a specific database configuration" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "consumeDelete": { "kind": "property", "displayName": "Consume Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "Delete entity after it is consumed" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jooq.JooqOperation", "enum": [ "EXECUTE", "FETCH", "NONE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "NONE", "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "Type of operation to execute on q [...]
+    "query": { "kind": "property", "displayName": "Query", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "To execute plain SQL query" },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "entityType": { "kind": "path", "displayName": "Entity Type", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.Class<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "JOOQ entity class" },
+    "databaseConfiguration": { "kind": "parameter", "displayName": "Database Configuration", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.jooq.Configuration", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "To use a specific database configuration" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "consumeDelete": { "kind": "parameter", "displayName": "Consume Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "Delete entity after it is consumed" },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jooq.JooqOperation", "enum": [ "EXECUTE", "FETCH", "NONE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "NONE", "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "Type of operation to execute on  [...]
+    "query": { "kind": "parameter", "displayName": "Query", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jooq.JooqConfiguration", "configurationField": "configuration", "description": "To execute plain SQL query" },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jpa.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jpa.json
new file mode 100644
index 0000000..42d52ce
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jpa.json
@@ -0,0 +1,81 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jpa",
+    "title": "JPA",
+    "description": "Store and retrieve Java objects from databases using Java Persistence API (JPA).",
+    "deprecated": false,
+    "firstVersion": "1.0.0",
+    "label": "database,sql",
+    "javaType": "org.apache.camel.component.jpa.JpaComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jpa",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jpa",
+    "extendsScheme": "",
+    "syntax": "jpa:entityType",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "aliases": { "kind": "property", "displayName": "Aliases", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Class<java.lang.Object>>", "deprecated": false, "autowired": false, "secret": false, "description": "Maps an alias to a JPA entity class. The alias can then be used in the endpoint URI (instead of the fully qualified class name)." },
+    "entityManagerFactory": { "kind": "property", "displayName": "Entity Manager Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "javax.persistence.EntityManagerFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the EntityManagerFactory. This is strongly recommended to configure." },
+    "joinTransaction": { "kind": "property", "displayName": "Join Transaction", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "The camel-jpa component will join transaction by default. You can use this option to turn this off, for example if you use LOCAL_RESOURCE and join transaction doesn't work with your JPA provider. This option can also be set [...]
+    "sharedEntityManager": { "kind": "property", "displayName": "Shared Entity Manager", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to use Spring's SharedEntityManager for the consumer\/producer. Note in most cases joinTransaction should be set to false as this is not an EXTENDED EntityManager." },
+    "transactionManager": { "kind": "property", "displayName": "Transaction Manager", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "description": "To use the PlatformTransactionManager for managing transactions." },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "entityType": { "kind": "path", "displayName": "Entity Type", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.Class<java.lang.Object>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Entity class name" },
+    "joinTransaction": { "kind": "parameter", "displayName": "Join Transaction", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "The camel-jpa component will join transaction by default. You can use this option to turn this off, for example if you use LOCAL_RESOURCE and join transaction doesn't work with your JPA provider. This option can also be se [...]
+    "maximumResults": { "kind": "parameter", "displayName": "Maximum Results", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Set the maximum number of results to retrieve on the Query." },
+    "namedQuery": { "kind": "parameter", "displayName": "Named Query", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a named query." },
+    "nativeQuery": { "kind": "parameter", "displayName": "Native Query", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom native query. You may want to use the option resultClass also when using native queries." },
+    "persistenceUnit": { "kind": "parameter", "displayName": "Persistence Unit", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "camel", "description": "The JPA persistence unit used by default." },
+    "query": { "kind": "parameter", "displayName": "Query", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom query." },
+    "resultClass": { "kind": "parameter", "displayName": "Result Class", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.Class<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "description": "Defines the type of the returned payload (we will call entityManager.createNativeQuery(nativeQuery, resultClass) instead of entityManager.createNativeQuery(nativeQuery)). Without this option, we will return an object array. Onl [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "consumeDelete": { "kind": "parameter", "displayName": "Consume Delete", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If true, the entity is deleted after it is consumed; if false, the entity is not deleted." },
+    "consumeLockEntity": { "kind": "parameter", "displayName": "Consume Lock Entity", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Specifies whether or not to set an exclusive lock on each entity bean while processing the results from polling." },
+    "deleteHandler": { "kind": "parameter", "displayName": "Delete Handler", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jpa.DeleteHandler<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom DeleteHandler to delete the row after the consumer is done processing the exchange" },
+    "lockModeType": { "kind": "parameter", "displayName": "Lock Mode Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "javax.persistence.LockModeType", "enum": [ "READ", "WRITE", "OPTIMISTIC", "OPTIMISTIC_FORCE_INCREMENT", "PESSIMISTIC_READ", "PESSIMISTIC_WRITE", "PESSIMISTIC_FORCE_INCREMENT", "NONE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PESSIMISTIC_WRITE", "description": "To configure the lock mode  [...]
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "An integer value to define the maximum number of messages to gather per poll. By default, no maximum is set. Can be used to avoid polling many thousands of messages when starting up the server. Set a value of 0 or negative to disa [...]
+    "preDeleteHandler": { "kind": "parameter", "displayName": "Pre Delete Handler", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jpa.DeleteHandler<java.lang.Object>", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom Pre-DeleteHandler to delete the row after the consumer has read the entity." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "skipLockedEntity": { "kind": "parameter", "displayName": "Skip Locked Entity", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To configure whether to use NOWAIT on lock and silently skip the entity." },
+    "transacted": { "kind": "parameter", "displayName": "Transacted", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to run the consumer in transacted mode, by which all messages will either commit or rollback, when the entire batch has been processed. The default behavior (false) is to commit all the previously successfully proc [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "parameters": { "kind": "parameter", "displayName": "Parameters", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "parameters.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "This key\/value mapping is used for building the query parameters. It is expected to be of the generic type java.util.Map where the keys ar [...]
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "findEntity": { "kind": "parameter", "displayName": "Find Entity", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled then the producer will find a single entity by using the message body as key and entityType as the class type. This can be used instead of a query to find a single entity." },
+    "flushOnSend": { "kind": "parameter", "displayName": "Flush On Send", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Flushes the EntityManager after the entity bean has been persisted." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "remove": { "kind": "parameter", "displayName": "Remove", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to use entityManager.remove(entity)." },
+    "useExecuteUpdate": { "kind": "parameter", "displayName": "Use Execute Update", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "description": "To configure whether to use executeUpdate() when producer executes a query. When you use INSERT, UPDATE or DELETE statement as a named query, you need to specify this option to 'true'." },
+    "usePersist": { "kind": "parameter", "displayName": "Use Persist", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Indicates to use entityManager.persist(entity) instead of entityManager.merge(entity). Note: entityManager.persist(entity) doesn't work for detached entities (where the EntityManager has to execute an UPDATE instead of an [...]
+    "usePassedInEntityManager": { "kind": "parameter", "displayName": "Use Passed In Entity Manager", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If set to true, then Camel will use the EntityManager from the header JpaConstants.ENTITY_MANAGER instead of the configured entity manager on the component\/endpoint. Thi [...]
+    "entityManagerProperties": { "kind": "parameter", "displayName": "Entity Manager Properties", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "emf.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Additional properties for the entity manager to use." },
+    "sharedEntityManager": { "kind": "parameter", "displayName": "Shared Entity Manager", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to use Spring's SharedEntityManager for the consumer\/producer. Note in most cases joinTransaction should be set to false as this is not an EXTENDED EntityManager." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jslt.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jslt.json
new file mode 100644
index 0000000..5fbcf31
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jslt.json
@@ -0,0 +1,41 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jslt",
+    "title": "JSLT",
+    "description": "Query or transform JSON payloads using an JSLT.",
+    "deprecated": false,
+    "firstVersion": "3.1.0",
+    "label": "transformation",
+    "javaType": "org.apache.camel.component.jslt.JsltComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jslt",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jslt",
+    "extendsScheme": "",
+    "syntax": "jslt:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "allowTemplateFromHeader": { "kind": "property", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulne [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "functions": { "kind": "property", "displayName": "Functions", "group": "advanced", "label": "advanced", "required": false, "type": "array", "javaType": "java.util.Collection<com.schibsted.spt.data.jslt.Function>", "deprecated": false, "autowired": false, "secret": false, "description": "JSLT can be extended by plugging in functions written in Java." },
+    "objectFilter": { "kind": "property", "displayName": "Object Filter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.schibsted.spt.data.jslt.filters.JsonFilter", "deprecated": false, "autowired": false, "secret": false, "description": "JSLT can be extended by plugging in a custom jslt object filter" }
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "allowTemplateFromHeader": { "kind": "parameter", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vuln [...]
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to use resource content cache or not" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "mapBigDecimalAsFloats": { "kind": "parameter", "displayName": "Map Big Decimal As Floats", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, the mapper will use the USE_BIG_DECIMAL_FOR_FLOATS in serialization features" },
+    "objectMapper": { "kind": "parameter", "displayName": "Object Mapper", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.fasterxml.jackson.databind.ObjectMapper", "deprecated": false, "autowired": false, "secret": false, "description": "Setting a custom JSON Object Mapper to be used" },
+    "prettyPrint": { "kind": "parameter", "displayName": "Pretty Print", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If true, JSON in output message is pretty printed." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/json-validator.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/json-validator.json
new file mode 100644
index 0000000..11b9572
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/json-validator.json
@@ -0,0 +1,39 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "json-validator",
+    "title": "JSON Schema Validator",
+    "description": "Validate JSON payloads using NetworkNT JSON Schema.",
+    "deprecated": false,
+    "firstVersion": "2.20.0",
+    "label": "validation",
+    "javaType": "org.apache.camel.component.jsonvalidator.JsonValidatorComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-json-validator",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "json-validator",
+    "extendsScheme": "",
+    "syntax": "json-validator:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to use resource content cache or not" },
+    "failOnNullBody": { "kind": "parameter", "displayName": "Fail On Null Body", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to fail if no body exists." },
+    "failOnNullHeader": { "kind": "parameter", "displayName": "Fail On Null Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to fail if no header exists when validating against a header." },
+    "headerName": { "kind": "parameter", "displayName": "Header Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To validate against a header instead of the message body." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "errorHandler": { "kind": "parameter", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jsonvalidator.JsonValidatorErrorHandler", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom ValidatorErrorHandler. The default error handler captures the errors and throws an exception." },
+    "uriSchemaLoader": { "kind": "parameter", "displayName": "Uri Schema Loader", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jsonvalidator.JsonUriSchemaLoader", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom schema loader allowing for adding custom format validation. The default implementation will create a schema loader that tries to determine the schema version from th [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jsonata.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jsonata.json
new file mode 100644
index 0000000..d4c89ab
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jsonata.json
@@ -0,0 +1,36 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jsonata",
+    "title": "JSONata",
+    "description": "Transforms JSON payload using JSONata transformation.",
+    "deprecated": false,
+    "firstVersion": "3.5.0",
+    "label": "transformation",
+    "javaType": "org.apache.camel.component.jsonata.JsonataComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jsonata",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jsonata",
+    "extendsScheme": "",
+    "syntax": "jsonata:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to use resource content cache or not" },
+    "inputType": { "kind": "parameter", "displayName": "Input Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jsonata.JsonataInputOutputType", "enum": [ "Jackson", "JsonString" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Jackson", "description": "Specifies if the input should be Jackson JsonNode or a JSON String." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "outputType": { "kind": "parameter", "displayName": "Output Type", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jsonata.JsonataInputOutputType", "enum": [ "Jackson", "JsonString" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Jackson", "description": "Specifies if the output should be Jackson JsonNode or a JSON String." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jt400.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jt400.json
new file mode 100644
index 0000000..05879eb
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/jt400.json
@@ -0,0 +1,70 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "jt400",
+    "title": "JT400",
+    "description": "Exchanges messages with an IBM i system using data queues, message queues, or program call. IBM i is the replacement for AS\/400 and iSeries servers.",
+    "deprecated": false,
+    "firstVersion": "1.5.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.jt400.Jt400Component",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-jt400",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "jt400",
+    "extendsScheme": "",
+    "syntax": "jt400:userID:password\/systemName\/objectPath.type",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "connectionPool": { "kind": "property", "displayName": "Connection Pool", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.ibm.as400.access.AS400ConnectionPool", "deprecated": false, "autowired": false, "secret": false, "description": "Default connection pool used by the component. Note that this pool is lazily initialized. This is because in a scenario where the user always provides a pool, it would be wasteful for Camel to initialize a [...]
+  },
+  "properties": {
+    "userID": { "kind": "path", "displayName": "User ID", "group": "security", "label": "security", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Returns the ID of the IBM i user." },
+    "password": { "kind": "path", "displayName": "Password", "group": "security", "label": "security", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Returns the password of the IBM i user." },
+    "systemName": { "kind": "path", "displayName": "System Name", "group": "security", "label": "security", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Returns the name of the IBM i system." },
+    "objectPath": { "kind": "path", "displayName": "Object Path", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Returns the fully qualified integrated file system path name of the target object of this endpoint." },
+    "type": { "kind": "path", "displayName": "Type", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.jt400.Jt400Type", "enum": [ "DTAQ", "PGM", "SRVPGM", "MSGQ" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Whether to work with data queues or remote program call" },
+    "ccsid": { "kind": "parameter", "displayName": "Ccsid", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Sets the CCSID to use for the connection with the IBM i system." },
+    "format": { "kind": "parameter", "displayName": "Format", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jt400.Jt400Configuration.Format", "enum": [ "text", "binary" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "text", "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Sets the data format for sending messages." },
+    "guiAvailable": { "kind": "parameter", "displayName": "Gui Available", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Sets whether IBM i prompting is enabled in the environment running Camel." },
+    "keyed": { "kind": "parameter", "displayName": "Keyed", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Whether to use keyed or non-keyed data queues." },
+    "searchKey": { "kind": "parameter", "displayName": "Search Key", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Search key for keyed data queues." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "messageAction": { "kind": "parameter", "displayName": "Message Action", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jt400.Jt400Configuration.MessageAction", "enum": [ "OLD", "REMOVE", "SAME" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "OLD", "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Actio [...]
+    "readTimeout": { "kind": "parameter", "displayName": "Read Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Timeout in millis the consumer will wait while trying to read a new message of the data queue." },
+    "searchType": { "kind": "parameter", "displayName": "Search Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jt400.Jt400Configuration.SearchType", "enum": [ "EQ", "NE", "LT", "LE", "GT", "GE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "EQ", "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Sear [...]
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "sendingReply": { "kind": "parameter", "displayName": "Sending Reply", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "If true, the consumer endpoint will set the Jt400Constants.MESSAGE_REPLYTO_KEY header of the camel mes [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "outputFieldsIdxArray": { "kind": "parameter", "displayName": "Output Fields Idx Array", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Integer[]", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Specifies which fields (program parameters) are output parameters." },
+    "outputFieldsLengthArray": { "kind": "parameter", "displayName": "Output Fields Length Array", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "java.lang.Integer[]", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Specifies the fields (program parameters) length as in the IBM i program definition." },
+    "procedureName": { "kind": "parameter", "displayName": "Procedure Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Procedure name from a service program to call" },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "secured": { "kind": "parameter", "displayName": "Secured", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jt400.Jt400Configuration", "configurationField": "configuration", "description": "Whether connections to IBM i are secured with SSL." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kafka.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kafka.json
new file mode 100644
index 0000000..5cd0250
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kafka.json
@@ -0,0 +1,235 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "kafka",
+    "title": "Kafka",
+    "description": "Sent and receive messages to\/from an Apache Kafka broker.",
+    "deprecated": false,
+    "firstVersion": "2.13.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.kafka.KafkaComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-kafka",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "kafka",
+    "extendsScheme": "",
+    "syntax": "kafka:topic",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Sets additional p [...]
+    "brokers": { "kind": "property", "displayName": "Brokers", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "URL of the Kafka brokers to use. The format is host1:port1,host2:port2, and the list can be a subset of brokers or a VIP pointing to [...]
+    "clientId": { "kind": "property", "displayName": "Client Id", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The client id is a user-specified string sent in each request to help trace calls. It should logically identify the application m [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.KafkaConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Allows to pre-configure the Kafka component with common options that the endpoints will reuse." },
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "reconnectBackoffMaxMs": { "kind": "property", "displayName": "Reconnect Backoff Max Ms", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in milliseconds to wait when reconnecting to a b [...]
+    "shutdownTimeout": { "kind": "property", "displayName": "Shutdown Timeout", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Timeout in milliseconds to wait gracefully for the consumer or producer to shutdown and terminate its wo [...]
+    "allowManualCommit": { "kind": "property", "displayName": "Allow Manual Commit", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether to allow doing manual commits via KafkaManualCommit. If this option is enabled then [...]
+    "autoCommitEnable": { "kind": "property", "displayName": "Auto Commit Enable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "If true, periodically commit to ZooKeeper the offset of messages already fetched b [...]
+    "autoCommitIntervalMs": { "kind": "property", "displayName": "Auto Commit Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The frequency in ms that the consumer offsets are committed to zookeeper." },
+    "autoCommitOnStop": { "kind": "property", "displayName": "Auto Commit On Stop", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "sync", "async", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "sync", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether to perform an explicit auto commit whe [...]
+    "autoOffsetReset": { "kind": "property", "displayName": "Auto Offset Reset", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "latest", "earliest", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "latest", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "What to do when there is no initial offset [...]
+    "breakOnFirstError": { "kind": "property", "displayName": "Break On First Error", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This options controls what happens when a consumer is processing an exchange and it fails. [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "checkCrcs": { "kind": "property", "displayName": "Check Crcs", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Automatically check the CRC32 of the records consumed. This ensures no on-the-wire or on-disk cor [...]
+    "commitTimeoutMs": { "kind": "property", "displayName": "Commit Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum time, in milliseconds, that the code will wait for a synchronous commit to [...]
+    "consumerRequestTimeoutMs": { "kind": "property", "displayName": "Consumer Request Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "40000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls the maximum amount of time the client [...]
+    "consumersCount": { "kind": "property", "displayName": "Consumers Count", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of consumers that connect to kafka server. Each consumer is run on a separate thread, that retr [...]
+    "fetchMaxBytes": { "kind": "property", "displayName": "Fetch Max Bytes", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "52428800", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of data the server should return for a fetch request This is not  [...]
+    "fetchMinBytes": { "kind": "property", "displayName": "Fetch Min Bytes", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The minimum amount of data the server should return for a fetch request. If insufficient da [...]
+    "fetchWaitMaxMs": { "kind": "property", "displayName": "Fetch Wait Max Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time the server will block before answering the fetch request if [...]
+    "groupId": { "kind": "property", "displayName": "Group Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A string that uniquely identifies the group of consumer processes to which this consumer belongs. By setting the same group id  [...]
+    "groupInstanceId": { "kind": "property", "displayName": "Group Instance Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A unique identifier of the consumer instance provided by the end user. Only non-empty strings are permitted. I [...]
+    "headerDeserializer": { "kind": "property", "displayName": "Header Deserializer", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom KafkaHeaderDeserializer to deserialize kafk [...]
+    "heartbeatIntervalMs": { "kind": "property", "displayName": "Heartbeat Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The expected time between heartbeats to the consumer coordinator when using  [...]
+    "keyDeserializer": { "kind": "property", "displayName": "Key Deserializer", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Deserializer class for key that imp [...]
+    "maxPartitionFetchBytes": { "kind": "property", "displayName": "Max Partition Fetch Bytes", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1048576", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of data per-partition the server will return. T [...]
+    "maxPollIntervalMs": { "kind": "property", "displayName": "Max Poll Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum delay between invocations of poll() when using consumer group management. This places an uppe [...]
+    "maxPollRecords": { "kind": "property", "displayName": "Max Poll Records", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of records returned in a single call to poll()" },
+    "offsetRepository": { "kind": "property", "displayName": "Offset Repository", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.spi.StateRepository<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The offset repository to use in order to locally stor [...]
+    "partitionAssignor": { "kind": "property", "displayName": "Partition Assignor", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.consumer.RangeAssignor", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The class name of the partition assignme [...]
+    "pollOnError": { "kind": "property", "displayName": "Poll On Error", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.PollOnError", "enum": [ "DISCARD", "ERROR_HANDLER", "RECONNECT", "RETRY", "STOP" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ERROR_HANDLER", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "de [...]
+    "pollTimeoutMs": { "kind": "property", "displayName": "Poll Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The timeout used when polling the KafkaConsumer." },
+    "resumeStrategy": { "kind": "property", "displayName": "Resume Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This option allows the user to set a custom resume s [...]
+    "seekTo": { "kind": "property", "displayName": "Seek To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "beginning", "end" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Set if KafkaConsumer will read from beginning or end on startup: beginning : read from beginning  [...]
+    "sessionTimeoutMs": { "kind": "property", "displayName": "Session Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The timeout used to detect failures when using Kafka's group management facilities." },
+    "specificAvroReader": { "kind": "property", "displayName": "Specific Avro Reader", "group": "consumer", "label": "confluent,consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This enables the use of a specific Avro reader for use with the Confluent Platf [...]
+    "topicIsPattern": { "kind": "property", "displayName": "Topic Is Pattern", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic num [...]
+    "valueDeserializer": { "kind": "property", "displayName": "Value Deserializer", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Deserializer class for value th [...]
+    "kafkaManualCommitFactory": { "kind": "property", "displayName": "Kafka Manual Commit Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.KafkaManualCommitFactory", "deprecated": false, "autowired": true, "secret": false, "description": "Factory to use for creating KafkaManualCommit instances. This allows to plugin a custom factory to create custom KafkaManualCommit instances in cas [...]
+    "pollExceptionStrategy": { "kind": "property", "displayName": "Poll Exception Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.PollExceptionStrategy", "deprecated": false, "autowired": true, "secret": false, "description": "To use a custom strategy with the consumer to control how to handle exceptions thrown from the Kafka broker while pooling messages." },
+    "bufferMemorySize": { "kind": "property", "displayName": "Buffer Memory Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "33554432", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The total bytes of memory the producer can use to buffer records waiting to be [...]
+    "compressionCodec": { "kind": "property", "displayName": "Compression Codec", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "none", "gzip", "snappy", "lz4" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This parameter allows you to specify the [...]
+    "connectionMaxIdleMs": { "kind": "property", "displayName": "Connection Max Idle Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "540000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Close idle connections after the number of milliseconds specified by this [...]
+    "deliveryTimeoutMs": { "kind": "property", "displayName": "Delivery Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "120000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "An upper bound on the time to report success or failure after a call to send() [...]
+    "enableIdempotence": { "kind": "property", "displayName": "Enable Idempotence", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "If set to 'true' the producer will ensure that exactly one copy of each message is written i [...]
+    "headerSerializer": { "kind": "property", "displayName": "Header Serializer", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.serde.KafkaHeaderSerializer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom KafkaHeaderSerializer to serialize kafka headers  [...]
+    "key": { "kind": "property", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The record key (or null if no key is specified). If this option has been configured then it take precedence over header KafkaConstants#KEY" },
+    "keySerializer": { "kind": "property", "displayName": "Key Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The serializer class for keys (defaults t [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "lingerMs": { "kind": "property", "displayName": "Linger Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The producer groups together any records that arrive in between request transmissions into a single ba [...]
+    "maxBlockMs": { "kind": "property", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long sending to kafka will block. These methods can be blocked [...]
+    "maxInFlightRequest": { "kind": "property", "displayName": "Max In Flight Request", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unacknowledged requests the client will send on a single c [...]
+    "maxRequestSize": { "kind": "property", "displayName": "Max Request Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1048576", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum size of a request. This is also effectively a cap on the maximum record [...]
+    "metadataMaxAgeMs": { "kind": "property", "displayName": "Metadata Max Age Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "300000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The period of time in milliseconds after which we force a refresh of metadata e [...]
+    "metricReporters": { "kind": "property", "displayName": "Metric Reporters", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A list of classes to use as metrics reporters. Implementing the MetricReporter interface allows plugging in cla [...]
+    "metricsSampleWindowMs": { "kind": "property", "displayName": "Metrics Sample Window Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
+    "noOfMetricsSample": { "kind": "property", "displayName": "No Of Metrics Sample", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
+    "partitioner": { "kind": "property", "displayName": "Partitioner", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The partitioner class for partitioning [...]
+    "partitionKey": { "kind": "property", "displayName": "Partition Key", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The partition to which the record will be sent (or null if no partition was specified). If this option has been con [...]
+    "producerBatchSize": { "kind": "property", "displayName": "Producer Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "16384", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The producer will attempt to batch records together into fewer requests wheneve [...]
+    "queueBufferingMaxMessages": { "kind": "property", "displayName": "Queue Buffering Max Messages", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unsent messages that can be queued up th [...]
+    "receiveBufferBytes": { "kind": "property", "displayName": "Receive Buffer Bytes", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "65536", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data." },
+    "reconnectBackoffMs": { "kind": "property", "displayName": "Reconnect Backoff Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "50", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The amount of time to wait before attempting to reconnect to a given host. This  [...]
+    "recordMetadata": { "kind": "property", "displayName": "Record Metadata", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether the producer should store the RecordMetadata results from sending to Kafka. The results are [...]
+    "requestRequiredAcks": { "kind": "property", "displayName": "Request Required Acks", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "-1", "0", "1", "all" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of acknowledgments the producer req [...]
+    "requestTimeoutMs": { "kind": "property", "displayName": "Request Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The amount of time the broker will wait trying to meet the request.required.acks  [...]
+    "retries": { "kind": "property", "displayName": "Retries", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a pote [...]
+    "retryBackoffMs": { "kind": "property", "displayName": "Retry Backoff Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 n [...]
+    "sendBufferBytes": { "kind": "property", "displayName": "Send Buffer Bytes", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "131072", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Socket write buffer size" },
+    "valueSerializer": { "kind": "property", "displayName": "Value Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.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, "autowired": 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 mess [...]
+    "workerPoolCoreSize": { "kind": "property", "displayName": "Worker Pool Core Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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  [...]
+    "workerPoolMaxSize": { "kind": "property", "displayName": "Worker Pool Max Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "kafkaClientFactory": { "kind": "property", "displayName": "Kafka Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.KafkaClientFactory", "deprecated": false, "autowired": true, "secret": false, "description": "Factory to use for creating org.apache.kafka.clients.consumer.KafkaConsumer and org.apache.kafka.clients.producer.KafkaProducer instances. This allows to configure a custom factory to cr [...]
+    "synchronous": { "kind": "property", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "schemaRegistryURL": { "kind": "property", "displayName": "Schema Registry URL", "group": "confluent", "label": "confluent", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "URL of the Confluent Platform schema registry servers to use. The format is host1:port1,host2:port2. Thi [...]
+    "interceptorClasses": { "kind": "property", "displayName": "Interceptor Classes", "group": "monitoring", "label": "common,monitoring", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Sets interceptors for producer or consumers. Producer interceptors have to be classes implemen [...]
+    "kerberosBeforeReloginMinTime": { "kind": "property", "displayName": "Kerberos Before Relogin Min Time", "group": "security", "label": "common,security", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Login thread sleep time between refresh attempts." },
+    "kerberosInitCmd": { "kind": "property", "displayName": "Kerberos Init Cmd", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "\/usr\/bin\/kinit", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Kerberos kinit command path. Default is \/usr\/bin\/kinit" },
+    "kerberosPrincipalToLocalRules": { "kind": "property", "displayName": "Kerberos Principal To Local Rules", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEFAULT", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A list of rules for mapping from principal nam [...]
+    "kerberosRenewJitter": { "kind": "property", "displayName": "Kerberos Renew Jitter", "group": "security", "label": "common,security", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0.05", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Percentage of random jitter added to the renewal time." },
+    "kerberosRenewWindowFactor": { "kind": "property", "displayName": "Kerberos Renew Window Factor", "group": "security", "label": "common,security", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0.8", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Login thread will sleep until the specified window factor o [...]
+    "saslJaasConfig": { "kind": "property", "displayName": "Sasl Jaas Config", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Expose the kafka sasl.jaas.config parameter Example: org.apache.kafka.common.security.plain.PlainLoginModu [...]
+    "saslKerberosServiceName": { "kind": "property", "displayName": "Sasl Kerberos Service Name", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's  [...]
+    "saslMechanism": { "kind": "property", "displayName": "Sasl Mechanism", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "GSSAPI", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The Simple Authentication and Security Layer (SASL) Mechanism used. For the valid  [...]
+    "securityProtocol": { "kind": "property", "displayName": "Security Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PLAINTEXT", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT and  [...]
+    "sslCipherSuites": { "kind": "property", "displayName": "Ssl Cipher Suites", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchang [...]
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "common,security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "SSL configuration using a Camel SSLContextParameters object [...]
+    "sslEnabledProtocols": { "kind": "property", "displayName": "Ssl Enabled Protocols", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by de [...]
+    "sslEndpointAlgorithm": { "kind": "property", "displayName": "Ssl Endpoint Algorithm", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "https", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The endpoint identification algorithm to validate server hostname us [...]
+    "sslKeymanagerAlgorithm": { "kind": "property", "displayName": "Ssl Keymanager Algorithm", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SunX509", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by key manager factory for SSL connections. [...]
+    "sslKeyPassword": { "kind": "property", "displayName": "Ssl Key Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file. This is optional for client." },
+    "sslKeystoreLocation": { "kind": "property", "displayName": "Ssl Keystore Location", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The location of the key store file. This is optional for client and can be used for two-way a [...]
+    "sslKeystorePassword": { "kind": "property", "displayName": "Ssl Keystore Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file.This is optional for client and only needed if ssl.k [...]
+    "sslKeystoreType": { "kind": "property", "displayName": "Ssl Keystore Type", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "JKS", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The file format of the key store file. This is optional for client. Default valu [...]
+    "sslProtocol": { "kind": "property", "displayName": "Ssl Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "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. Allowed  [...]
+    "sslProvider": { "kind": "property", "displayName": "Ssl Provider", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The name of the security provider used for SSL connections. Default value is the default security provider of th [...]
+    "sslTrustmanagerAlgorithm": { "kind": "property", "displayName": "Ssl Trustmanager Algorithm", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PKIX", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by trust manager factory for SSL connectio [...]
+    "sslTruststoreLocation": { "kind": "property", "displayName": "Ssl Truststore Location", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
+    "sslTruststorePassword": { "kind": "property", "displayName": "Ssl Truststore Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file." },
+    "sslTruststoreType": { "kind": "property", "displayName": "Ssl Truststore Type", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "JKS", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file. Default value is JKS." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "topic": { "kind": "path", "displayName": "Topic", "group": "common", "label": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Name of the topic to use. On the consumer you can use comma to separate multiple topics. A producer can only send a me [...]
+    "additionalProperties": { "kind": "parameter", "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, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Sets additional  [...]
+    "brokers": { "kind": "parameter", "displayName": "Brokers", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "URL of the Kafka brokers to use. The format is host1:port1,host2:port2, and the list can be a subset of brokers or a VIP pointing t [...]
+    "clientId": { "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The client id is a user-specified string sent in each request to help trace calls. It should logically identify the application  [...]
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "reconnectBackoffMaxMs": { "kind": "parameter", "displayName": "Reconnect Backoff Max Ms", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time in milliseconds to wait when reconnecting to a  [...]
+    "shutdownTimeout": { "kind": "parameter", "displayName": "Shutdown Timeout", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Timeout in milliseconds to wait gracefully for the consumer or producer to shutdown and terminate its w [...]
+    "allowManualCommit": { "kind": "parameter", "displayName": "Allow Manual Commit", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether to allow doing manual commits via KafkaManualCommit. If this option is enabled the [...]
+    "autoCommitEnable": { "kind": "parameter", "displayName": "Auto Commit Enable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "If true, periodically commit to ZooKeeper the offset of messages already fetched  [...]
+    "autoCommitIntervalMs": { "kind": "parameter", "displayName": "Auto Commit Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The frequency in ms that the consumer offsets are committed to zookeeper." },
+    "autoCommitOnStop": { "kind": "parameter", "displayName": "Auto Commit On Stop", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "sync", "async", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "sync", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether to perform an explicit auto commit wh [...]
+    "autoOffsetReset": { "kind": "parameter", "displayName": "Auto Offset Reset", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "latest", "earliest", "none" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "latest", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "What to do when there is no initial offse [...]
+    "breakOnFirstError": { "kind": "parameter", "displayName": "Break On First Error", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This options controls what happens when a consumer is processing an exchange and it fails [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "checkCrcs": { "kind": "parameter", "displayName": "Check Crcs", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Automatically check the CRC32 of the records consumed. This ensures no on-the-wire or on-disk co [...]
+    "commitTimeoutMs": { "kind": "parameter", "displayName": "Commit Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum time, in milliseconds, that the code will wait for a synchronous commit t [...]
+    "consumerRequestTimeoutMs": { "kind": "parameter", "displayName": "Consumer Request Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "40000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls the maximum amount of time the clien [...]
+    "consumersCount": { "kind": "parameter", "displayName": "Consumers Count", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of consumers that connect to kafka server. Each consumer is run on a separate thread, that ret [...]
+    "fetchMaxBytes": { "kind": "parameter", "displayName": "Fetch Max Bytes", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "52428800", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of data the server should return for a fetch request This is not [...]
+    "fetchMinBytes": { "kind": "parameter", "displayName": "Fetch Min Bytes", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The minimum amount of data the server should return for a fetch request. If insufficient d [...]
+    "fetchWaitMaxMs": { "kind": "parameter", "displayName": "Fetch Wait Max Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of time the server will block before answering the fetch request i [...]
+    "groupId": { "kind": "parameter", "displayName": "Group Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A string that uniquely identifies the group of consumer processes to which this consumer belongs. By setting the same group id [...]
+    "groupInstanceId": { "kind": "parameter", "displayName": "Group Instance Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A unique identifier of the consumer instance provided by the end user. Only non-empty strings are permitted.  [...]
+    "headerDeserializer": { "kind": "parameter", "displayName": "Header Deserializer", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom KafkaHeaderDeserializer to deserialize kaf [...]
+    "heartbeatIntervalMs": { "kind": "parameter", "displayName": "Heartbeat Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "3000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The expected time between heartbeats to the consumer coordinator when using [...]
+    "keyDeserializer": { "kind": "parameter", "displayName": "Key Deserializer", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Deserializer class for key that im [...]
+    "maxPartitionFetchBytes": { "kind": "parameter", "displayName": "Max Partition Fetch Bytes", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1048576", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum amount of data per-partition the server will return.  [...]
+    "maxPollIntervalMs": { "kind": "parameter", "displayName": "Max Poll Interval Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum delay between invocations of poll() when using consumer group management. This places an upp [...]
+    "maxPollRecords": { "kind": "parameter", "displayName": "Max Poll Records", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of records returned in a single call to poll()" },
+    "offsetRepository": { "kind": "parameter", "displayName": "Offset Repository", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.spi.StateRepository<java.lang.String, java.lang.String>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The offset repository to use in order to locally sto [...]
+    "partitionAssignor": { "kind": "parameter", "displayName": "Partition Assignor", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.consumer.RangeAssignor", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The class name of the partition assignm [...]
+    "pollOnError": { "kind": "parameter", "displayName": "Poll On Error", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.PollOnError", "enum": [ "DISCARD", "ERROR_HANDLER", "RECONNECT", "RETRY", "STOP" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ERROR_HANDLER", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "d [...]
+    "pollTimeoutMs": { "kind": "parameter", "displayName": "Poll Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The timeout used when polling the KafkaConsumer." },
+    "resumeStrategy": { "kind": "parameter", "displayName": "Resume Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This option allows the user to set a custom resume  [...]
+    "seekTo": { "kind": "parameter", "displayName": "Seek To", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "beginning", "end" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Set if KafkaConsumer will read from beginning or end on startup: beginning : read from beginning [...]
+    "sessionTimeoutMs": { "kind": "parameter", "displayName": "Session Timeout Ms", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The timeout used to detect failures when using Kafka's group management facilities." },
+    "specificAvroReader": { "kind": "parameter", "displayName": "Specific Avro Reader", "group": "consumer", "label": "confluent,consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This enables the use of a specific Avro reader for use with the Confluent Plat [...]
+    "topicIsPattern": { "kind": "parameter", "displayName": "Topic Is Pattern", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic nu [...]
+    "valueDeserializer": { "kind": "parameter", "displayName": "Value Deserializer", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Deserializer class for value t [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "kafkaManualCommitFactory": { "kind": "parameter", "displayName": "Kafka Manual Commit Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.KafkaManualCommitFactory", "deprecated": false, "autowired": false, "secret": false, "description": "Factory to use for creating KafkaManualCommit instances. This allows to plugin a custom factory to create custom KafkaManualCommit instances in c [...]
+    "bufferMemorySize": { "kind": "parameter", "displayName": "Buffer Memory Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "33554432", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The total bytes of memory the producer can use to buffer records waiting to b [...]
+    "compressionCodec": { "kind": "parameter", "displayName": "Compression Codec", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "none", "gzip", "snappy", "lz4" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "This parameter allows you to specify th [...]
+    "connectionMaxIdleMs": { "kind": "parameter", "displayName": "Connection Max Idle Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "540000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Close idle connections after the number of milliseconds specified by thi [...]
+    "deliveryTimeoutMs": { "kind": "parameter", "displayName": "Delivery Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "120000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "An upper bound on the time to report success or failure after a call to send( [...]
+    "enableIdempotence": { "kind": "parameter", "displayName": "Enable Idempotence", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "If set to 'true' the producer will ensure that exactly one copy of each message is written  [...]
+    "headerSerializer": { "kind": "parameter", "displayName": "Header Serializer", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.serde.KafkaHeaderSerializer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "To use a custom KafkaHeaderSerializer to serialize kafka headers [...]
+    "key": { "kind": "parameter", "displayName": "Key", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The record key (or null if no key is specified). If this option has been configured then it take precedence over header KafkaConstants#KEY" },
+    "keySerializer": { "kind": "parameter", "displayName": "Key Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The serializer class for keys (defaults  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "lingerMs": { "kind": "parameter", "displayName": "Linger Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The producer groups together any records that arrive in between request transmissions into a single b [...]
+    "maxBlockMs": { "kind": "parameter", "displayName": "Max Block Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The configuration controls how long sending to kafka will block. These methods can be blocke [...]
+    "maxInFlightRequest": { "kind": "parameter", "displayName": "Max In Flight Request", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unacknowledged requests the client will send on a single  [...]
+    "maxRequestSize": { "kind": "parameter", "displayName": "Max Request Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1048576", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum size of a request. This is also effectively a cap on the maximum recor [...]
+    "metadataMaxAgeMs": { "kind": "parameter", "displayName": "Metadata Max Age Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "300000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The period of time in milliseconds after which we force a refresh of metadata  [...]
+    "metricReporters": { "kind": "parameter", "displayName": "Metric Reporters", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A list of classes to use as metrics reporters. Implementing the MetricReporter interface allows plugging in cl [...]
+    "metricsSampleWindowMs": { "kind": "parameter", "displayName": "Metrics Sample Window Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
+    "noOfMetricsSample": { "kind": "parameter", "displayName": "No Of Metrics Sample", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "2", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of samples maintained to compute metrics." },
+    "partitioner": { "kind": "parameter", "displayName": "Partitioner", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The partitioner class for partitionin [...]
+    "partitionKey": { "kind": "parameter", "displayName": "Partition Key", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The partition to which the record will be sent (or null if no partition was specified). If this option has been co [...]
+    "producerBatchSize": { "kind": "parameter", "displayName": "Producer Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "16384", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The producer will attempt to batch records together into fewer requests whenev [...]
+    "queueBufferingMaxMessages": { "kind": "parameter", "displayName": "Queue Buffering Max Messages", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "10000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The maximum number of unsent messages that can be queued up t [...]
+    "receiveBufferBytes": { "kind": "parameter", "displayName": "Receive Buffer Bytes", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "65536", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data." },
+    "reconnectBackoffMs": { "kind": "parameter", "displayName": "Reconnect Backoff Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "50", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The amount of time to wait before attempting to reconnect to a given host. This [...]
+    "recordMetadata": { "kind": "parameter", "displayName": "Record Metadata", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Whether the producer should store the RecordMetadata results from sending to Kafka. The results ar [...]
+    "requestRequiredAcks": { "kind": "parameter", "displayName": "Request Required Acks", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "-1", "0", "1", "all" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The number of acknowledgments the producer re [...]
+    "requestTimeoutMs": { "kind": "parameter", "displayName": "Request Timeout Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "30000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The amount of time the broker will wait trying to meet the request.required.acks [...]
+    "retries": { "kind": "parameter", "displayName": "Retries", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a pot [...]
+    "retryBackoffMs": { "kind": "parameter", "displayName": "Retry Backoff Ms", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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  [...]
+    "sendBufferBytes": { "kind": "parameter", "displayName": "Send Buffer Bytes", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "131072", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Socket write buffer size" },
+    "valueSerializer": { "kind": "parameter", "displayName": "Value Serializer", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "org.apache.kafka.common.serialization.StringSerializer", "configurationClass": "org.apache.camel.component.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, "autowired": 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 mes [...]
+    "workerPoolCoreSize": { "kind": "parameter", "displayName": "Worker Pool Core Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 [...]
+    "workerPoolMaxSize": { "kind": "parameter", "displayName": "Worker Pool Max Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 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 afte [...]
+    "kafkaClientFactory": { "kind": "parameter", "displayName": "Kafka Client Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.kafka.KafkaClientFactory", "deprecated": false, "autowired": false, "secret": false, "description": "Factory to use for creating org.apache.kafka.clients.consumer.KafkaConsumer and org.apache.kafka.clients.producer.KafkaProducer instances. This allows to configure a custom factory to  [...]
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "schemaRegistryURL": { "kind": "parameter", "displayName": "Schema Registry URL", "group": "confluent", "label": "confluent", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "URL of the Confluent Platform schema registry servers to use. The format is host1:port1,host2:port2. Th [...]
+    "interceptorClasses": { "kind": "parameter", "displayName": "Interceptor Classes", "group": "monitoring", "label": "common,monitoring", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Sets interceptors for producer or consumers. Producer interceptors have to be classes impleme [...]
+    "kerberosBeforeReloginMinTime": { "kind": "parameter", "displayName": "Kerberos Before Relogin Min Time", "group": "security", "label": "common,security", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "60000", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Login thread sleep time between refresh attempts." },
+    "kerberosInitCmd": { "kind": "parameter", "displayName": "Kerberos Init Cmd", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "\/usr\/bin\/kinit", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Kerberos kinit command path. Default is \/usr\/bin\/kinit" },
+    "kerberosPrincipalToLocalRules": { "kind": "parameter", "displayName": "Kerberos Principal To Local Rules", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEFAULT", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A list of rules for mapping from principal na [...]
+    "kerberosRenewJitter": { "kind": "parameter", "displayName": "Kerberos Renew Jitter", "group": "security", "label": "common,security", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0.05", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Percentage of random jitter added to the renewal time." },
+    "kerberosRenewWindowFactor": { "kind": "parameter", "displayName": "Kerberos Renew Window Factor", "group": "security", "label": "common,security", "required": false, "type": "number", "javaType": "java.lang.Double", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "0.8", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Login thread will sleep until the specified window factor  [...]
+    "saslJaasConfig": { "kind": "parameter", "displayName": "Sasl Jaas Config", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Expose the kafka sasl.jaas.config parameter Example: org.apache.kafka.common.security.plain.PlainLoginMod [...]
+    "saslKerberosServiceName": { "kind": "parameter", "displayName": "Sasl Kerberos Service Name", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's [...]
+    "saslMechanism": { "kind": "parameter", "displayName": "Sasl Mechanism", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "GSSAPI", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The Simple Authentication and Security Layer (SASL) Mechanism used. For the valid [...]
+    "securityProtocol": { "kind": "parameter", "displayName": "Security Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PLAINTEXT", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT and [...]
+    "sslCipherSuites": { "kind": "parameter", "displayName": "Ssl Cipher Suites", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchan [...]
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "common,security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "SSL configuration using a Camel SSLContextParameters objec [...]
+    "sslEnabledProtocols": { "kind": "parameter", "displayName": "Ssl Enabled Protocols", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by d [...]
+    "sslEndpointAlgorithm": { "kind": "parameter", "displayName": "Ssl Endpoint Algorithm", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "https", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The endpoint identification algorithm to validate server hostname u [...]
+    "sslKeymanagerAlgorithm": { "kind": "parameter", "displayName": "Ssl Keymanager Algorithm", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SunX509", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by key manager factory for SSL connections [...]
+    "sslKeyPassword": { "kind": "parameter", "displayName": "Ssl Key Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The password of the private key in the key store file. This is optional for client." },
+    "sslKeystoreLocation": { "kind": "parameter", "displayName": "Ssl Keystore Location", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The location of the key store file. This is optional for client and can be used for two-way  [...]
+    "sslKeystorePassword": { "kind": "parameter", "displayName": "Ssl Keystore Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The store password for the key store file.This is optional for client and only needed if ssl. [...]
+    "sslKeystoreType": { "kind": "parameter", "displayName": "Ssl Keystore Type", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "JKS", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The file format of the key store file. This is optional for client. Default val [...]
+    "sslProtocol": { "kind": "parameter", "displayName": "Ssl Protocol", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "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. Allowed [...]
+    "sslProvider": { "kind": "parameter", "displayName": "Ssl Provider", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The name of the security provider used for SSL connections. Default value is the default security provider of t [...]
+    "sslTrustmanagerAlgorithm": { "kind": "parameter", "displayName": "Ssl Trustmanager Algorithm", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PKIX", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The algorithm used by trust manager factory for SSL connecti [...]
+    "sslTruststoreLocation": { "kind": "parameter", "displayName": "Ssl Truststore Location", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The location of the trust store file." },
+    "sslTruststorePassword": { "kind": "parameter", "displayName": "Ssl Truststore Password", "group": "security", "label": "producer,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The password for the trust store file." },
+    "sslTruststoreType": { "kind": "parameter", "displayName": "Ssl Truststore Type", "group": "security", "label": "common,security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "JKS", "configurationClass": "org.apache.camel.component.kafka.KafkaConfiguration", "configurationField": "configuration", "description": "The file format of the trust store file. Default value is JKS." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kamelet.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kamelet.json
new file mode 100644
index 0000000..3cf45b7
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kamelet.json
@@ -0,0 +1,47 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "kamelet",
+    "title": "Kamelet",
+    "description": "To call Kamelets",
+    "deprecated": false,
+    "firstVersion": "3.8.0",
+    "label": "core",
+    "javaType": "org.apache.camel.component.kamelet.KameletComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-kamelet",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "kamelet",
+    "extendsScheme": "",
+    "syntax": "kamelet:templateId\/routeId",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "location": { "kind": "property", "displayName": "Location", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "classpath:\/kamelets", "description": "The location(s) of the Kamelets on the file system. Multiple locations can be set separated by comma." },
+    "routeProperties": { "kind": "property", "displayName": "Route Properties", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "deprecated": false, "autowired": false, "secret": false, "description": "Set route local parameters." },
+    "templateProperties": { "kind": "property", "displayName": "Template Properties", "group": "common", "label": "", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.util.Properties>", "deprecated": false, "autowired": false, "secret": false, "description": "Set template local parameters." },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "block": { "kind": "property", "displayName": "Block", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If sending a message to a kamelet endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The timeout value to use if block is enabled." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "routeTemplateLoaderListener": { "kind": "property", "displayName": "Route Template Loader Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.RouteTemplateLoaderListener", "deprecated": false, "autowired": true, "secret": false, "description": "To plugin a custom listener for when the Kamelet component is loading Kamelets from external resources." }
+  },
+  "properties": {
+    "templateId": { "kind": "path", "displayName": "Template Id", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Route Template ID" },
+    "routeId": { "kind": "path", "displayName": "Route Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Route ID. Default value notice: The ID will be auto-generated if not provided" },
+    "location": { "kind": "parameter", "displayName": "Location", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Location of the Kamelet to use which can be specified as a resource from file system, classpath etc. The location cannot use wildcards, and must refer to a file including extension, for example file:\/etc\/foo-kamelet.xml" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "block": { "kind": "parameter", "displayName": "Block", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active." },
+    "failIfNoConsumers": { "kind": "parameter", "displayName": "Fail If No Consumers", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the producer should fail by throwing an exception, when sending to a kamelet endpoint with no active consumers." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "description": "The timeout value to use if block is enabled." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kudu.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kudu.json
new file mode 100644
index 0000000..a8f07ff
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/kudu.json
@@ -0,0 +1,35 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "kudu",
+    "title": "Kudu",
+    "description": "Interact with Apache Kudu, a free and open source column-oriented data store of the Apache Hadoop ecosystem.",
+    "deprecated": false,
+    "firstVersion": "3.0",
+    "label": "database,iot,cloud",
+    "javaType": "org.apache.camel.component.kudu.KuduComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-kudu",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "kudu",
+    "extendsScheme": "",
+    "syntax": "kudu:host:port\/tableName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Host of the server to connect to" },
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Port of the server to connect to" },
+    "tableName": { "kind": "path", "displayName": "Table Name", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Table to connect to" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.kudu.KuduOperations", "enum": [ "INSERT", "CREATE_TABLE", "SCAN" ], "deprecated": false, "autowired": false, "secret": false, "description": "Operation to perform" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/language.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/language.json
new file mode 100644
index 0000000..29c502a
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/language.json
@@ -0,0 +1,39 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "language",
+    "title": "Language",
+    "description": "Execute scripts in any of the languages supported by Camel.",
+    "deprecated": false,
+    "firstVersion": "2.5.0",
+    "label": "core,script",
+    "javaType": "org.apache.camel.component.language.LanguageComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-language",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "language",
+    "extendsScheme": "",
+    "syntax": "language:languageName:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "languageName": { "kind": "path", "displayName": "Language Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "bean", "constant", "exchangeProperty", "file", "groovy", "header", "javascript", "jsonpath", "mvel", "ognl", "", "ref", "simple", "spel", "sql", "terser", "tokenize", "xpath", "xquery", "xtokenize" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the na [...]
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource, or a reference to lookup a bean in the Registry to use as the resource" },
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "binary": { "kind": "parameter", "displayName": "Binary", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the script is binary content or text content. By default the script is read as text content (eg java.lang.String)" },
+    "cacheScript": { "kind": "parameter", "displayName": "Cache Script", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to cache the compiled script and reuse Notice reusing the script can cause side effects from processing one Camel org.apache.camel.Exchange to the next org.apache.camel.Exchange." },
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to use resource content cache or not" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "script": { "kind": "parameter", "displayName": "Script", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the script to execute" },
+    "transform": { "kind": "parameter", "displayName": "Transform", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not the result of the script should be used as message body. This options is default true." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldap.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldap.json
new file mode 100644
index 0000000..926df53
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldap.json
@@ -0,0 +1,36 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ldap",
+    "title": "LDAP",
+    "description": "Perform searches on LDAP servers.",
+    "deprecated": false,
+    "firstVersion": "1.5.0",
+    "label": "search,ldap",
+    "javaType": "org.apache.camel.component.ldap.LdapComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ldap",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ldap",
+    "extendsScheme": "",
+    "syntax": "ldap:dirContextName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "dirContextName": { "kind": "path", "displayName": "Dir Context Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of either a javax.naming.directory.DirContext, or java.util.Hashtable, or Map bean to lookup in the registry. If the bean is either a Hashtable or Map then a new javax.naming.directory.DirContext instance is creat [...]
+    "base": { "kind": "parameter", "displayName": "Base", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ou=system", "description": "The base DN for searches." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "pageSize": { "kind": "parameter", "displayName": "Page Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "When specified the ldap module uses paging to retrieve all results (most LDAP Servers throw an exception when trying to retrieve more than 1000 entries in one query). To be able to use this a LdapContext (subclass of DirContext) has to be passed  [...]
+    "returnedAttributes": { "kind": "parameter", "displayName": "Returned Attributes", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Comma-separated list of attributes that should be set in each entry of the result" },
+    "scope": { "kind": "parameter", "displayName": "Scope", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "object", "onelevel", "subtree" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "subtree", "description": "Specifies how deeply to search the tree of entries, starting at the base DN." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldif.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldif.json
new file mode 100644
index 0000000..b5b13b1
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/ldif.json
@@ -0,0 +1,32 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "ldif",
+    "title": "LDIF",
+    "description": "Perform updates on an LDAP server from an LDIF body content.",
+    "deprecated": false,
+    "firstVersion": "2.20.0",
+    "label": "ldap",
+    "javaType": "org.apache.camel.component.ldif.LdifComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-ldif",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "ldif",
+    "extendsScheme": "",
+    "syntax": "ldif:ldapConnectionName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "ldapConnectionName": { "kind": "path", "displayName": "Ldap Connection Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the LdapConnection bean to pull from the registry. Note that this must be of scope prototype to avoid it being shared among threads or using a connection that has timed out." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/log.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/log.json
new file mode 100644
index 0000000..5e40356
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/log.json
@@ -0,0 +1,60 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "log",
+    "title": "Log",
+    "description": "Log messages to the underlying logging mechanism.",
+    "deprecated": false,
+    "firstVersion": "1.1.0",
+    "label": "core,monitoring",
+    "javaType": "org.apache.camel.component.log.LogComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-log",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "log",
+    "extendsScheme": "",
+    "syntax": "log:loggerName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "exchangeFormatter": { "kind": "property", "displayName": "Exchange Formatter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExchangeFormatter", "deprecated": false, "autowired": true, "secret": false, "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter." }
+  },
+  "properties": {
+    "loggerName": { "kind": "path", "displayName": "Logger Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the logging category to use" },
+    "groupActiveOnly": { "kind": "parameter", "displayName": "Group Active Only", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "description": "If true, will hide stats when no new messages have been received for a time interval, if false, show stats regardless of message traffic." },
+    "groupDelay": { "kind": "parameter", "displayName": "Group Delay", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Set the initial delay for stats (in millis)" },
+    "groupInterval": { "kind": "parameter", "displayName": "Group Interval", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "If specified will group message stats by this time interval (in millis)" },
+    "groupSize": { "kind": "parameter", "displayName": "Group Size", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "description": "An integer that specifies a group size for throughput logging." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "level": { "kind": "parameter", "displayName": "Level", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "INFO", "description": "Logging level to use. The default value is INFO." },
+    "logMask": { "kind": "parameter", "displayName": "Log Mask", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "description": "If true, mask sensitive information like password or passphrase in the log." },
+    "marker": { "kind": "parameter", "displayName": "Marker", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "An optional Marker name to use." },
+    "plain": { "kind": "parameter", "displayName": "Plain", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled only the body will be printed out" },
+    "exchangeFormatter": { "kind": "parameter", "displayName": "Exchange Formatter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExchangeFormatter", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom exchange formatter" },
+    "maxChars": { "kind": "parameter", "displayName": "Max Chars", "group": "formatting", "label": "formatting", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "description": "Limits the number of characters logged per line." },
+    "multiline": { "kind": "parameter", "displayName": "Multiline", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled then each information is outputted on a newline." },
+    "showAll": { "kind": "parameter", "displayName": "Show All", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Quick option for turning all options on. (multiline, maxChars has to be manually set if to be used)" },
+    "showAllProperties": { "kind": "parameter", "displayName": "Show All Properties", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Show all of the exchange properties (both internal and custom)." },
+    "showBody": { "kind": "parameter", "displayName": "Show Body", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Show the message body." },
+    "showBodyType": { "kind": "parameter", "displayName": "Show Body Type", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Show the body Java type." },
+    "showCaughtException": { "kind": "parameter", "displayName": "Show Caught Exception", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the exchange has a caught exception, show the exception message (no stack trace). A caught exception is stored as a property on the exchange (using the key org.apache.camel.Exchange#EXCEPTION_CAU [...]
+    "showException": { "kind": "parameter", "displayName": "Show Exception", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the exchange has an exception, show the exception message (no stacktrace)" },
+    "showExchangeId": { "kind": "parameter", "displayName": "Show Exchange Id", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Show the unique exchange ID." },
+    "showExchangePattern": { "kind": "parameter", "displayName": "Show Exchange Pattern", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Shows the Message Exchange Pattern (or MEP for short)." },
+    "showFiles": { "kind": "parameter", "displayName": "Show Files", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled Camel will output files" },
+    "showFuture": { "kind": "parameter", "displayName": "Show Future", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled Camel will on Future objects wait for it to complete to obtain the payload to be logged." },
+    "showHeaders": { "kind": "parameter", "displayName": "Show Headers", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Show the message headers." },
+    "showProperties": { "kind": "parameter", "displayName": "Show Properties", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Show the exchange properties (only custom). Use showAllProperties to show both internal and custom properties." },
+    "showStackTrace": { "kind": "parameter", "displayName": "Show Stack Trace", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Show the stack trace, if an exchange has an exception. Only effective if one of showAll, showException or showCaughtException are enabled." },
+    "showStreams": { "kind": "parameter", "displayName": "Show Streams", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether Camel should show stream bodies or not (eg such as java.io.InputStream). Beware if you enable this option then you may not be able later to access the message body as the stream have already been read by thi [...]
+    "skipBodyLineSeparator": { "kind": "parameter", "displayName": "Skip Body Line Separator", "group": "formatting", "label": "formatting", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to skip line separators when logging the message body. This allows to log the message body in one line, setting this option to false will preserve any line separators from the body, whic [...]
+    "style": { "kind": "parameter", "displayName": "Style", "group": "formatting", "label": "formatting", "required": false, "type": "object", "javaType": "org.apache.camel.support.processor.DefaultExchangeFormatter.OutputStyle", "enum": [ "Default", "Tab", "Fixed" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "description": "Sets the outputs style to use." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lucene.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lucene.json
new file mode 100644
index 0000000..af296a5
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lucene.json
@@ -0,0 +1,42 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "lucene",
+    "title": "Lucene",
+    "description": "Perform inserts or queries against Apache Lucene databases.",
+    "deprecated": false,
+    "firstVersion": "2.2.0",
+    "label": "database,search",
+    "javaType": "org.apache.camel.component.lucene.LuceneComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-lucene",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "lucene",
+    "extendsScheme": "",
+    "syntax": "lucene:host:operation",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "analyzer": { "kind": "property", "displayName": "Analyzer", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.lucene.analysis.Analyzer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index terms from text. T [...]
+    "indexDir": { "kind": "property", "displayName": "Index Dir", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "A file system directory in which index files are created upon analysis of the document by the specified analyzer" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "maxHits": { "kind": "property", "displayName": "Max Hits", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "An integer value that limits the result set of the search operation" },
+    "srcDir": { "kind": "property", "displayName": "Src Dir", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "An optional directory containing files to be used to be analyzed and added to the index at producer startup." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "config": { "kind": "property", "displayName": "Config", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.lucene.LuceneConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use a shared lucene configuration" }
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "The URL to the lucene server" },
+    "operation": { "kind": "path", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.lucene.LuceneOperation", "enum": [ "insert", "query" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "Operation to do such as insert or query." },
+    "analyzer": { "kind": "parameter", "displayName": "Analyzer", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.lucene.analysis.Analyzer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index terms from text.  [...]
+    "indexDir": { "kind": "parameter", "displayName": "Index Dir", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "A file system directory in which index files are created upon analysis of the document by the specified analyzer" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "maxHits": { "kind": "parameter", "displayName": "Max Hits", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "An integer value that limits the result set of the search operation" },
+    "srcDir": { "kind": "parameter", "displayName": "Src Dir", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.lucene.LuceneConfiguration", "configurationField": "config", "description": "An optional directory containing files to be used to be analyzed and added to the index at producer startup." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lumberjack.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lumberjack.json
new file mode 100644
index 0000000..714bb35
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/lumberjack.json
@@ -0,0 +1,38 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "lumberjack",
+    "title": "Lumberjack",
+    "description": "Receive logs messages using the Lumberjack protocol.",
+    "deprecated": false,
+    "firstVersion": "2.18.0",
+    "label": "log",
+    "javaType": "org.apache.camel.component.lumberjack.LumberjackComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-lumberjack",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "lumberjack",
+    "extendsScheme": "",
+    "syntax": "lumberjack:host:port",
+    "async": false,
+    "api": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the default SSL configuration to use for all the endpoints. You can also configure it directly at the endpoint level." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Network interface on which to listen for Lumberjack" },
+    "port": { "kind": "path", "displayName": "Port", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5044, "description": "Network port on which to listen for Lumberjack" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "description": "SSL configuration" },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/master.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/master.json
new file mode 100644
index 0000000..e13a4a9
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/master.json
@@ -0,0 +1,37 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "master",
+    "title": "Master",
+    "description": "Have only a single consumer in a cluster consuming from a given endpoint; with automatic failover if the JVM dies.",
+    "deprecated": false,
+    "firstVersion": "2.20.0",
+    "label": "clustering",
+    "javaType": "org.apache.camel.component.master.MasterComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-master",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "master",
+    "extendsScheme": "",
+    "syntax": "master:namespace:delegateUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": true,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "service": { "kind": "property", "displayName": "Service", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.cluster.CamelClusterService", "deprecated": false, "autowired": false, "secret": false, "description": "Inject the service to use." },
+    "serviceSelector": { "kind": "property", "displayName": "Service Selector", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.cluster.CamelClusterService.Selector", "deprecated": false, "autowired": false, "secret": false, "description": "Inject the service selector used to lookup the CamelClusterService to use." }
+  },
+  "properties": {
+    "namespace": { "kind": "path", "displayName": "Namespace", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the cluster namespace to use" },
+    "delegateUri": { "kind": "path", "displayName": "Delegate Uri", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The endpoint uri to use in master\/slave mode" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/metrics.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/metrics.json
new file mode 100644
index 0000000..63e49a8
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/metrics.json
@@ -0,0 +1,40 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "metrics",
+    "title": "Metrics",
+    "description": "Collect various metrics directly from Camel routes using the DropWizard metrics library.",
+    "deprecated": false,
+    "firstVersion": "2.14.0",
+    "label": "monitoring",
+    "javaType": "org.apache.camel.component.metrics.MetricsComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-metrics",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "metrics",
+    "extendsScheme": "",
+    "syntax": "metrics:metricsType:metricsName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "metricRegistry": { "kind": "property", "displayName": "Metric Registry", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.codahale.metrics.MetricRegistry", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured MetricRegistry." }
+  },
+  "properties": {
+    "metricsType": { "kind": "path", "displayName": "Metrics Type", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.metrics.MetricsType", "enum": [ "gauge", "counter", "histogram", "meter", "timer" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" },
+    "metricsName": { "kind": "path", "displayName": "Metrics Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of metrics" },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.metrics.MetricsTimerAction", "enum": [ "start", "stop" ], "deprecated": false, "autowired": false, "secret": false, "description": "Action when using timer type" },
+    "decrement": { "kind": "parameter", "displayName": "Decrement", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Decrement value when using counter type" },
+    "increment": { "kind": "parameter", "displayName": "Increment", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Increment value when using counter type" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "mark": { "kind": "parameter", "displayName": "Mark", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Mark when using meter type" },
+    "subject": { "kind": "parameter", "displayName": "Subject", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "description": "Subject value when using gauge type" },
+    "value": { "kind": "parameter", "displayName": "Value", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "description": "Value value when using histogram type" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/micrometer.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/micrometer.json
new file mode 100644
index 0000000..13a9082
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/micrometer.json
@@ -0,0 +1,39 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "micrometer",
+    "title": "Micrometer",
+    "description": "Collect various metrics directly from Camel routes using the Micrometer library.",
+    "deprecated": false,
+    "firstVersion": "2.22.0",
+    "label": "monitoring",
+    "javaType": "org.apache.camel.component.micrometer.MicrometerComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-micrometer",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "micrometer",
+    "extendsScheme": "",
+    "syntax": "micrometer:metricsType:metricsName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "metricsRegistry": { "kind": "property", "displayName": "Metrics Registry", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.micrometer.core.instrument.MeterRegistry", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured MetricRegistry." }
+  },
+  "properties": {
+    "metricsType": { "kind": "path", "displayName": "Metrics Type", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "io.micrometer.core.instrument.Meter.Type", "enum": [ "COUNTER", "GAUGE", "LONG_TASK_TIMER", "TIMER", "DISTRIBUTION_SUMMARY", "OTHER" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Type of metrics" },
+    "metricsName": { "kind": "path", "displayName": "Metrics Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of metrics" },
+    "tags": { "kind": "path", "displayName": "Tags", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "java.lang.Iterable<io.micrometer.core.instrument.Tag>", "deprecated": false, "autowired": false, "secret": false, "description": "Tags of metrics" },
+    "action": { "kind": "parameter", "displayName": "Action", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Action expression when using timer type" },
+    "decrement": { "kind": "parameter", "displayName": "Decrement", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Decrement value expression when using counter type" },
+    "increment": { "kind": "parameter", "displayName": "Increment", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Increment value expression when using counter type" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "value": { "kind": "parameter", "displayName": "Value", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Value expression when using histogram type" }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mina.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mina.json
new file mode 100644
index 0000000..583675c
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mina.json
@@ -0,0 +1,86 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mina",
+    "title": "Mina",
+    "description": "Socket level networking using TCP or UDP with Apache Mina 2.x.",
+    "deprecated": false,
+    "firstVersion": "2.10.0",
+    "label": "networking,tcp,udp",
+    "javaType": "org.apache.camel.component.mina.MinaComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mina",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mina",
+    "extendsScheme": "",
+    "syntax": "mina:protocol:host:port",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to disconnect(close) from Mina session right after use. Can be used for both consumer and producer." },
+    "minaLogger": { "kind": "property", "displayName": "Mina Logger", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can enable the Apache MINA logging filter. Apache MINA uses slf4j logging at INFO level to log all input and output." },
+    "sync": { "kind": "property", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way or request-response." },
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the timeout that specifies how long to wait for a response from a remote server. The timeout unit is in millis [...]
+    "writeTimeout": { "kind": "property", "displayName": "Write Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Maximum amount of time it should take to send data to the MINA session. Default is 10000 milliseconds." },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "clientMode": { "kind": "property", "displayName": "Client Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If the clientMode is true, mina consumer will connect the address as a TCP client." },
+    "noReplyLogLevel": { "kind": "property", "displayName": "No Reply Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "descrip [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "cachedAddress": { "kind": "property", "displayName": "Cached Address", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to create the InetAddress once and reuse. Setting this to false allows to p [...]
+    "lazySessionCreation": { "kind": "property", "displayName": "Lazy Session Creation", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Sessions can be lazily created to avoid exceptions, if the remote serv [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the shared mina configuration." },
+    "disconnectOnNoReply": { "kind": "property", "displayName": "Disconnect On No Reply", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates MinaConsumer if it should disconnect where t [...]
+    "maximumPoolSize": { "kind": "property", "displayName": "Maximum Pool Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 16, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Number of worker threads in the worker pool for TCP and UDP" },
+    "orderedThreadPoolExecutor": { "kind": "property", "displayName": "Ordered Thread Pool Executor", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are processed orderly on [...]
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The fol [...]
+    "allowDefaultCodec": { "kind": "property", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "The mina component installs a default codec if both, codec is null and textline is false. Setting al [...]
+    "codec": { "kind": "property", "displayName": "Codec", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.mina.filter.codec.ProtocolCodecFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To use a custom minda codec implementation." },
+    "decoderMaxLineLength": { "kind": "property", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol decoder max line length. By default the default value of Mina itself [...]
+    "encoderMaxLineLength": { "kind": "property", "displayName": "Encoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol encoder max line length. By default the default value of Mina itself i [...]
+    "encoding": { "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, Camel will us [...]
+    "filters": { "kind": "property", "displayName": "Filters", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<org.apache.mina.core.filterchain.IoFilter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can set a list of Mina IoFilters to use." },
+    "textline": { "kind": "property", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specifie [...]
+    "textlineDelimiter": { "kind": "property", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP and [...]
+    "autoStartTls": { "kind": "property", "displayName": "Auto Start Tls", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to auto start SSL handshake." },
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." },
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "protocol": { "kind": "path", "displayName": "Protocol", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Protocol to use" },
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Hostname to use. Use localhost or 0.0.0.0 for local server as consumer. For producer use the hostname or ip address of the remot [...]
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Port number" },
+    "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to disconnect(close) from Mina session right after use. Can be used for both consumer and producer." },
+    "minaLogger": { "kind": "parameter", "displayName": "Mina Logger", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can enable the Apache MINA logging filter. Apache MINA uses slf4j logging at INFO level to log all input and output." },
+    "sync": { "kind": "parameter", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way or request-response." },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the timeout that specifies how long to wait for a response from a remote server. The timeout unit is in milli [...]
+    "writeTimeout": { "kind": "parameter", "displayName": "Write Timeout", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Maximum amount of time it should take to send data to the MINA session. Default is 10000 milliseconds." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "clientMode": { "kind": "parameter", "displayName": "Client Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If the clientMode is true, mina consumer will connect the address as a TCP client." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "noReplyLogLevel": { "kind": "parameter", "displayName": "No Reply Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "descri [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "cachedAddress": { "kind": "parameter", "displayName": "Cached Address", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to create the InetAddress once and reuse. Setting this to false allows to  [...]
+    "lazySessionCreation": { "kind": "parameter", "displayName": "Lazy Session Creation", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Sessions can be lazily created to avoid exceptions, if the remote ser [...]
+    "disconnectOnNoReply": { "kind": "parameter", "displayName": "Disconnect On No Reply", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates MinaConsumer if it should disconnect where  [...]
+    "maximumPoolSize": { "kind": "parameter", "displayName": "Maximum Pool Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 16, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Number of worker threads in the worker pool for TCP and UDP" },
+    "orderedThreadPoolExecutor": { "kind": "parameter", "displayName": "Ordered Thread Pool Executor", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are processed orderly o [...]
+    "transferExchange": { "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The fo [...]
+    "allowDefaultCodec": { "kind": "parameter", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "The mina component installs a default codec if both, codec is null and textline is false. Setting a [...]
+    "codec": { "kind": "parameter", "displayName": "Codec", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.mina.filter.codec.ProtocolCodecFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To use a custom minda codec implementation." },
+    "decoderMaxLineLength": { "kind": "parameter", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol decoder max line length. By default the default value of Mina itsel [...]
+    "encoderMaxLineLength": { "kind": "parameter", "displayName": "Encoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To set the textline protocol encoder max line length. By default the default value of Mina itself  [...]
+    "encoding": { "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, Camel will u [...]
+    "filters": { "kind": "parameter", "displayName": "Filters", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<org.apache.mina.core.filterchain.IoFilter>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "You can set a list of Mina IoFilters to use." },
+    "textline": { "kind": "parameter", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specifi [...]
+    "textlineDelimiter": { "kind": "parameter", "displayName": "Textline Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.mina.MinaTextLineDelimiter", "enum": [ "DEFAULT", "AUTO", "UNIX", "WINDOWS", "MAC" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Only used for TCP an [...]
+    "autoStartTls": { "kind": "parameter", "displayName": "Auto Start Tls", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "Whether to auto start SSL handshake." },
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mina.MinaConfiguration", "configurationField": "configuration", "description": "To configure SSL security." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/minio.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/minio.json
new file mode 100644
index 0000000..2867d79
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/minio.json
@@ -0,0 +1,139 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "minio",
+    "title": "Minio",
+    "description": "Store and retrieve objects from Minio Storage Service using Minio SDK.",
+    "deprecated": false,
+    "firstVersion": "3.5.0",
+    "label": "cloud,file",
+    "javaType": "org.apache.camel.component.minio.MinioComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-minio",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "minio",
+    "extendsScheme": "",
+    "syntax": "minio:bucketName",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "autoCreateBucket": { "kind": "property", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Setting the autocreation of the bucket if bucket name not exist." },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.minio.MinioConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
+    "customHttpClient": { "kind": "property", "displayName": "Custom Http Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "okhttp3.OkHttpClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set custom HTTP client for authenticated access." },
+    "endpoint": { "kind": "property", "displayName": "Endpoint", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Endpoint can be an URL, domain name, IPv4 address or IPv6 address." },
+    "minioClient": { "kind": "property", "displayName": "Minio Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "io.minio.MinioClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Reference to a Minio Client object in the registry." },
+    "objectLock": { "kind": "property", "displayName": "Object Lock", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set when creating new bucket." },
+    "policy": { "kind": "property", "displayName": "Policy", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The policy for this queue to set in the method." },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "TCP\/IP port number. 80 and 443 are used as defaults for HTTP and HTTPS." },
+    "region": { "kind": "property", "displayName": "Region", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The region in which Minio client needs to work. When using this parameter, the configuration will expect the lowercase name of the reg [...]
+    "secure": { "kind": "property", "displayName": "Secure", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Flag to indicate to use secure connection to minio service or not." },
+    "serverSideEncryption": { "kind": "property", "displayName": "Server Side Encryption", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "io.minio.ServerSideEncryption", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Server-side encryption." },
+    "serverSideEncryptionCustomerKey": { "kind": "property", "displayName": "Server Side Encryption Customer Key", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "io.minio.ServerSideEncryptionCustomerKey", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Server-side encryption for source object while copy\/mov [...]
+    "autoCloseBody": { "kind": "property", "displayName": "Auto Close Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "If this option is true and includeBody is true, then the MinioObject.close() method will be called o [...]
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "bypassGovernanceMode": { "kind": "property", "displayName": "Bypass Governance Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set this flag if you want to bypassGovernanceMode when deleting a particular object." },
+    "deleteAfterRead": { "kind": "property", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Delete objects from Minio after they have been retrieved. The delete is only performed if the Ex [...]
+    "delimiter": { "kind": "property", "displayName": "Delimiter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The delimiter which is used in the ListObjectsRequest to only consume objects we are interested in." },
+    "destinationBucketName": { "kind": "property", "displayName": "Destination Bucket Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Source bucket name." },
+    "destinationObjectName": { "kind": "property", "displayName": "Destination Object Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Source object name." },
+    "includeBody": { "kind": "property", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "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 heade [...]
+    "includeFolders": { "kind": "property", "displayName": "Include Folders", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The flag which is used in the ListObjectsRequest to set include folders." },
+    "includeUserMetadata": { "kind": "property", "displayName": "Include User Metadata", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The flag which is used in the ListObjectsRequest to get objects with user meta data." },
+    "includeVersions": { "kind": "property", "displayName": "Include Versions", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The flag which is used in the ListObjectsRequest to get objects with versioning." },
+    "length": { "kind": "property", "displayName": "Length", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Number of bytes of object data from offset." },
+    "matchETag": { "kind": "property", "displayName": "Match ETag", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set match ETag parameter for get object(s)." },
+    "maxConnections": { "kind": "property", "displayName": "Max Connections", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set the maxConnections parameter in the minio client configuration" },
+    "maxMessagesPerPoll": { "kind": "property", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum number [...]
+    "modifiedSince": { "kind": "property", "displayName": "Modified Since", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "java.time.ZonedDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set modified since parameter for get object(s)." },
+    "moveAfterRead": { "kind": "property", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Move objects from bucket to a different bucket after they have been retrieved. To accomplish the op [...]
+    "notMatchETag": { "kind": "property", "displayName": "Not Match ETag", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set not match ETag parameter for get object(s)." },
+    "objectName": { "kind": "property", "displayName": "Object Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "To get the object from the bucket with the given object name." },
+    "offset": { "kind": "property", "displayName": "Offset", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Start byte position of object data." },
+    "prefix": { "kind": "property", "displayName": "Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Object name starts with prefix." },
+    "recursive": { "kind": "property", "displayName": "Recursive", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "List recursively than directory structure emulation." },
+    "startAfter": { "kind": "property", "displayName": "Start After", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "list objects in bucket after this object name." },
+    "unModifiedSince": { "kind": "property", "displayName": "Un Modified Since", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "java.time.ZonedDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set un modified since parameter for get object(s)." },
+    "useVersion1": { "kind": "property", "displayName": "Use Version1", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "when true, version 1 of REST API is used." },
+    "versionId": { "kind": "property", "displayName": "Version Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set specific version_ID of a object when deleting the object." },
+    "deleteAfterWrite": { "kind": "property", "displayName": "Delete After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Delete file object after the Minio file has been uploaded." },
+    "keyName": { "kind": "property", "displayName": "Key Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "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, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.minio.MinioOperations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteObjects", "deleteBucket", "listBuckets", "getObject", "getObjectRange" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurat [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not." },
+    "storageClass": { "kind": "property", "displayName": "Storage Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The storage class to set in the request." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Access Key or Minio Access Key. If not set camel will connect to service for anonymous access." },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key Id or Minio Secret Key. If not set camel will connect to service for anonymous access." }
+  },
+  "properties": {
+    "bucketName": { "kind": "path", "displayName": "Bucket Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Bucket name" },
+    "autoCreateBucket": { "kind": "parameter", "displayName": "Auto Create Bucket", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Setting the autocreation of the bucket if bucket name not exist." },
+    "customHttpClient": { "kind": "parameter", "displayName": "Custom Http Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "okhttp3.OkHttpClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set custom HTTP client for authenticated access." },
+    "endpoint": { "kind": "parameter", "displayName": "Endpoint", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Endpoint can be an URL, domain name, IPv4 address or IPv6 address." },
+    "minioClient": { "kind": "parameter", "displayName": "Minio Client", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "io.minio.MinioClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Reference to a Minio Client object in the registry." },
+    "objectLock": { "kind": "parameter", "displayName": "Object Lock", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set when creating new bucket." },
+    "policy": { "kind": "parameter", "displayName": "Policy", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The policy for this queue to set in the method." },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "common", "label": "common", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "TCP\/IP port number. 80 and 443 are used as defaults for HTTP and HTTPS." },
+    "region": { "kind": "parameter", "displayName": "Region", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The region in which Minio client needs to work. When using this parameter, the configuration will expect the lowercase name of the re [...]
+    "secure": { "kind": "parameter", "displayName": "Secure", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Flag to indicate to use secure connection to minio service or not." },
+    "serverSideEncryption": { "kind": "parameter", "displayName": "Server Side Encryption", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "io.minio.ServerSideEncryption", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Server-side encryption." },
+    "serverSideEncryptionCustomerKey": { "kind": "parameter", "displayName": "Server Side Encryption Customer Key", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "io.minio.ServerSideEncryptionCustomerKey", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Server-side encryption for source object while copy\/mo [...]
+    "autoCloseBody": { "kind": "parameter", "displayName": "Auto Close Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "If this option is true and includeBody is true, then the MinioObject.close() method will be called  [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "bypassGovernanceMode": { "kind": "parameter", "displayName": "Bypass Governance Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set this flag if you want to bypassGovernanceMode when deleting a particular object." },
+    "deleteAfterRead": { "kind": "parameter", "displayName": "Delete After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Delete objects from Minio after they have been retrieved. The delete is only performed if the E [...]
+    "delimiter": { "kind": "parameter", "displayName": "Delimiter", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The delimiter which is used in the ListObjectsRequest to only consume objects we are interested in." },
+    "destinationBucketName": { "kind": "parameter", "displayName": "Destination Bucket Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Source bucket name." },
+    "destinationObjectName": { "kind": "parameter", "displayName": "Destination Object Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Source object name." },
+    "includeBody": { "kind": "parameter", "displayName": "Include Body", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "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 head [...]
+    "includeFolders": { "kind": "parameter", "displayName": "Include Folders", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The flag which is used in the ListObjectsRequest to set include folders." },
+    "includeUserMetadata": { "kind": "parameter", "displayName": "Include User Metadata", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The flag which is used in the ListObjectsRequest to get objects with user meta data." },
+    "includeVersions": { "kind": "parameter", "displayName": "Include Versions", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The flag which is used in the ListObjectsRequest to get objects with versioning." },
+    "length": { "kind": "parameter", "displayName": "Length", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Number of bytes of object data from offset." },
+    "matchETag": { "kind": "parameter", "displayName": "Match ETag", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set match ETag parameter for get object(s)." },
+    "maxConnections": { "kind": "parameter", "displayName": "Max Connections", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set the maxConnections parameter in the minio client configuration" },
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum numbe [...]
+    "modifiedSince": { "kind": "parameter", "displayName": "Modified Since", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "java.time.ZonedDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set modified since parameter for get object(s)." },
+    "moveAfterRead": { "kind": "parameter", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Move objects from bucket to a different bucket after they have been retrieved. To accomplish the o [...]
+    "notMatchETag": { "kind": "parameter", "displayName": "Not Match ETag", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set not match ETag parameter for get object(s)." },
+    "objectName": { "kind": "parameter", "displayName": "Object Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "To get the object from the bucket with the given object name." },
+    "offset": { "kind": "parameter", "displayName": "Offset", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Start byte position of object data." },
+    "prefix": { "kind": "parameter", "displayName": "Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Object name starts with prefix." },
+    "recursive": { "kind": "parameter", "displayName": "Recursive", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "List recursively than directory structure emulation." },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "startAfter": { "kind": "parameter", "displayName": "Start After", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "list objects in bucket after this object name." },
+    "unModifiedSince": { "kind": "parameter", "displayName": "Un Modified Since", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "java.time.ZonedDateTime", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set un modified since parameter for get object(s)." },
+    "useVersion1": { "kind": "parameter", "displayName": "Use Version1", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "when true, version 1 of REST API is used." },
+    "versionId": { "kind": "parameter", "displayName": "Version Id", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Set specific version_ID of a object when deleting the object." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "deleteAfterWrite": { "kind": "parameter", "displayName": "Delete After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Delete file object after the Minio file has been uploaded." },
+    "keyName": { "kind": "parameter", "displayName": "Key Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Setting the key name for an element in the bucket through endpoint parameter." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.minio.MinioOperations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteObjects", "deleteBucket", "listBuckets", "getObject", "getObjectRange" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configura [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not." },
+    "storageClass": { "kind": "parameter", "displayName": "Storage Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "The storage class to set in the request." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Access Key or Minio Access Key. If not set camel will connect to service for anonymous access." },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.minio.MinioConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key Id or Minio Secret Key. If not set camel will connect to service for anonymous access." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mllp.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mllp.json
new file mode 100644
index 0000000..69ceb11
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mllp.json
@@ -0,0 +1,86 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mllp",
+    "title": "MLLP",
+    "description": "Communicate with external systems using the MLLP protocol.",
+    "deprecated": false,
+    "firstVersion": "2.17.0",
+    "label": "networking,rpc,mllp",
+    "javaType": "org.apache.camel.component.mllp.MllpComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mllp",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mllp",
+    "extendsScheme": "",
+    "syntax": "mllp:hostname:port",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "autoAck": { "kind": "property", "displayName": "Auto Ack", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable the automatic generation of a MLLP Acknowledgement MLLP Consumers only" },
+    "charsetName": { "kind": "property", "displayName": "Charset Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets the default charset to use" },
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.mllp.MllpConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the default configuration to use when creating MLLP endpoints." },
+    "hl7Headers": { "kind": "property", "displayName": "Hl7 Headers", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable the automatic generation of message headers from the HL7 Message MLLP Consumers only" },
+    "requireEndOfData": { "kind": "property", "displayName": "Require End Of Data", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable strict compliance to the MLLP standard. The MLLP standard specifies START_OF_BLOCKhl7 pay [...]
+    "stringPayload": { "kind": "property", "displayName": "String Payload", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable converting the payload to a String. If enabled, HL7 Payloads received from external systems will  [...]
+    "validatePayload": { "kind": "property", "displayName": "Validate Payload", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable the validation of HL7 Payloads If enabled, HL7 Payloads received from external systems will  [...]
+    "acceptTimeout": { "kind": "property", "displayName": "Accept Timeout", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Timeout (in milliseconds) while waiting for a TCP connection TCP Server Only" },
+    "backlog": { "kind": "property", "displayName": "Backlog", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The maximum queue length for incoming connection indications (a request to connect) is set to the  [...]
+    "bindRetryInterval": { "kind": "property", "displayName": "Bind Retry Interval", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "TCP Server Only - The number of milliseconds to wait between bind attempts" },
+    "bindTimeout": { "kind": "property", "displayName": "Bind Timeout", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "TCP Server Only - The number of milliseconds to retry binding to a server port" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptio [...]
+    "lenientBind": { "kind": "property", "displayName": "Lenient Bind", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "TCP Server Only - Allow the endpoint to start before the TCP ServerSocket is bound. In some envir [...]
+    "maxConcurrentConsumers": { "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The maximum number of concurrent MLLP Consumer connections that will be allowed. I [...]
+    "reuseAddress": { "kind": "property", "displayName": "Reuse Address", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/disable the SO_REUSEADDR socket option." },
+    "exchangePattern": { "kind": "property", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "InOut", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets [...]
+    "connectTimeout": { "kind": "property", "displayName": "Connect Timeout", "group": "producer", "label": "advanced,producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Timeout (in milliseconds) for establishing for a TCP connection TCP Client only" },
+    "idleTimeoutStrategy": { "kind": "property", "displayName": "Idle Timeout Strategy", "group": "producer", "label": "advanced,producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.mllp.MllpIdleTimeoutStrategy", "enum": [ "RESET", "CLOSE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "RESET", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "d [...]
+    "keepAlive": { "kind": "property", "displayName": "Keep Alive", "group": "producer", "label": "advanced,producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/disable the SO_KEEPALIVE socket option." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "tcpNoDelay": { "kind": "property", "displayName": "Tcp No Delay", "group": "producer", "label": "advanced,producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/disable the TCP_NODELAY socket option." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "defaultCharset": { "kind": "property", "displayName": "Default Charset", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ISO-8859-1", "description": "Set the default character set to use for byte to\/from String conversions." },
+    "logPhi": { "kind": "property", "displayName": "Log Phi", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "description": "Whether to log PHI" },
+    "logPhiMaxBytes": { "kind": "property", "displayName": "Log Phi Max Bytes", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5120", "description": "Set the maximum number of bytes of PHI that will be logged in a log entry." },
+    "readTimeout": { "kind": "property", "displayName": "Read Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The SO_TIMEOUT value (in milliseconds) used after the start of an MLLP frame has been received" },
+    "receiveBufferSize": { "kind": "property", "displayName": "Receive Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets the SO_RCVBUF option to the specified value (in bytes)" },
+    "receiveTimeout": { "kind": "property", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 15000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The SO_TIMEOUT value (in milliseconds) used when waiting for the start of an MLLP frame" },
+    "sendBufferSize": { "kind": "property", "displayName": "Send Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets the SO_SNDBUF option to the specified value (in bytes)" },
+    "idleTimeout": { "kind": "property", "displayName": "Idle Timeout", "group": "tcp", "label": "advanced,tcp", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The approximate idle time allowed before the Client TCP Connection will be reset. A null value or a value less than or e [...]
+  },
+  "properties": {
+    "hostname": { "kind": "path", "displayName": "Hostname", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Hostname or IP for connection for the TCP connection. The default value is null, which means any local IP address" },
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Port number for the TCP connection" },
+    "autoAck": { "kind": "parameter", "displayName": "Auto Ack", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable the automatic generation of a MLLP Acknowledgement MLLP Consumers only" },
+    "charsetName": { "kind": "parameter", "displayName": "Charset Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets the default charset to use" },
+    "hl7Headers": { "kind": "parameter", "displayName": "Hl7 Headers", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable the automatic generation of message headers from the HL7 Message MLLP Consumers only" },
+    "requireEndOfData": { "kind": "parameter", "displayName": "Require End Of Data", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable strict compliance to the MLLP standard. The MLLP standard specifies START_OF_BLOCKhl7 pa [...]
+    "stringPayload": { "kind": "parameter", "displayName": "String Payload", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable converting the payload to a String. If enabled, HL7 Payloads received from external systems will [...]
+    "validatePayload": { "kind": "parameter", "displayName": "Validate Payload", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/Disable the validation of HL7 Payloads If enabled, HL7 Payloads received from external systems will [...]
+    "acceptTimeout": { "kind": "parameter", "displayName": "Accept Timeout", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 60000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Timeout (in milliseconds) while waiting for a TCP connection TCP Server Only" },
+    "backlog": { "kind": "parameter", "displayName": "Backlog", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The maximum queue length for incoming connection indications (a request to connect) is set to the [...]
+    "bindRetryInterval": { "kind": "parameter", "displayName": "Bind Retry Interval", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "TCP Server Only - The number of milliseconds to wait between bind attempts" },
+    "bindTimeout": { "kind": "parameter", "displayName": "Bind Timeout", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "TCP Server Only - The number of milliseconds to retry binding to a server port" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any excepti [...]
+    "lenientBind": { "kind": "parameter", "displayName": "Lenient Bind", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "TCP Server Only - Allow the endpoint to start before the TCP ServerSocket is bound. In some envi [...]
+    "maxConcurrentConsumers": { "kind": "parameter", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The maximum number of concurrent MLLP Consumer connections that will be allowed.  [...]
+    "reuseAddress": { "kind": "parameter", "displayName": "Reuse Address", "group": "consumer", "label": "advanced,consumer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/disable the SO_REUSEADDR socket option." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "InOut", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Set [...]
+    "connectTimeout": { "kind": "parameter", "displayName": "Connect Timeout", "group": "producer", "label": "advanced,producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Timeout (in milliseconds) for establishing for a TCP connection TCP Client only" },
+    "idleTimeoutStrategy": { "kind": "parameter", "displayName": "Idle Timeout Strategy", "group": "producer", "label": "advanced,producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.mllp.MllpIdleTimeoutStrategy", "enum": [ "RESET", "CLOSE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "RESET", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": " [...]
+    "keepAlive": { "kind": "parameter", "displayName": "Keep Alive", "group": "producer", "label": "advanced,producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/disable the SO_KEEPALIVE socket option." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "tcpNoDelay": { "kind": "parameter", "displayName": "Tcp No Delay", "group": "producer", "label": "advanced,producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Enable\/disable the TCP_NODELAY socket option." },
+    "readTimeout": { "kind": "parameter", "displayName": "Read Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The SO_TIMEOUT value (in milliseconds) used after the start of an MLLP frame has been received" },
+    "receiveBufferSize": { "kind": "parameter", "displayName": "Receive Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets the SO_RCVBUF option to the specified value (in bytes)" },
+    "receiveTimeout": { "kind": "parameter", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 15000, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The SO_TIMEOUT value (in milliseconds) used when waiting for the start of an MLLP frame" },
+    "sendBufferSize": { "kind": "parameter", "displayName": "Send Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "8192", "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "Sets the SO_SNDBUF option to the specified value (in bytes)" },
+    "idleTimeout": { "kind": "parameter", "displayName": "Idle Timeout", "group": "tcp", "label": "advanced,tcp", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.mllp.MllpConfiguration", "configurationField": "configuration", "description": "The approximate idle time allowed before the Client TCP Connection will be reset. A null value or a value less than or  [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mock.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mock.json
new file mode 100644
index 0000000..9057ca9
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mock.json
@@ -0,0 +1,45 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mock",
+    "title": "Mock",
+    "description": "Test routes and mediation rules using mocks.",
+    "deprecated": false,
+    "firstVersion": "1.0.0",
+    "label": "core,testing",
+    "javaType": "org.apache.camel.component.mock.MockComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mock",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mock",
+    "extendsScheme": "",
+    "syntax": "mock:name",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "log": { "kind": "property", "displayName": "Log", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockE [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "exchangeFormatter": { "kind": "property", "displayName": "Exchange Formatter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExchangeFormatter", "deprecated": false, "autowired": true, "secret": false, "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter." }
+  },
+  "properties": {
+    "name": { "kind": "path", "displayName": "Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of mock endpoint" },
+    "assertPeriod": { "kind": "parameter", "displayName": "Assert Period", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a grace period after which the mock endpoint will re-assert to ensure the preliminary assertion is still valid. This is used for example to assert that exactly a number of messages arrives. For example if expectedMessageCount(int) was se [...]
+    "expectedCount": { "kind": "parameter", "displayName": "Expected Count", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Specifies the expected number of message exchanges that should be received by this endpoint. Beware: If you want to expect that 0 messages, then take extra care, as 0 matches when the tests starts, so you need to set a ass [...]
+    "failFast": { "kind": "parameter", "displayName": "Fail Fast", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether assertIsSatisfied() should fail fast at the first detected failed expectation while it may otherwise wait for all expected messages to arrive before performing expectations verifications. Is by default true. Set  [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "log": { "kind": "parameter", "displayName": "Log", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.Mock [...]
+    "reportGroup": { "kind": "parameter", "displayName": "Report Group", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "A number that is used to turn on throughput logging based on groups of the size." },
+    "resultMinimumWaitTime": { "kind": "parameter", "displayName": "Result Minimum Wait Time", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the minimum expected amount of time (in millis) the assertIsSatisfied() will wait on a latch until it is satisfied" },
+    "resultWaitTime": { "kind": "parameter", "displayName": "Result Wait Time", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the maximum amount of time (in millis) the assertIsSatisfied() will wait on a latch until it is satisfied" },
+    "retainFirst": { "kind": "parameter", "displayName": "Retain First", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Specifies to only retain the first n'th number of received Exchanges. This is used when testing with big data, to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When u [...]
+    "retainLast": { "kind": "parameter", "displayName": "Retain Last", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "description": "Specifies to only retain the last n'th number of received Exchanges. This is used when testing with big data, to reduce memory consumption by not storing copies of every Exchange this mock endpoint receives. Important: When usin [...]
+    "sleepForEmptyTest": { "kind": "parameter", "displayName": "Sleep For Empty Test", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "description": "Allows a sleep to be specified to wait to check that this endpoint really is empty when expectedMessageCount(int) is called with zero" },
+    "copyOnExchange": { "kind": "parameter", "displayName": "Copy On Exchange", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Sets whether to make a deep copy of the incoming Exchange when received at this mock endpoint. Is by default true." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb-gridfs.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb-gridfs.json
new file mode 100644
index 0000000..6fcb3da
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb-gridfs.json
@@ -0,0 +1,48 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mongodb-gridfs",
+    "title": "MongoDB GridFS",
+    "description": "Interact with MongoDB GridFS.",
+    "deprecated": false,
+    "firstVersion": "2.18.0",
+    "label": "database,nosql",
+    "javaType": "org.apache.camel.component.mongodb.gridfs.GridFsComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mongodb-gridfs",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mongodb-gridfs",
+    "extendsScheme": "",
+    "syntax": "mongodb-gridfs:connectionBean",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "connectionBean": { "kind": "path", "displayName": "Connection Bean", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of com.mongodb.client.MongoClient to use." },
+    "bucket": { "kind": "parameter", "displayName": "Bucket", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "fs", "description": "Sets the name of the GridFS bucket within the database. Default is fs." },
+    "database": { "kind": "parameter", "displayName": "Database", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the name of the MongoDB database to target" },
+    "readPreference": { "kind": "parameter", "displayName": "Read Preference", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.mongodb.ReadPreference", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a MongoDB ReadPreference on the Mongo connection. Read preferences set directly on the connection will be overridden by this setting. The com.mongodb.ReadPreference#valueOf(String) utility method is used to resolve the pass [...]
+    "writeConcern": { "kind": "parameter", "displayName": "Write Concern", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.mongodb.WriteConcern", "enum": [ "ACKNOWLEDGED", "W1", "W2", "W3", "UNACKNOWLEDGED", "JOURNALED", "MAJORITY" ], "deprecated": false, "autowired": false, "secret": false, "description": "Set the WriteConcern for write operations on MongoDB using the standard ones. Resolved from the fields of the WriteConcern class by calling the W [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500", "description": "Sets the delay between polls within the Consumer. Default is 500ms" },
+    "fileAttributeName": { "kind": "parameter", "displayName": "File Attribute Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel-processed", "description": "If the QueryType uses a FileAttribute, this sets the name of the attribute that is used. Default is camel-processed." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "consumer", "label": "consumer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "Sets the initialDelay before the consumer will start polling. Default is 1000ms" },
+    "persistentTSCollection": { "kind": "parameter", "displayName": "Persistent TSCollection", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel-timestamps", "description": "If the QueryType uses a persistent timestamp, this sets the name of the collection within the DB to store the timestamp." },
+    "persistentTSObject": { "kind": "parameter", "displayName": "Persistent TSObject", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "camel-timestamp", "description": "If the QueryType uses a persistent timestamp, this is the ID of the object in the collection to store the timestamp." },
+    "query": { "kind": "parameter", "displayName": "Query", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Additional query parameters (in JSON) that are used to configure the query used for finding files in the GridFsConsumer" },
+    "queryStrategy": { "kind": "parameter", "displayName": "Query Strategy", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.mongodb.gridfs.QueryStrategy", "enum": [ "TimeStamp", "PersistentTimestamp", "FileAttribute", "TimeStampAndFileAttribute", "PersistentTimestampAndFileAttribute" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TimeStamp", "description": "Sets the QueryStrategy that i [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the operation this endpoint will execute against GridFs." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb.json
new file mode 100644
index 0000000..6499270
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mongodb.json
@@ -0,0 +1,60 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mongodb",
+    "title": "MongoDB",
+    "description": "Perform operations on MongoDB documents and collections.",
+    "deprecated": false,
+    "firstVersion": "2.19.0",
+    "label": "database,nosql",
+    "javaType": "org.apache.camel.component.mongodb.MongoDbComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mongodb",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mongodb",
+    "extendsScheme": "",
+    "syntax": "mongodb:connectionBean",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "mongoConnection": { "kind": "property", "displayName": "Mongo Connection", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.mongodb.client.MongoClient", "deprecated": false, "autowired": true, "secret": false, "description": "Shared client used for connection. All endpoints generated from the component will share this connection client." },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "connectionBean": { "kind": "path", "displayName": "Connection Bean", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the connection bean reference used to lookup a client for connecting to a database." },
+    "collection": { "kind": "parameter", "displayName": "Collection", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of the MongoDB collection to bind to this endpoint" },
+    "collectionIndex": { "kind": "parameter", "displayName": "Collection Index", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the collection index (JSON FORMAT : { field1 : order1, field2 : order2})" },
+    "createCollection": { "kind": "parameter", "displayName": "Create Collection", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Create collection during initialisation if it doesn't exist. Default is true." },
+    "database": { "kind": "parameter", "displayName": "Database", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the name of the MongoDB database to target" },
+    "hosts": { "kind": "parameter", "displayName": "Hosts", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Host address of mongodb server in host:port format. It's possible also use more than one address, as comma separated list of hosts: host1:port1,host2:port2. If hosts parameter is specified, provided connectionBean is ignored." },
+    "mongoConnection": { "kind": "parameter", "displayName": "Mongo Connection", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.mongodb.client.MongoClient", "deprecated": false, "autowired": false, "secret": false, "description": "Sets the connection bean used as a client for connecting to a database." },
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.mongodb.MongoDbOperation", "enum": [ "findById", "findOneByQuery", "findAll", "findDistinct", "insert", "save", "update", "remove", "bulkWrite", "aggregate", "getDbStats", "getColStats", "count", "command" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the operation this endpoint [...]
+    "outputType": { "kind": "parameter", "displayName": "Output Type", "group": "common", "label": "common", "required": false, "type": "object", "javaType": "org.apache.camel.component.mongodb.MongoDbOutputType", "enum": [ "DocumentList", "Document", "MongoIterable" ], "deprecated": false, "autowired": false, "secret": false, "description": "Convert the output of the producer to the selected type : DocumentList Document or MongoIterable. DocumentList or MongoIterable applies to findAll  [...]
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "consumerType": { "kind": "parameter", "displayName": "Consumer Type", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Consumer type." },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "cursorRegenerationDelay": { "kind": "parameter", "displayName": "Cursor Regeneration Delay", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "description": "MongoDB tailable cursors will block until new data arrives. If no new data is inserted, after some time the cursor will be automatically freed and closed by the MongoDB server. The client is expe [...]
+    "dynamicity": { "kind": "parameter", "displayName": "Dynamicity", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether this endpoint will attempt to dynamically resolve the target database and collection from the incoming Exchange properties. Can be used to override at runtime the database and collection specified on the other [...]
+    "readPreference": { "kind": "parameter", "displayName": "Read Preference", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "PRIMARY", "PRIMARY_PREFERRED", "SECONDARY", "SECONDARY_PREFERRED", "NEAREST" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PRIMARY", "description": "Configure how MongoDB clients route read operations to the members of a replica set. Possible values are PRIMA [...]
+    "writeConcern": { "kind": "parameter", "displayName": "Write Concern", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "ACKNOWLEDGED", "W1", "W2", "W3", "UNACKNOWLEDGED", "JOURNALED", "MAJORITY" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "ACKNOWLEDGED", "description": "Configure the connection bean with the level of acknowledgment requested from MongoDB for write operations to a [...]
+    "writeResultAsHeader": { "kind": "parameter", "displayName": "Write Result As Header", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "In write operations, it determines whether instead of returning WriteResult as the body of the OUT message, we transfer the IN message to the OUT and attach the WriteResult as a header." },
+    "streamFilter": { "kind": "parameter", "displayName": "Stream Filter", "group": "changeStream", "label": "consumer,changeStream", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Filter condition for change streams consumer." },
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "User password for mongodb connection" },
+    "username": { "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "description": "Username for mongodb connection" },
+    "persistentId": { "kind": "parameter", "displayName": "Persistent Id", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "One tail tracking collection can host many trackers for several tailable consumers. To keep them separate, each tracker should have its own unique persistentId." },
+    "persistentTailTracking": { "kind": "parameter", "displayName": "Persistent Tail Tracking", "group": "tail", "label": "consumer,tail", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable persistent tail tracking, which is a mechanism to keep track of the last consumed message across system restarts. The next time the system is up, the endpoint will recover the cursor from  [...]
+    "tailTrackCollection": { "kind": "parameter", "displayName": "Tail Track Collection", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Collection where tail tracking information will be persisted. If not specified, MongoDbTailTrackingConfig#DEFAULT_COLLECTION will be used by default." },
+    "tailTrackDb": { "kind": "parameter", "displayName": "Tail Track Db", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Indicates what database the tail tracking mechanism will persist to. If not specified, the current database will be picked by default. Dynamicity will not be taken into account even if enabled, i.e. the tail tracking database will n [...]
+    "tailTrackField": { "kind": "parameter", "displayName": "Tail Track Field", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Field where the last tracked value will be placed. If not specified, MongoDbTailTrackingConfig#DEFAULT_FIELD will be used by default." },
+    "tailTrackIncreasingField": { "kind": "parameter", "displayName": "Tail Track Increasing Field", "group": "tail", "label": "consumer,tail", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Correlation field in the incoming record which is of increasing nature and will be used to position the tailing cursor every time it is generated. The cursor will be (re)created with a query of type: tailT [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/msv.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/msv.json
new file mode 100644
index 0000000..1ebdd4b
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/msv.json
@@ -0,0 +1,43 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "msv",
+    "title": "MSV",
+    "description": "Validate XML payloads using Multi-Schema Validator (MSV).",
+    "deprecated": true,
+    "firstVersion": "1.1.0",
+    "label": "validation",
+    "javaType": "org.apache.camel.component.validator.msv.MsvComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-msv",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "msv",
+    "extendsScheme": "",
+    "syntax": "msv:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "resourceResolverFactory": { "kind": "property", "displayName": "Resource Resolver Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.validator.ValidatorResourceResolverFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI" },
+    "schemaFactory": { "kind": "property", "displayName": "Schema Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.xml.validation.SchemaFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the javax.xml.validation.SchemaFactory." }
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "URL to a local resource on the classpath, or a reference to lookup a bean in the Registry, or a full URL to a remote resource or resource on the file system which contains the XSD to validate against." },
+    "failOnNullBody": { "kind": "parameter", "displayName": "Fail On Null Body", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to fail if no body exists." },
+    "failOnNullHeader": { "kind": "parameter", "displayName": "Fail On Null Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to fail if no header exists when validating against a header." },
+    "headerName": { "kind": "parameter", "displayName": "Header Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To validate against a header instead of the message body." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "errorHandler": { "kind": "parameter", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.support.processor.validation.ValidatorErrorHandler", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.processor.validation.ValidatorErrorHandler. The default error handler captures the errors and throws an exception." },
+    "resourceResolver": { "kind": "parameter", "displayName": "Resource Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.w3c.dom.ls.LSResourceResolver", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom LSResourceResolver. Do not use together with resourceResolverFactory" },
+    "resourceResolverFactory": { "kind": "parameter", "displayName": "Resource Resolver Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.validator.ValidatorResourceResolverFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI. The default resource resolver factory resturns a resource resolver whic [...]
+    "schemaFactory": { "kind": "parameter", "displayName": "Schema Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "javax.xml.validation.SchemaFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom javax.xml.validation.SchemaFactory" },
+    "schemaLanguage": { "kind": "parameter", "displayName": "Schema Language", "group": "advanced", "label": "advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "http:\/\/www.w3.org\/2001\/XMLSchema", "description": "Configures the W3C XML Schema Namespace URI." },
+    "useSharedSchema": { "kind": "parameter", "displayName": "Use Shared Schema", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the Schema instance should be shared or not. This option is introduced to work around a JDK 1.6.x bug. Xerces should not have this issue." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mustache.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mustache.json
new file mode 100644
index 0000000..7810a29
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mustache.json
@@ -0,0 +1,41 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mustache",
+    "title": "Mustache",
+    "description": "Transform messages using a Mustache template.",
+    "deprecated": false,
+    "firstVersion": "2.12.0",
+    "label": "transformation",
+    "javaType": "org.apache.camel.component.mustache.MustacheComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mustache",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mustache",
+    "extendsScheme": "",
+    "syntax": "mustache:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "allowContextMapAll": { "kind": "property", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext.  [...]
+    "allowTemplateFromHeader": { "kind": "property", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulne [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "mustacheFactory": { "kind": "property", "displayName": "Mustache Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "com.github.mustachejava.MustacheFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MustacheFactory" }
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "allowTemplateFromHeader": { "kind": "parameter", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vuln [...]
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to use resource content cache or not" },
+    "encoding": { "kind": "parameter", "displayName": "Encoding", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Character encoding of the resource content." },
+    "endDelimiter": { "kind": "parameter", "displayName": "End Delimiter", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "}}", "description": "Characters used to mark template code end." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "startDelimiter": { "kind": "parameter", "displayName": "Start Delimiter", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "{{", "description": "Characters used to mark template code beginning." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mvel.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mvel.json
new file mode 100644
index 0000000..4151a4a
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mvel.json
@@ -0,0 +1,38 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mvel",
+    "title": "MVEL",
+    "description": "Transform messages using an MVEL template.",
+    "deprecated": false,
+    "firstVersion": "2.12.0",
+    "label": "transformation,script",
+    "javaType": "org.apache.camel.component.mvel.MvelComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mvel",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mvel",
+    "extendsScheme": "",
+    "syntax": "mvel:resourceUri",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "allowContextMapAll": { "kind": "property", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext.  [...]
+    "allowTemplateFromHeader": { "kind": "property", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulne [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+  },
+  "properties": {
+    "resourceUri": { "kind": "path", "displayName": "Resource Uri", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Path to the resource. You can prefix with: classpath, file, http, ref, or bean. classpath, file and http loads the resource using these protocols (classpath is default). ref will lookup the resource in the registry. bean will [...]
+    "allowContextMapAll": { "kind": "parameter", "displayName": "Allow Context Map All", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. [...]
+    "allowTemplateFromHeader": { "kind": "parameter", "displayName": "Allow Template From Header", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vuln [...]
+    "contentCache": { "kind": "parameter", "displayName": "Content Cache", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether to use resource content cache or not" },
+    "encoding": { "kind": "parameter", "displayName": "Encoding", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Character encoding of the resource content." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mybatis.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mybatis.json
new file mode 100644
index 0000000..208c67b
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/mybatis.json
@@ -0,0 +1,64 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "mybatis",
+    "title": "MyBatis",
+    "description": "Performs a query, poll, insert, update or delete in a relational database using MyBatis.",
+    "deprecated": false,
+    "firstVersion": "2.7.0",
+    "label": "database,sql",
+    "javaType": "org.apache.camel.component.mybatis.MyBatisComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-mybatis",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "mybatis",
+    "extendsScheme": "",
+    "syntax": "mybatis:statement",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configurationUri": { "kind": "property", "displayName": "Configuration Uri", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SqlMapConfig.xml", "description": "Location of MyBatis xml configuration file. The default value is: SqlMapConfig.xml loaded from the classpath" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "sqlSessionFactory": { "kind": "property", "displayName": "Sql Session Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.ibatis.session.SqlSessionFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the SqlSessionFactory" }
+  },
+  "properties": {
+    "statement": { "kind": "path", "displayName": "Statement", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The statement name in the MyBatis XML mapping file which maps to the query, insert, update or delete operation you wish to evaluate." },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "maxMessagesPerPoll": { "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "This option is intended to split results returned by the database pool into the batches and deliver them in multiple exchanges. This integer defines the maximum messages to deliver in single exchange. By default [...]
+    "onConsume": { "kind": "parameter", "displayName": "On Consume", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Statement to run after data has been processed in the route" },
+    "routeEmptyResultSet": { "kind": "parameter", "displayName": "Route Empty Result Set", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether allow empty resultset to be routed to the next hop" },
+    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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." },
+    "transacted": { "kind": "parameter", "displayName": "Transacted", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enables or disables transaction. If enabled then if processing an exchange failed then the consumer breaks out processing any further exchanges to cause a rollback eager." },
+    "useIterator": { "kind": "parameter", "displayName": "Use Iterator", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Process resultset individually or as a list" },
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
+    "processingStrategy": { "kind": "parameter", "displayName": "Processing Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.mybatis.MyBatisProcessingStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom MyBatisProcessingStrategy" },
+    "executorType": { "kind": "parameter", "displayName": "Executor Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.ibatis.session.ExecutorType", "enum": [ "SIMPLE", "REUSE", "BATCH" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "SIMPLE", "description": "The executor type to be used while executing statements. simple - executor does nothing special. reuse - executor reuses prepared statements. ba [...]
+    "inputHeader": { "kind": "parameter", "displayName": "Input Header", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "User the header value for input parameters instead of the message body. By default, inputHeader == null and the input parameters are taken from the message body. If outputHeader is set, the value is used and query parameters will be t [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "outputHeader": { "kind": "parameter", "displayName": "Output Header", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Store the query result in a header instead of the message body. By default, outputHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If outputHeader is set, the  [...]
+    "statementType": { "kind": "parameter", "displayName": "Statement Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.mybatis.StatementType", "enum": [ "SelectOne", "SelectList", "Insert", "InsertList", "Update", "UpdateList", "Delete", "DeleteList" ], "deprecated": false, "autowired": false, "secret": false, "description": "Mandatory to specify for the producer to control which kind of operation to invoke." },
+    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening agai [...]
+    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
+    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+    "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, "autowired": 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, "autowired": 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, "autowired": 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, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nagios.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nagios.json
new file mode 100644
index 0000000..a2c6efe
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nagios.json
@@ -0,0 +1,43 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "nagios",
+    "title": "Nagios",
+    "description": "Send passive checks to Nagios using JSendNSCA.",
+    "deprecated": true,
+    "firstVersion": "2.3.0",
+    "label": "monitoring",
+    "javaType": "org.apache.camel.component.nagios.NagiosComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-nagios",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "nagios",
+    "extendsScheme": "",
+    "syntax": "nagios:host:port",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "connectionTimeout": { "kind": "property", "displayName": "Connection Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "Connection timeout in millis." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "timeout": { "kind": "property", "displayName": "Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "Sending timeout in millis." },
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.nagios.NagiosConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use a shared NagiosConfiguration" },
+    "encryption": { "kind": "property", "displayName": "Encryption", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "com.googlecode.jsendnsca.encryption.Encryption", "enum": [ "NONE", "TRIPLE_DES", "XOR", "RIJNDAEL128", "RIJNDAEL192", "RIJNDAEL256", "BLOWFISH" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "descrip [...]
+    "password": { "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "Password to be authenticated when sending checks to Nagios." }
+  },
+  "properties": {
+    "host": { "kind": "path", "displayName": "Host", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "This is the address of the Nagios host where checks should be send." },
+    "port": { "kind": "path", "displayName": "Port", "group": "producer", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "The port number of the host." },
+    "connectionTimeout": { "kind": "parameter", "displayName": "Connection Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "Connection timeout in millis." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "sendSync": { "kind": "parameter", "displayName": "Send Sync", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not to use synchronous when sending a passive check. Setting it to false will allow Camel to continue routing the message and the passive check message will be send asynchronously." },
+    "timeout": { "kind": "parameter", "displayName": "Timeout", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 5000, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "Sending timeout in millis." },
+    "encryption": { "kind": "parameter", "displayName": "Encryption", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "com.googlecode.jsendnsca.encryption.Encryption", "enum": [ "NONE", "TRIPLE_DES", "XOR", "RIJNDAEL128", "RIJNDAEL192", "RIJNDAEL256", "BLOWFISH" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "descri [...]
+    "password": { "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.nagios.NagiosConfiguration", "configurationField": "configuration", "description": "Password to be authenticated when sending checks to Nagios." }
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty-http.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty-http.json
new file mode 100644
index 0000000..a7401af
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty-http.json
@@ -0,0 +1,190 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "netty-http",
+    "title": "Netty HTTP",
+    "description": "Netty HTTP server and client using the Netty 4.x.",
+    "deprecated": false,
+    "deprecationNote": "",
+    "firstVersion": "2.14.0",
+    "label": "networking,http",
+    "javaType": "org.apache.camel.component.netty.http.NettyHttpComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-netty-http",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "netty-http",
+    "extendsScheme": "netty",
+    "syntax": "netty-http:protocol:\/\/host:port\/path",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": true
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the NettyConfiguration as configuration when creating endpoints." },
+    "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer." },
+    "keepAlive": { "kind": "property", "displayName": "Keep Alive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to ensure socket is not closed due to inactivity" },
+    "reuseAddress": { "kind": "property", "displayName": "Reuse Address", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to facilitate socket multiplexing" },
+    "reuseChannel": { "kind": "property", "displayName": "Reuse Channel", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecy [...]
+    "sync": { "kind": "property", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way or request-response" },
+    "tcpNoDelay": { "kind": "property", "displayName": "Tcp No Delay", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to improve TCP protocol performance" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "broadcast": { "kind": "property", "displayName": "Broadcast", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to choose Multicast over UDP" },
+    "clientMode": { "kind": "property", "displayName": "Client Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the clientMode is true, netty consumer will connect the address as a TCP client." },
+    "muteException": { "kind": "property", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace." },
+    "reconnect": { "kind": "property", "displayName": "Reconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled" },
+    "reconnectInterval": { "kind": "property", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection" },
+    "backlog": { "kind": "property", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS. S [...]
+    "bossCount": { "kind": "property", "displayName": "Boss Count", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User c [...]
+    "bossGroup": { "kind": "property", "displayName": "Boss Group", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Set the BossGroup which could be used for handling the new connection of the server side [...]
+    "disconnectOnNoReply": { "kind": "property", "displayName": "Disconnect On No Reply", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates NettyConsumer if it sh [...]
+    "executorService": { "kind": "property", "displayName": "Executor Service", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.netty.util.concurrent.EventExecutorGroup", "deprecated": false, "autowired": false, "secret": false, "description": "To use the given EventExecutorGroup." },
+    "maximumPoolSize": { "kind": "property", "displayName": "Maximum Pool Size", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a maximum thread pool size for the netty consumer ordered thread pool. The default size is 2 x cpu_core plus 1. Setting this value to eg 10 will then use 10 threads unless 2 x cpu_core plus 1 is a higher value, wh [...]
+    "nettyServerBootstrapFactory": { "kind": "property", "displayName": "Netty Server Bootstrap Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyServerBootstrapFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom Netty [...]
+    "networkInterface": { "kind": "property", "displayName": "Network Interface", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When using UDP then this option can be used to specify a network interface by its name, s [...]
+    "noReplyLogLevel": { "kind": "property", "displayName": "No Reply Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "descr [...]
+    "serverClosedChannelExceptionCaughtLogLevel": { "kind": "property", "displayName": "Server Closed Channel Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "configurationClass": "org.apache.camel.component.netty.NettyCon [...]
+    "serverExceptionCaughtLogLevel": { "kind": "property", "displayName": "Server Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationFi [...]
+    "serverInitializerFactory": { "kind": "property", "displayName": "Server Initializer Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ServerInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom ServerInitializ [...]
+    "usingExecutorService": { "kind": "property", "displayName": "Using Executor Service", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are processed [...]
+    "connectTimeout": { "kind": "property", "displayName": "Connect Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Time to wait for a socket connection to be available. Value is in milliseconds." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is i [...]
+    "clientInitializerFactory": { "kind": "property", "displayName": "Client Initializer Factory", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ClientInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom ClientInitializ [...]
+    "correlationManager": { "kind": "property", "displayName": "Correlation Manager", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyCamelStateCorrelationManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom correlation manager [...]
+    "lazyChannelCreation": { "kind": "property", "displayName": "Lazy Channel Creation", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Channels can be lazily created to avoid exceptions, if the remote se [...]
+    "producerPoolEnabled": { "kind": "property", "displayName": "Producer Pool Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether producer pool is enabled or not. Important: If you turn this [...]
+    "producerPoolMaxActive": { "kind": "property", "displayName": "Producer Pool Max Active", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of objects that can be allocated by the po [...]
+    "producerPoolMaxIdle": { "kind": "property", "displayName": "Producer Pool Max Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 100, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of idle instances in the pool." },
+    "producerPoolMinEvictableIdle": { "kind": "property", "displayName": "Producer Pool Min Evictable Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the minimum amount of time (value in millis) [...]
+    "producerPoolMinIdle": { "kind": "property", "displayName": "Producer Pool Min Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the minimum number of instances allowed in the producer pool before the evictor thread ( [...]
+    "udpConnectionlessSending": { "kind": "property", "displayName": "Udp Connectionless Sending", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "This option supports connection less udp sending which is [...]
+    "useByteBuf": { "kind": "property", "displayName": "Use Byte Buf", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the useByteBuf is true, netty producer will turn the message body into ByteBuf bef [...]
+    "hostnameVerification": { "kind": "property", "displayName": "Hostname Verification", "group": " security", "label": "common, security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To enable\/disable hostname verification on SSLEngine" },
+    "allowSerializedHeaders": { "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP when transferExchange is true. When set to true, serializable o [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "channelGroup": { "kind": "property", "displayName": "Channel Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.group.ChannelGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a explicit ChannelGroup." },
+    "headerFilterStrategy": { "kind": "property", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter headers." },
+    "nativeTransport": { "kind": "property", "displayName": "Native Transport", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether to use native transport instead of NIO. Native transport takes advantage of the host ope [...]
+    "nettyHttpBinding": { "kind": "property", "displayName": "Netty Http Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.http.NettyHttpBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.component.netty.http.NettyHttpBinding for binding to\/from Netty and Camel Message API." },
+    "options": { "kind": "property", "displayName": "Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "option.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure additional netty options using opt [...]
+    "receiveBufferSize": { "kind": "property", "displayName": "Receive Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes." },
+    "receiveBufferSizePredictor": { "kind": "property", "displayName": "Receive Buffer Size Predictor", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail thread." },
+    "sendBufferSize": { "kind": "property", "displayName": "Send Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes." },
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The f [...]
+    "udpByteArrayCodec": { "kind": "property", "displayName": "Udp Byte Array Codec", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "For UDP only. If enabled the using byte array codec instead of Java serialization protocol." },
+    "workerCount": { "kind": "property", "displayName": "Worker Count", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this o [...]
+    "workerGroup": { "kind": "property", "displayName": "Worker Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multip [...]
+    "allowDefaultCodec": { "kind": "property", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The netty component installs a default codec if both, encoder\/decoder is null and textline is fal [...]
+    "autoAppendDelimiter": { "kind": "property", "displayName": "Auto Append Delimiter", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether or not to auto append missing end delimiter when sending using the textline codec." },
+    "decoderMaxLineLength": { "kind": "property", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The max line length to use for the textline codec." },
+    "decoders": { "kind": "property", "displayName": "Decoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "A list of decoders to be used. You can use a String which have values separated by comma, and have the [...]
+    "delimiter": { "kind": "property", "displayName": "Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.TextLineDelimiter", "enum": [ "LINE", "NULL" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "LINE", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The delimiter to use for the textline codec. [...]
+    "encoders": { "kind": "property", "displayName": "Encoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "A list of encoders to be used. You can use a String which have values separated by comma, and have the [...]
+    "encoding": { "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset." },
+    "textline": { "kind": "property", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specif [...]
+    "enabledProtocols": { "kind": "property", "displayName": "Enabled Protocols", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1,TLSv1.1,TLSv1.2", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Which protocols to enable when using SSL" },
+    "keyStoreFile": { "kind": "property", "displayName": "Key Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption" },
+    "keyStoreFormat": { "kind": "property", "displayName": "Key Store Format", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set" },
+    "keyStoreResource": { "kind": "property", "displayName": "Key Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can [...]
+    "needClientAuth": { "kind": "property", "displayName": "Need Client Auth", "group": "security", "label": "consumer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Configures whether the server needs client authentication when using SSL." },
+    "passphrase": { "kind": "property", "displayName": "Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH" },
+    "securityConfiguration": { "kind": "property", "displayName": "Security Configuration", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration for configuring secure web resources." },
+    "securityProvider": { "kind": "property", "displayName": "Security Provider", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set." },
+    "ssl": { "kind": "property", "displayName": "Ssl", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to specify whether SSL encryption is applied to this endpoint" },
+    "sslClientCertHeaders": { "kind": "property", "displayName": "Ssl Client Cert Headers", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message  [...]
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters" },
+    "sslHandler": { "kind": "property", "displayName": "Ssl Handler", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "io.netty.handler.ssl.SslHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Reference to a class that could be used to return an SSL Handler" },
+    "trustStoreFile": { "kind": "property", "displayName": "Trust Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption" },
+    "trustStoreResource": { "kind": "property", "displayName": "Trust Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you [...]
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "protocol": { "kind": "path", "displayName": "Protocol", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "http", "https" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The protocol to use which is either http, https or proxy - a consumer only option." },
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The local hostname such as localhost, or 0.0.0.0 when being a consumer. The remote HTTP server hostname when using pr [...]
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The host port number" },
+    "path": { "kind": "path", "displayName": "Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Resource path" },
+    "bridgeEndpoint": { "kind": "parameter", "displayName": "Bridge Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If the option is true, the producer will ignore the Exchange.HTTP_URI header, and use the endpoint [...]
+    "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and p [...]
+    "keepAlive": { "kind": "parameter", "displayName": "Keep Alive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to ensure socket is not closed due to inactivity" },
+    "reuseAddress": { "kind": "parameter", "displayName": "Reuse Address", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to facilitate socket multiplexing" },
+    "reuseChannel": { "kind": "parameter", "displayName": "Reuse Channel", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for  [...]
+    "sync": { "kind": "parameter", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way or request-response" },
+    "tcpNoDelay": { "kind": "parameter", "displayName": "Tcp No Delay", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to improve TCP protocol performance" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "matchOnUriPrefix": { "kind": "parameter", "displayName": "Match On Uri Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether or not Camel should try to find a target consumer by matching the URI pref [...]
+    "muteException": { "kind": "parameter", "displayName": "Mute Exception", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If enabled and an Exchange failed processing on the consumer side the response's body won' [...]
+    "send503whenSuspended": { "kind": "parameter", "displayName": "Send503when Suspended", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether to send back HTTP status code 503 when the consumer has been suspende [...]
+    "backlog": { "kind": "parameter", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on [...]
+    "bossCount": { "kind": "parameter", "displayName": "Boss Count", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is [...]
+    "bossGroup": { "kind": "parameter", "displayName": "Boss Group", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Set the BossGroup which could be used for handling the new connection of the s [...]
+    "chunkedMaxContentLength": { "kind": "parameter", "displayName": "Chunked Max Content Length", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1048576, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Value in bytes the max content length per chunked  [...]
+    "compression": { "kind": "parameter", "displayName": "Compression", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Allow using gzip\/deflate for compression on the Netty HTTP server if the c [...]
+    "disconnectOnNoReply": { "kind": "parameter", "displayName": "Disconnect On No Reply", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates NettyConsume [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "httpMethodRestrict": { "kind": "parameter", "displayName": "Http Method Restrict", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To disable HTTP methods on the Netty HTTP consumer. You can specify multiple separated by comma." },
+    "logWarnOnBadRequest": { "kind": "parameter", "displayName": "Log Warn On Bad Request", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether Netty HTTP server should log a WARN if decoding  [...]
+    "mapHeaders": { "kind": "parameter", "displayName": "Map Headers", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If this option is enabled, then during binding from Netty to Camel Message th [...]
+    "maxHeaderSize": { "kind": "parameter", "displayName": "Max Header Size", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 8192, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The maximum length of all headers. If the sum of the length of each header [...]
+    "nettyServerBootstrapFactory": { "kind": "parameter", "displayName": "Netty Server Bootstrap Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyServerBootstrapFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "To use a cu [...]
+    "nettySharedHttpServer": { "kind": "parameter", "displayName": "Netty Shared Http Server", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.http.NettySharedHttpServer", "deprecated": false, "autowired": false, "secret": false, "description": "To use a shared Netty HTTP server. See Netty HTTP Server Example for more details." },
+    "noReplyLogLevel": { "kind": "parameter", "displayName": "No Reply Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuratio [...]
+    "serverClosedChannelExceptionCaughtLogLevel": { "kind": "parameter", "displayName": "Server Closed Channel Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "configurationClass": "org.apache.camel.component.netty.http.Ne [...]
+    "serverExceptionCaughtLogLevel": { "kind": "parameter", "displayName": "Server Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "confi [...]
+    "serverInitializerFactory": { "kind": "parameter", "displayName": "Server Initializer Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ServerInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "To use a custom Serve [...]
+    "traceEnabled": { "kind": "parameter", "displayName": "Trace Enabled", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Specifies whether to enable HTTP TRACE for this Netty HTTP consumer. By default TRACE is turned off." },
+    "urlDecodeHeaders": { "kind": "parameter", "displayName": "Url Decode Headers", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If this option is enabled, then during binding from Netty to Ca [...]
+    "usingExecutorService": { "kind": "parameter", "displayName": "Using Executor Service", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are [...]
+    "connectTimeout": { "kind": "parameter", "displayName": "Connect Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Time to wait for a socket connection to be available. Value is in milliseconds." },
+    "cookieHandler": { "kind": "parameter", "displayName": "Cookie Handler", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.http.base.cookie.CookieHandler", "deprecated": false, "autowired": false, "secret": false, "description": "Configure a cookie handler to maintain a HTTP session" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "requestTimeout": { "kind": "parameter", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The  [...]
+    "throwExceptionOnFailure": { "kind": "parameter", "displayName": "Throw Exception On Failure", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Option to disable throwing the HttpOperationFailedException in case o [...]
+    "clientInitializerFactory": { "kind": "parameter", "displayName": "Client Initializer Factory", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ClientInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "To use a custom Clien [...]
+    "lazyChannelCreation": { "kind": "parameter", "displayName": "Lazy Channel Creation", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Channels can be lazily created to avoid exceptions, if the [...]
+    "okStatusCodeRange": { "kind": "parameter", "displayName": "Ok Status Code Range", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "200-299", "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The status codes which are considered a success  [...]
+    "producerPoolEnabled": { "kind": "parameter", "displayName": "Producer Pool Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether producer pool is enabled or not. Important: If you [...]
+    "producerPoolMaxActive": { "kind": "parameter", "displayName": "Producer Pool Max Active", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of objects that can be allocated [...]
+    "producerPoolMaxIdle": { "kind": "parameter", "displayName": "Producer Pool Max Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 100, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of idle instances in the pool." },
+    "producerPoolMinEvictableIdle": { "kind": "parameter", "displayName": "Producer Pool Min Evictable Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300000, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Sets the minimum amount of time (value  [...]
+    "producerPoolMinIdle": { "kind": "parameter", "displayName": "Producer Pool Min Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Sets the minimum number of instances allowed in the producer pool before the evicto [...]
+    "useRelativePath": { "kind": "parameter", "displayName": "Use Relative Path", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Sets whether to use a relative path in HTTP requests." },
+    "hostnameVerification": { "kind": "parameter", "displayName": "Hostname Verification", "group": " security", "label": "common, security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "To enable\/disable hostname verification on SSLEngine" },
+    "allowSerializedHeaders": { "kind": "parameter", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Only used for TCP when transferExchange is true. When set to true, seri [...]
+    "channelGroup": { "kind": "parameter", "displayName": "Channel Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.group.ChannelGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "To use a explicit ChannelGroup." },
+    "configuration": { "kind": "parameter", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom configured NettyHttpConfiguration for configuring this endpoint." },
+    "disableStreamCache": { "kind": "parameter", "displayName": "Disable Stream Cache", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Determines whether or not the raw input stream from Netty HttpRequest#getConten [...]
+    "headerFilterStrategy": { "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter headers." },
+    "nativeTransport": { "kind": "parameter", "displayName": "Native Transport", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Whether to use native transport instead of NIO. Native transport takes advantage of th [...]
+    "nettyHttpBinding": { "kind": "parameter", "displayName": "Netty Http Binding", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.http.NettyHttpBinding", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.component.netty.http.NettyHttpBinding for binding to\/from Netty and Camel Message API." },
+    "options": { "kind": "parameter", "displayName": "Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "option.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Allows to configure additional netty options [...]
+    "receiveBufferSize": { "kind": "parameter", "displayName": "Receive Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes." },
+    "receiveBufferSizePredictor": { "kind": "parameter", "displayName": "Receive Buffer Size Predictor", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail th [...]
+    "sendBufferSize": { "kind": "parameter", "displayName": "Send Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes." },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "transferException": { "kind": "parameter", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "If enabled and an Exchange failed processing on the consumer side, and if the caus [...]
+    "transferExchange": { "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the b [...]
+    "workerCount": { "kind": "parameter", "displayName": "Worker Count", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can  [...]
+    "workerGroup": { "kind": "parameter", "displayName": "Worker Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool w [...]
+    "decoders": { "kind": "parameter", "displayName": "Decoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "A list of decoders to be used. You can use a String which have values separated by comma, an [...]
+    "encoders": { "kind": "parameter", "displayName": "Encoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "A list of encoders to be used. You can use a String which have values separated by comma, an [...]
+    "enabledProtocols": { "kind": "parameter", "displayName": "Enabled Protocols", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1,TLSv1.1,TLSv1.2", "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Which protocols to enable when using SSL" },
+    "keyStoreFile": { "kind": "parameter", "displayName": "Key Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption" },
+    "keyStoreFormat": { "kind": "parameter", "displayName": "Key Store Format", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set" },
+    "keyStoreResource": { "kind": "parameter", "displayName": "Key Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, b [...]
+    "needClientAuth": { "kind": "parameter", "displayName": "Need Client Auth", "group": "security", "label": "consumer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Configures whether the server needs client authentication when using SSL." },
+    "passphrase": { "kind": "parameter", "displayName": "Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH" },
+    "securityConfiguration": { "kind": "parameter", "displayName": "Security Configuration", "group": "security", "label": "consumer,security", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Refers to a org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration for configuring secure web resources." },
+    "securityOptions": { "kind": "parameter", "displayName": "Security Options", "group": "security", "label": "consumer,security", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "securityConfiguration.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure NettyHttpSecurityConfiguration using key\/value pairs from the map" },
+    "securityProvider": { "kind": "parameter", "displayName": "Security Provider", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set." },
+    "ssl": { "kind": "parameter", "displayName": "Ssl", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Setting to specify whether SSL encryption is applied to this endpoint" },
+    "sslClientCertHeaders": { "kind": "parameter", "displayName": "Ssl Client Cert Headers", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Came [...]
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters" },
+    "sslHandler": { "kind": "parameter", "displayName": "Ssl Handler", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "io.netty.handler.ssl.SslHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Reference to a class that could be used to return an SSL Handler" },
+    "trustStoreFile": { "kind": "parameter", "displayName": "Trust Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption" },
+    "trustStoreResource": { "kind": "parameter", "displayName": "Trust Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.http.NettyHttpConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpat [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty.json
new file mode 100644
index 0000000..a8ac6bf
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/netty.json
@@ -0,0 +1,175 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "netty",
+    "title": "Netty",
+    "description": "Socket level networking using TCP or UDP with Netty 4.x.",
+    "deprecated": false,
+    "firstVersion": "2.14.0",
+    "label": "networking,tcp,udp",
+    "javaType": "org.apache.camel.component.netty.NettyComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-netty",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "netty",
+    "extendsScheme": "",
+    "syntax": "netty:protocol:\/\/host:port",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use the NettyConfiguration as configuration when creating endpoints." },
+    "disconnect": { "kind": "property", "displayName": "Disconnect", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer." },
+    "keepAlive": { "kind": "property", "displayName": "Keep Alive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to ensure socket is not closed due to inactivity" },
+    "reuseAddress": { "kind": "property", "displayName": "Reuse Address", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to facilitate socket multiplexing" },
+    "reuseChannel": { "kind": "property", "displayName": "Reuse Channel", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecy [...]
+    "sync": { "kind": "property", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way or request-response" },
+    "tcpNoDelay": { "kind": "property", "displayName": "Tcp No Delay", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to improve TCP protocol performance" },
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "broadcast": { "kind": "property", "displayName": "Broadcast", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to choose Multicast over UDP" },
+    "clientMode": { "kind": "property", "displayName": "Client Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the clientMode is true, netty consumer will connect the address as a TCP client." },
+    "reconnect": { "kind": "property", "displayName": "Reconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled" },
+    "reconnectInterval": { "kind": "property", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection" },
+    "backlog": { "kind": "property", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS. S [...]
+    "bossCount": { "kind": "property", "displayName": "Boss Count", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User c [...]
+    "bossGroup": { "kind": "property", "displayName": "Boss Group", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Set the BossGroup which could be used for handling the new connection of the server side [...]
+    "disconnectOnNoReply": { "kind": "property", "displayName": "Disconnect On No Reply", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates NettyConsumer if it sh [...]
+    "executorService": { "kind": "property", "displayName": "Executor Service", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.netty.util.concurrent.EventExecutorGroup", "deprecated": false, "autowired": false, "secret": false, "description": "To use the given EventExecutorGroup." },
+    "maximumPoolSize": { "kind": "property", "displayName": "Maximum Pool Size", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "Sets a maximum thread pool size for the netty consumer ordered thread pool. The default size is 2 x cpu_core plus 1. Setting this value to eg 10 will then use 10 threads unless 2 x cpu_core plus 1 is a higher value, wh [...]
+    "nettyServerBootstrapFactory": { "kind": "property", "displayName": "Netty Server Bootstrap Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyServerBootstrapFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom Netty [...]
+    "networkInterface": { "kind": "property", "displayName": "Network Interface", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When using UDP then this option can be used to specify a network interface by its name, s [...]
+    "noReplyLogLevel": { "kind": "property", "displayName": "No Reply Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "descr [...]
+    "serverClosedChannelExceptionCaughtLogLevel": { "kind": "property", "displayName": "Server Closed Channel Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "configurationClass": "org.apache.camel.component.netty.NettyCon [...]
+    "serverExceptionCaughtLogLevel": { "kind": "property", "displayName": "Server Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationFi [...]
+    "serverInitializerFactory": { "kind": "property", "displayName": "Server Initializer Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ServerInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom ServerInitializ [...]
+    "usingExecutorService": { "kind": "property", "displayName": "Using Executor Service", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are processed [...]
+    "connectTimeout": { "kind": "property", "displayName": "Connect Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Time to wait for a socket connection to be available. Value is in milliseconds." },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "requestTimeout": { "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is i [...]
+    "clientInitializerFactory": { "kind": "property", "displayName": "Client Initializer Factory", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ClientInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom ClientInitializ [...]
+    "correlationManager": { "kind": "property", "displayName": "Correlation Manager", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyCamelStateCorrelationManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom correlation manager [...]
+    "lazyChannelCreation": { "kind": "property", "displayName": "Lazy Channel Creation", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Channels can be lazily created to avoid exceptions, if the remote se [...]
+    "producerPoolEnabled": { "kind": "property", "displayName": "Producer Pool Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether producer pool is enabled or not. Important: If you turn this [...]
+    "producerPoolMaxActive": { "kind": "property", "displayName": "Producer Pool Max Active", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of objects that can be allocated by the po [...]
+    "producerPoolMaxIdle": { "kind": "property", "displayName": "Producer Pool Max Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 100, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of idle instances in the pool." },
+    "producerPoolMinEvictableIdle": { "kind": "property", "displayName": "Producer Pool Min Evictable Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the minimum amount of time (value in millis) [...]
+    "producerPoolMinIdle": { "kind": "property", "displayName": "Producer Pool Min Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the minimum number of instances allowed in the producer pool before the evictor thread ( [...]
+    "udpConnectionlessSending": { "kind": "property", "displayName": "Udp Connectionless Sending", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "This option supports connection less udp sending which is [...]
+    "useByteBuf": { "kind": "property", "displayName": "Use Byte Buf", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the useByteBuf is true, netty producer will turn the message body into ByteBuf bef [...]
+    "hostnameVerification": { "kind": "property", "displayName": "Hostname Verification", "group": " security", "label": "common, security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To enable\/disable hostname verification on SSLEngine" },
+    "allowSerializedHeaders": { "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP when transferExchange is true. When set to true, serializable o [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
+    "channelGroup": { "kind": "property", "displayName": "Channel Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.group.ChannelGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a explicit ChannelGroup." },
+    "nativeTransport": { "kind": "property", "displayName": "Native Transport", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether to use native transport instead of NIO. Native transport takes advantage of the host ope [...]
+    "options": { "kind": "property", "displayName": "Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "option.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure additional netty options using opt [...]
+    "receiveBufferSize": { "kind": "property", "displayName": "Receive Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes." },
+    "receiveBufferSizePredictor": { "kind": "property", "displayName": "Receive Buffer Size Predictor", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail thread." },
+    "sendBufferSize": { "kind": "property", "displayName": "Send Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes." },
+    "transferExchange": { "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The f [...]
+    "udpByteArrayCodec": { "kind": "property", "displayName": "Udp Byte Array Codec", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "For UDP only. If enabled the using byte array codec instead of Java serialization protocol." },
+    "workerCount": { "kind": "property", "displayName": "Worker Count", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this o [...]
+    "workerGroup": { "kind": "property", "displayName": "Worker Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multip [...]
+    "allowDefaultCodec": { "kind": "property", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The netty component installs a default codec if both, encoder\/decoder is null and textline is fal [...]
+    "autoAppendDelimiter": { "kind": "property", "displayName": "Auto Append Delimiter", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether or not to auto append missing end delimiter when sending using the textline codec." },
+    "decoderMaxLineLength": { "kind": "property", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The max line length to use for the textline codec." },
+    "decoders": { "kind": "property", "displayName": "Decoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "A list of decoders to be used. You can use a String which have values separated by comma, and have the [...]
+    "delimiter": { "kind": "property", "displayName": "Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.TextLineDelimiter", "enum": [ "LINE", "NULL" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "LINE", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The delimiter to use for the textline codec. [...]
+    "encoders": { "kind": "property", "displayName": "Encoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "A list of encoders to be used. You can use a String which have values separated by comma, and have the [...]
+    "encoding": { "kind": "property", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset." },
+    "textline": { "kind": "property", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specif [...]
+    "enabledProtocols": { "kind": "property", "displayName": "Enabled Protocols", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1,TLSv1.1,TLSv1.2", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Which protocols to enable when using SSL" },
+    "keyStoreFile": { "kind": "property", "displayName": "Key Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption" },
+    "keyStoreFormat": { "kind": "property", "displayName": "Key Store Format", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set" },
+    "keyStoreResource": { "kind": "property", "displayName": "Key Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can [...]
+    "needClientAuth": { "kind": "property", "displayName": "Need Client Auth", "group": "security", "label": "consumer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Configures whether the server needs client authentication when using SSL." },
+    "passphrase": { "kind": "property", "displayName": "Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH" },
+    "securityProvider": { "kind": "property", "displayName": "Security Provider", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set." },
+    "ssl": { "kind": "property", "displayName": "Ssl", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to specify whether SSL encryption is applied to this endpoint" },
+    "sslClientCertHeaders": { "kind": "property", "displayName": "Ssl Client Cert Headers", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message  [...]
+    "sslContextParameters": { "kind": "property", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters" },
+    "sslHandler": { "kind": "property", "displayName": "Ssl Handler", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "io.netty.handler.ssl.SslHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Reference to a class that could be used to return an SSL Handler" },
+    "trustStoreFile": { "kind": "property", "displayName": "Trust Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption" },
+    "trustStoreResource": { "kind": "property", "displayName": "Trust Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you [...]
+    "useGlobalSslContextParameters": { "kind": "property", "displayName": "Use Global Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Enable usage of global SSL context parameters." }
+  },
+  "properties": {
+    "protocol": { "kind": "path", "displayName": "Protocol", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "enum": [ "tcp", "udp" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The protocol to use which can be tcp or udp." },
+    "host": { "kind": "path", "displayName": "Host", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The hostname. For the consumer the hostname is localhost or 0.0.0.0. For the producer the hostname is the remote host to conne [...]
+    "port": { "kind": "path", "displayName": "Port", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The host port number" },
+    "disconnect": { "kind": "parameter", "displayName": "Disconnect", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer." },
+    "keepAlive": { "kind": "parameter", "displayName": "Keep Alive", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to ensure socket is not closed due to inactivity" },
+    "reuseAddress": { "kind": "parameter", "displayName": "Reuse Address", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to facilitate socket multiplexing" },
+    "reuseChannel": { "kind": "parameter", "displayName": "Reuse Channel", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifec [...]
+    "sync": { "kind": "parameter", "displayName": "Sync", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to set endpoint as one-way or request-response" },
+    "tcpNoDelay": { "kind": "parameter", "displayName": "Tcp No Delay", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to improve TCP protocol performance" },
+    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 m [...]
+    "broadcast": { "kind": "parameter", "displayName": "Broadcast", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to choose Multicast over UDP" },
+    "clientMode": { "kind": "parameter", "displayName": "Client Mode", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the clientMode is true, netty consumer will connect the address as a TCP client." },
+    "reconnect": { "kind": "parameter", "displayName": "Reconnect", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled" },
+    "reconnectInterval": { "kind": "parameter", "displayName": "Reconnect Interval", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection" },
+    "backlog": { "kind": "parameter", "displayName": "Backlog", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS.  [...]
+    "bossCount": { "kind": "parameter", "displayName": "Boss Count", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User  [...]
+    "bossGroup": { "kind": "parameter", "displayName": "Boss Group", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Set the BossGroup which could be used for handling the new connection of the server sid [...]
+    "disconnectOnNoReply": { "kind": "parameter", "displayName": "Disconnect On No Reply", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If sync is enabled then this option dictates NettyConsumer if it s [...]
+    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
+    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "nettyServerBootstrapFactory": { "kind": "parameter", "displayName": "Netty Server Bootstrap Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyServerBootstrapFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom Nett [...]
+    "networkInterface": { "kind": "parameter", "displayName": "Network Interface", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When using UDP then this option can be used to specify a network interface by its name,  [...]
+    "noReplyLogLevel": { "kind": "parameter", "displayName": "No Reply Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "desc [...]
+    "serverClosedChannelExceptionCaughtLogLevel": { "kind": "parameter", "displayName": "Server Closed Channel Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "DEBUG", "configurationClass": "org.apache.camel.component.netty.NettyCo [...]
+    "serverExceptionCaughtLogLevel": { "kind": "parameter", "displayName": "Server Exception Caught Log Level", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationF [...]
+    "serverInitializerFactory": { "kind": "parameter", "displayName": "Server Initializer Factory", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ServerInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom ServerInitiali [...]
+    "usingExecutorService": { "kind": "parameter", "displayName": "Using Executor Service", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether to use ordered thread pool, to ensure events are processe [...]
+    "connectTimeout": { "kind": "parameter", "displayName": "Connect Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Time to wait for a socket connection to be available. Value is in milliseconds." },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
+    "requestTimeout": { "kind": "parameter", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is  [...]
+    "clientInitializerFactory": { "kind": "parameter", "displayName": "Client Initializer Factory", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.ClientInitializerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom ClientInitiali [...]
+    "correlationManager": { "kind": "parameter", "displayName": "Correlation Manager", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.NettyCamelStateCorrelationManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a custom correlation manage [...]
+    "lazyChannelCreation": { "kind": "parameter", "displayName": "Lazy Channel Creation", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Channels can be lazily created to avoid exceptions, if the remote s [...]
+    "producerPoolEnabled": { "kind": "parameter", "displayName": "Producer Pool Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether producer pool is enabled or not. Important: If you turn thi [...]
+    "producerPoolMaxActive": { "kind": "parameter", "displayName": "Producer Pool Max Active", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of objects that can be allocated by the p [...]
+    "producerPoolMaxIdle": { "kind": "parameter", "displayName": "Producer Pool Max Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 100, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the cap on the number of idle instances in the pool." },
+    "producerPoolMinEvictableIdle": { "kind": "parameter", "displayName": "Producer Pool Min Evictable Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 300000, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the minimum amount of time (value in millis [...]
+    "producerPoolMinIdle": { "kind": "parameter", "displayName": "Producer Pool Min Idle", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Sets the minimum number of instances allowed in the producer pool before the evictor thread  [...]
+    "udpConnectionlessSending": { "kind": "parameter", "displayName": "Udp Connectionless Sending", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "This option supports connection less udp sending which i [...]
+    "useByteBuf": { "kind": "parameter", "displayName": "Use Byte Buf", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "If the useByteBuf is true, netty producer will turn the message body into ByteBuf be [...]
+    "hostnameVerification": { "kind": "parameter", "displayName": "Hostname Verification", "group": " security", "label": "common, security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To enable\/disable hostname verification on SSLEngine" },
+    "allowSerializedHeaders": { "kind": "parameter", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP when transferExchange is true. When set to true, serializable  [...]
+    "channelGroup": { "kind": "parameter", "displayName": "Channel Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.group.ChannelGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a explicit ChannelGroup." },
+    "nativeTransport": { "kind": "parameter", "displayName": "Native Transport", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether to use native transport instead of NIO. Native transport takes advantage of the host op [...]
+    "options": { "kind": "parameter", "displayName": "Options", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "option.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Allows to configure additional netty options using op [...]
+    "receiveBufferSize": { "kind": "parameter", "displayName": "Receive Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes." },
+    "receiveBufferSizePredictor": { "kind": "parameter", "displayName": "Receive Buffer Size Predictor", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail thread." },
+    "sendBufferSize": { "kind": "parameter", "displayName": "Send Buffer Size", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 65536, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes." },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Sets whether synchronous processing should be strictly used" },
+    "transferExchange": { "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The  [...]
+    "udpByteArrayCodec": { "kind": "parameter", "displayName": "Udp Byte Array Codec", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "For UDP only. If enabled the using byte array codec instead of Java serialization protocol." },
+    "workerCount": { "kind": "parameter", "displayName": "Worker Count", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this  [...]
+    "workerGroup": { "kind": "parameter", "displayName": "Worker Group", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "io.netty.channel.EventLoopGroup", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multi [...]
+    "allowDefaultCodec": { "kind": "parameter", "displayName": "Allow Default Codec", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The netty component installs a default codec if both, encoder\/decoder is null and textline is fa [...]
+    "autoAppendDelimiter": { "kind": "parameter", "displayName": "Auto Append Delimiter", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Whether or not to auto append missing end delimiter when sending using the textline codec." },
+    "decoderMaxLineLength": { "kind": "parameter", "displayName": "Decoder Max Line Length", "group": "codec", "label": "codec", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1024, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The max line length to use for the textline codec." },
+    "decoders": { "kind": "parameter", "displayName": "Decoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "A list of decoders to be used. You can use a String which have values separated by comma, and have th [...]
+    "delimiter": { "kind": "parameter", "displayName": "Delimiter", "group": "codec", "label": "codec", "required": false, "type": "object", "javaType": "org.apache.camel.component.netty.TextLineDelimiter", "enum": [ "LINE", "NULL" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "LINE", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The delimiter to use for the textline codec [...]
+    "encoders": { "kind": "parameter", "displayName": "Encoders", "group": "codec", "label": "codec", "required": false, "type": "array", "javaType": "java.util.List<io.netty.channel.ChannelHandler>", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "A list of encoders to be used. You can use a String which have values separated by comma, and have th [...]
+    "encoding": { "kind": "parameter", "displayName": "Encoding", "group": "codec", "label": "codec", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset." },
+    "textline": { "kind": "parameter", "displayName": "Textline", "group": "codec", "label": "codec", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not speci [...]
+    "enabledProtocols": { "kind": "parameter", "displayName": "Enabled Protocols", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TLSv1,TLSv1.1,TLSv1.2", "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Which protocols to enable when using SSL" },
+    "keyStoreFile": { "kind": "parameter", "displayName": "Key Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption" },
+    "keyStoreFormat": { "kind": "parameter", "displayName": "Key Store Format", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set" },
+    "keyStoreResource": { "kind": "parameter", "displayName": "Key Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, but you ca [...]
+    "needClientAuth": { "kind": "parameter", "displayName": "Need Client Auth", "group": "security", "label": "consumer,security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Configures whether the server needs client authentication when using SSL." },
+    "passphrase": { "kind": "parameter", "displayName": "Passphrase", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH" },
+    "securityProvider": { "kind": "parameter", "displayName": "Security Provider", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set." },
+    "ssl": { "kind": "parameter", "displayName": "Ssl", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Setting to specify whether SSL encryption is applied to this endpoint" },
+    "sslClientCertHeaders": { "kind": "parameter", "displayName": "Ssl Client Cert Headers", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message [...]
+    "sslContextParameters": { "kind": "parameter", "displayName": "Ssl Context Parameters", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "To configure security using SSLContextParameters" },
+    "sslHandler": { "kind": "parameter", "displayName": "Ssl Handler", "group": "security", "label": "security", "required": false, "type": "object", "javaType": "io.netty.handler.ssl.SslHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Reference to a class that could be used to return an SSL Handler" },
+    "trustStoreFile": { "kind": "parameter", "displayName": "Trust Store File", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.io.File", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption" },
+    "trustStoreResource": { "kind": "parameter", "displayName": "Trust Store Resource", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.netty.NettyConfiguration", "configurationField": "configuration", "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but yo [...]
+  }
+}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nitrite.json b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nitrite.json
new file mode 100644
index 0000000..a23d155
--- /dev/null
+++ b/catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf/components/nitrite.json
@@ -0,0 +1,41 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "nitrite",
+    "title": "Nitrite",
+    "description": "Access Nitrite databases.",
+    "deprecated": false,
+    "firstVersion": "3.0.0",
+    "label": "database,nosql",
+    "javaType": "org.apache.camel.component.nitrite.NitriteComponent",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-nitrite",
+    "version": "3.15.0-SNAPSHOT",
+    "scheme": "nitrite",
+    "extendsScheme": "",
+    "syntax": "nitrite:database",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 me [...]
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
+    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
... 7785 lines suppressed ...

[camel-karaf] 01/05: generate component json files into source

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

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit 9f766f3c8f8a18ca0bc9ab3eef85b81489ef332c
Author: David Jencks <dj...@apache.org>
AuthorDate: Tue Dec 28 22:15:34 2021 -0800

    generate component json files into source
    
    remove obsolete doc generation
    
    configure clean, set correct phase so .json end up in catalog
---
 catalog/camel-catalog-provider-karaf/pom.xml       |  31 +-
 .../camel/karaf/maven/PrepareCatalogKarafMojo.java |  24 +-
 tooling/camel-karaf-docs-maven-plugin/pom.xml      | 220 -------
 .../apache/camel/karaf/maven/ExtMvelHelper.java    |  98 ---
 .../karaf/maven/UpdateDocComponentsListMojo.java   | 658 ---------------------
 .../src/main/resources/META-INF/LICENSE.txt        | 203 -------
 .../src/main/resources/META-INF/NOTICE.txt         |  11 -
 .../src/main/resources/components.mvel             |  14 -
 .../src/main/resources/dataformats.mvel            |  13 -
 .../src/main/resources/languages.mvel              |  13 -
 .../src/main/resources/others.mvel                 |  13 -
 tooling/pom.xml                                    |   1 -
 12 files changed, 26 insertions(+), 1273 deletions(-)

diff --git a/catalog/camel-catalog-provider-karaf/pom.xml b/catalog/camel-catalog-provider-karaf/pom.xml
index 9e723b1..64c22f1 100644
--- a/catalog/camel-catalog-provider-karaf/pom.xml
+++ b/catalog/camel-catalog-provider-karaf/pom.xml
@@ -87,7 +87,7 @@
                 <executions>
                     <execution>
                         <id>process-sources</id>
-                        <phase>process-resources</phase>
+                        <phase>generate-sources</phase>
                         <goals>
                             <goal>unpack</goal>
                         </goals>
@@ -107,32 +107,29 @@
                 </executions>
             </plugin>
 
-            <!-- generate and include all components in the catalog -->
             <plugin>
-                <groupId>org.apache.camel.karaf</groupId>
-                <artifactId>camel-catalog-generator-karaf-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>prepare-catalog-karaf</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                    </execution>
-                </executions>
+                <artifactId>maven-clean-plugin</artifactId>
+                <version>3.1.0</version>
+                <configuration>
+                    <filesets>
+                        <fileset>
+                            <directory>src/main/resources/org/apache/camel/catalog/karaf</directory>
+                        </fileset>
+                    </filesets>
+                </configuration>
             </plugin>
 
-            <!-- update docs -->
+            <!-- generate and include all components in the catalog -->
             <plugin>
                 <groupId>org.apache.camel.karaf</groupId>
-                <artifactId>camel-karaf-docs-maven-plugin</artifactId>
+                <artifactId>camel-catalog-generator-karaf-maven-plugin</artifactId>
                 <version>${project.version}</version>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>update-doc-components-list</goal>
+                            <goal>prepare-catalog-karaf</goal>
                         </goals>
-                        <phase>process-resources</phase>
+                        <phase>generate-resources</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/tooling/camel-catalog-generator-karaf-maven-plugin/src/main/java/org/apache/camel/karaf/maven/PrepareCatalogKarafMojo.java b/tooling/camel-catalog-generator-karaf-maven-plugin/src/main/java/org/apache/camel/karaf/maven/PrepareCatalogKarafMojo.java
index 2de9398..9d12069 100644
--- a/tooling/camel-catalog-generator-karaf-maven-plugin/src/main/java/org/apache/camel/karaf/maven/PrepareCatalogKarafMojo.java
+++ b/tooling/camel-catalog-generator-karaf-maven-plugin/src/main/java/org/apache/camel/karaf/maven/PrepareCatalogKarafMojo.java
@@ -60,31 +60,31 @@ public class PrepareCatalogKarafMojo extends AbstractMojo {
     /**
      * The output directory for components catalog
      */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/components")
+    @Parameter(defaultValue = "${project.basedir}/src/main/resources/org/apache/camel/catalog/karaf/components")
     protected File componentsOutDir;
 
     /**
      * The output directory for dataformats catalog
      */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/dataformats")
+    @Parameter(defaultValue = "${project.basedir}/src/main/resources/org/apache/camel/catalog/karaf/dataformats")
     protected File dataFormatsOutDir;
 
     /**
      * The output directory for languages catalog
      */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/languages")
+    @Parameter(defaultValue = "${project.basedir}/src/main/resources/org/apache/camel/catalog/karaf/languages")
     protected File languagesOutDir;
 
     /**
      * The output directory for others catalog
      */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/others")
+    @Parameter(defaultValue = "${project.basedir}/src/main/resources/org/apache/camel/catalog/karaf/others")
     protected File othersOutDir;
 
     /**
      * The karaf features directory
      */
-    @Parameter(defaultValue = "${project.build.directory}/../../../platforms/karaf/features/src/main/resources/")
+    @Parameter(defaultValue = "${project.basedir}/../../platforms/karaf/features/src/main/resources/")
     protected File featuresDir;
 
     /**
@@ -96,7 +96,7 @@ public class PrepareCatalogKarafMojo extends AbstractMojo {
     /**
      * The components directory where there are karaf only components
      */
-    @Parameter(defaultValue = "${project.build.directory}/../../../components")
+    @Parameter(defaultValue = "${project.basedir}/../../components")
     protected File karafComponentsDir;
 
     /**
@@ -109,13 +109,13 @@ public class PrepareCatalogKarafMojo extends AbstractMojo {
      * The languages directory where all the Apache Camel components are from the camel-catalog
      */
     @Parameter(defaultValue = "${project.build.directory}/sources/camel-catalog/org/apache/camel/catalog/languages")
-    protected File languagessDir;
+    protected File languagesDir;
 
     /**
      * The languages directory where all the Apache Camel components are from the camel-catalog
      */
     @Parameter(defaultValue = "${project.build.directory}/sources/camel-catalog/org/apache/camel/catalog/others")
-    protected File otherssDir;
+    protected File othersDir;
 
     /**
      * Maven ProjectHelper.
@@ -181,8 +181,8 @@ public class PrepareCatalogKarafMojo extends AbstractMojo {
         }
 
         jsonFiles.clear();
-        if (languagessDir != null && languagessDir.isDirectory()) {
-            File[] files = languagessDir.listFiles();
+        if (languagesDir != null && languagesDir.isDirectory()) {
+            File[] files = languagesDir.listFiles();
             if (files != null) {
                 for (File file : files) {
                     // all languages are supported on karaf
@@ -198,8 +198,8 @@ public class PrepareCatalogKarafMojo extends AbstractMojo {
         }
 
         jsonFiles.clear();
-        if (otherssDir != null && otherssDir.isDirectory()) {
-            File[] files = otherssDir.listFiles();
+        if (othersDir != null && othersDir.isDirectory()) {
+            File[] files = othersDir.listFiles();
             if (files != null) {
                 for (File file : files) {
                     if (features.contains("camel-" + stripExt(file))) {
diff --git a/tooling/camel-karaf-docs-maven-plugin/pom.xml b/tooling/camel-karaf-docs-maven-plugin/pom.xml
deleted file mode 100644
index 7e5c8a8..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/pom.xml
+++ /dev/null
@@ -1,220 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel.karaf</groupId>
-        <artifactId>tooling</artifactId>
-        <version>3.15.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-karaf-docs-maven-plugin</artifactId>
-    <packaging>maven-plugin</packaging>
-    <name>Camel Karaf :: Tooling :: Docs Maven Plugin</name>
-
-    <properties>
-        <maven-version>3.6.3</maven-version>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>tooling-parent</artifactId>
-                <version>${camel-version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-package-maven-plugin</artifactId>
-            <version>${camel-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-tooling-util</artifactId>
-            <version>${camel-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-tooling-model</artifactId>
-            <version>${camel-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>bom-generator-maven-plugin</artifactId>
-            <version>${camel-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>jakarta.xml.bind</groupId>
-            <artifactId>jakarta.xml.bind-api</artifactId>
-            <version>${jakarta-jaxb-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-util-json</artifactId>
-            <version>${camel-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mvel</groupId>
-            <artifactId>mvel2</artifactId>
-            <version>${mvel-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-core</artifactId>
-            <version>${maven-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-artifact</artifactId>
-            <version>${maven-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-plugin-api</artifactId>
-            <version>${maven-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.plugin-tools</groupId>
-            <artifactId>maven-plugin-annotations</artifactId>
-            <version>${maven-plugin-plugin-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-compat</artifactId>
-            <version>${maven-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.maven.shared</groupId>
-            <artifactId>maven-dependency-tree</artifactId>
-            <version>3.0.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-container-default</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-utils</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.sonatype.plexus</groupId>
-            <artifactId>plexus-build-api</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-            <version>${gson-version}</version>
-        </dependency>
-
-        <!-- asciidoc to convert adoc to html files -->
-        <dependency>
-            <groupId>org.asciidoctor</groupId>
-            <artifactId>asciidoctorj</artifactId>
-            <version>${asciidoctorj-version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.ow2.asm</groupId>
-            <artifactId>asm-tree</artifactId>
-            <version>7.0</version>
-        </dependency>
-
-        <!-- logging -->
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- camel -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>spi-annotations</artifactId>
-        </dependency>
-
-        <!-- testing -->
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-api</artifactId>
-            <version>${junit-jupiter-version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-engine</artifactId>
-            <version>${junit-jupiter-version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-params</artifactId>
-            <version>${junit-jupiter-version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.assertj</groupId>
-            <artifactId>assertj-core</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-plugin-plugin</artifactId>
-                <version>${maven-plugin-plugin-version}</version>
-                <configuration>
-                    <mojoDependencies>
-                        <dep>org.codehaus.mojo:exec-maven-plugin</dep>
-                        <dep>org.apache.maven:maven-plugin-api</dep>
-                    </mojoDependencies>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/ExtMvelHelper.java b/tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/ExtMvelHelper.java
deleted file mode 100644
index 59ecd06..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/ExtMvelHelper.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.karaf.maven;
-
-import java.nio.file.Path;
-
-import org.apache.camel.maven.packaging.MvelHelper;
-import org.apache.camel.tooling.model.OtherModel;
-import org.apache.camel.tooling.util.Strings;
-import org.apache.camel.tooling.model.ComponentModel;
-import org.apache.camel.tooling.model.DataFormatModel;
-import org.apache.camel.tooling.model.LanguageModel;
-
-public class ExtMvelHelper {
-
-    private final static String CAMEL_VERSION = "next";
-
-    private final Path extensionsDocPath;
-
-    public ExtMvelHelper(Path extensionsDocPath) {
-        this.extensionsDocPath = extensionsDocPath;
-    }
-
-    public static String escape(final String raw) {
-        return MvelHelper.escape(raw);
-    }
-
-    public String getFirstVersionShort(Object model) {
-        String version = (String) invokeGetter(model, "getFirstVersion");
-        return org.apache.camel.tooling.model.Strings.cutLastZeroDigit(version);
-    }
-
-    public String getDocLink(Object model) {
-        if (localDocExists(model)) {
-            return getLocalDocLink(model);
-        } else if (model instanceof ComponentModel) {
-            final ComponentModel component = (ComponentModel) model;
-            final String scheme = component.getScheme();
-            if ("org.apache.camel.karaf".equals(component.getGroupId())) {
-                return String.format("xref:%s-component.adoc", scheme);
-            } else {
-                return String.format("xref:%s@components::%s-component.adoc", CAMEL_VERSION, scheme);
-            }
-        } else if (model instanceof DataFormatModel) {
-            return String.format("xref:%s@components:dataformats:%s-dataformat.adoc",
-                    CAMEL_VERSION, invokeGetter(model, "getName"));
-        } else if (model instanceof LanguageModel) {
-            return String.format("xref:%s@components:languages:%s-language.adoc",
-                    CAMEL_VERSION, invokeGetter(model, "getName"));
-        } else if (model instanceof OtherModel) {
-            final OtherModel other = (OtherModel) model;
-            final String name = other.getName();
-            if ("org.apache.camel.karaf".equals(other.getGroupId())) {
-                return String.format("xref:%s.adoc", name);
-            } else {
-                return String.format("xref:%s@components:others:%s.adoc", CAMEL_VERSION, name);
-            }
-        } else {
-            return null;
-        }
-    }
-
-    private Object invokeGetter(Object model, String method) {
-        try {
-            return model.getClass().getMethod(method)
-                    .invoke(model);
-        } catch (Exception e) {
-            throw new RuntimeException("Unable to access " + method + " from " + model, e);
-        }
-    }
-
-    private boolean localDocExists(Object model) {
-        Path path = extensionsDocPath.resolve(getSpringBootDocName(model));
-        return path.toFile().exists();
-    }
-
-    private String getLocalDocLink(Object model) {
-        return "xref:components-starter/" + getSpringBootDocName(model);
-    }
-
-    private String getSpringBootDocName(Object model) {
-        return Strings.after((String) invokeGetter(model, "getArtifactId"), "camel-") + ".adoc";
-    }
-}
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/UpdateDocComponentsListMojo.java b/tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/UpdateDocComponentsListMojo.java
deleted file mode 100644
index 254cdf3..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/java/org/apache/camel/karaf/maven/UpdateDocComponentsListMojo.java
+++ /dev/null
@@ -1,658 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.karaf.maven;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.UncheckedIOException;
-import java.nio.file.CopyOption;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.nio.file.StandardCopyOption;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.function.Function;
-
-import org.apache.camel.tooling.model.BaseModel;
-import org.apache.camel.tooling.model.ComponentModel;
-import org.apache.camel.tooling.model.DataFormatModel;
-import org.apache.camel.tooling.model.JsonMapper;
-import org.apache.camel.tooling.model.LanguageModel;
-import org.apache.camel.tooling.model.OtherModel;
-import org.apache.camel.tooling.util.Strings;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Component;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectHelper;
-import org.mvel2.templates.TemplateRuntime;
-
-
-import static java.util.stream.Collectors.toSet;
-import static org.apache.camel.tooling.util.PackageHelper.loadText;
-import static org.apache.camel.tooling.util.PackageHelper.writeText;
-
-/**
- * Updates the documentation in:
- *
- * - docs/modules/ROOT/pages/components.adoc
- *
- * to be up to date with all the component starters that Apache Camel Karaf ships.
- */
-@Mojo(name = "update-doc-components-list", threadSafe = true)
-public class UpdateDocComponentsListMojo extends AbstractMojo {
-
-    /**
-     * The maven project.
-     */
-    @Parameter(property = "project", required = true, readonly = true)
-    protected MavenProject project;
-
-    /**
-     * The directory for components catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/components")
-    protected File componentsDir;
-
-    /**
-     * The directory for data formats catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/dataformats")
-    protected File dataFormatsDir;
-
-    /**
-     * The directory for languages catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/languages")
-    protected File languagesDir;
-
-    /**
-     * The directory for others catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/others")
-    protected File othersDir;
-
-    /**
-     * The website doc base directory
-     */
-    @Parameter(defaultValue = "${project.directory}/../../../docs/modules/ROOT/pages")
-    protected File docBaseDir;
-
-    /**
-     * Maven ProjectHelper.
-     */
-    @Component
-    private MavenProjectHelper projectHelper;
-
-    /**
-     * Execute goal.
-     *
-     * @throws MojoExecutionException execution of the main class or one of the
-     *         threads it generated failed.
-     * @throws MojoFailureException something bad happened...
-     */
-    @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
-        executeComponentsReadme();
-        executeDataFormatsReadme();
-        executeLanguagesReadme();
-        executeOthersReadme();
-    }
-
-    protected void executeComponentsReadme() throws MojoExecutionException, MojoFailureException {
-        Set<File> componentFiles = new TreeSet<>();
-
-        if (componentsDir != null && componentsDir.isDirectory()) {
-            File[] files = componentsDir.listFiles();
-            if (files != null) {
-                componentFiles.addAll(Arrays.asList(files));
-            }
-        }
-
-        try {
-            List<ComponentModel> models = new ArrayList<>();
-            for (File file : componentFiles) {
-                String json = loadText(new FileInputStream(file));
-                ComponentModel model = generateComponentModel(json);
-
-                // filter out alternative schemas which reuses documentation
-                boolean add = true;
-                if (model.getAlternativeSchemes() != null && !model.getAlternativeSchemes().isEmpty()) {
-                    String first = model.getAlternativeSchemes().split(",")[0];
-                    if (!model.getScheme().equals(first)) {
-                        add = false;
-                    }
-                }
-                if (add) {
-                    models.add(model);
-
-                    // special for camel-mail where we want to refer its imap scheme to mail so its mail.adoc in the doc link
-                    if ("imap".equals(model.getScheme())) {
-                        model.setScheme("mail");
-                        model.setTitle("Mail");
-                    }
-                }
-            }
-
-            // sort the models
-            Collections.sort(models, new ComponentComparator());
-
-            // filter out unwanted components
-            List<ComponentModel> components = new ArrayList<>();
-            for (ComponentModel model : models) {
-                components.add(model);
-            }
-
-            // how many different artifacts
-            int count = components.stream()
-                    .map(ComponentModel::getArtifactId)
-                    .collect(toSet()).size();
-
-            // how many deprecated
-            long deprecated = components.stream()
-                    .filter(ComponentModel::isDeprecated)
-                    .count();
-
-            // update the big components.adoc file in the docs dir
-            File file = new File(docBaseDir, "components.adoc");
-            boolean exists = file.exists();
-            String changed = templateComponents(components, count, deprecated);
-            boolean updated = updateComponents(file, changed);
-            if (updated) {
-                getLog().info("Updated components.adoc file: " + file);
-            } else if (exists) {
-                getLog().debug("No changes to components.adoc file: " + file);
-            } else {
-                getLog().warn("No components.adoc file: " + file);
-            }
-
-            publishDocumentation(components, ComponentModel::getGroupId, ComponentModel::getArtifactId);
-        } catch (IOException e) {
-            throw new MojoFailureException("Error due " + e.getMessage(), e);
-        }
-    }
-
-    private <T extends BaseModel<?>> void publishDocumentation(final List<T> components, final Function<T, String> groupId, final Function<T, String> artifactId) {
-        components.stream()
-            .filter(m -> "org.apache.camel.karaf".equals(groupId.apply(m)))
-            .forEach(m -> copyToPublishedDocumentation(artifactId.apply(m)));
-    }
-
-    protected void executeDataFormatsReadme() throws MojoExecutionException, MojoFailureException {
-        Set<File> dataFormatFiles = new TreeSet<>();
-
-        if (dataFormatsDir != null && dataFormatsDir.isDirectory()) {
-            File[] files = dataFormatsDir.listFiles();
-            if (files != null) {
-                dataFormatFiles.addAll(Arrays.asList(files));
-            }
-        }
-
-        try {
-            List<DataFormatModel> models = new ArrayList<>();
-            for (File file : dataFormatFiles) {
-                String json = loadText(new FileInputStream(file));
-                DataFormatModel model = generateDataFormatModel(json);
-
-                // special for bindy as we have one common file
-                if (model.getName().startsWith("bindy")) {
-                    model.setName("bindy");
-                }
-
-                models.add(model);
-            }
-
-            // sort the models
-            Collections.sort(models, new DataFormatComparator());
-
-            // how many different artifacts
-            int count = models.stream()
-                    .map(DataFormatModel::getArtifactId)
-                    .collect(toSet()).size();
-
-            // how many deprecated
-            long deprecated = models.stream()
-                    .filter(DataFormatModel::isDeprecated)
-                    .count();
-
-            // filter out camel-core
-            List<DataFormatModel> dataFormats = new ArrayList<>();
-            for (DataFormatModel model : models) {
-                dataFormats.add(model);
-            }
-
-            // update the big components.adoc file in the docs dir
-            File file = new File(docBaseDir, "components.adoc");
-            boolean exists = file.exists();
-            String changed = templateDataFormats(dataFormats, count, deprecated);
-            boolean updated = updateDataFormats(file, changed);
-            if (updated) {
-                getLog().info("Updated components.adoc file: " + file);
-            } else if (exists) {
-                getLog().debug("No changes to components.adoc file: " + file);
-            } else {
-                getLog().warn("No components.adoc file: " + file);
-            }
-
-        } catch (IOException e) {
-            throw new MojoFailureException("Error due " + e.getMessage(), e);
-        }
-    }
-
-    protected void executeLanguagesReadme() throws MojoExecutionException, MojoFailureException {
-        Set<File> languageFiles = new TreeSet<>();
-
-        if (languagesDir != null && languagesDir.isDirectory()) {
-            File[] files = languagesDir.listFiles();
-            if (files != null) {
-                languageFiles.addAll(Arrays.asList(files));
-            }
-        }
-
-        try {
-            List<LanguageModel> models = new ArrayList<>();
-            for (File file : languageFiles) {
-                String json = loadText(new FileInputStream(file));
-                LanguageModel model = generateLanguageModel(json);
-                models.add(model);
-            }
-
-            // sort the models
-            Collections.sort(models, new LanguageComparator());
-
-            // filter out camel-core
-            List<LanguageModel> languages = new ArrayList<>();
-            for (LanguageModel model : models) {
-                languages.add(model);
-            }
-
-            // how many different artifacts
-            int count = languages.stream()
-                    .map(LanguageModel::getArtifactId)
-                    .collect(toSet()).size();
-
-            // how many deprecated
-            long deprecated = languages.stream()
-                    .filter(LanguageModel::isDeprecated)
-                    .count();
-
-            // update the big components.adoc file in the docs dir
-            File file = new File(docBaseDir, "components.adoc");
-            boolean exists = file.exists();
-            String changed = templateLanguages(languages, count, deprecated);
-            boolean updated = updateLanguages(file, changed);
-            if (updated) {
-                getLog().info("Updated components.adoc file: " + file);
-            } else if (exists) {
-                getLog().debug("No changes to components.adoc file: " + file);
-            } else {
-                getLog().warn("No components.adoc file: " + file);
-            }
-
-        } catch (IOException e) {
-            throw new MojoFailureException("Error due " + e.getMessage(), e);
-        }
-    }
-
-    protected void executeOthersReadme() throws MojoExecutionException, MojoFailureException {
-        Set<File> otherFiles = new TreeSet<>();
-
-        if (othersDir != null && othersDir.isDirectory()) {
-            File[] files = othersDir.listFiles();
-            if (files != null) {
-                otherFiles.addAll(Arrays.asList(files));
-            }
-        }
-
-        try {
-            List<OtherModel> others = new ArrayList<>();
-            for (File file : otherFiles) {
-                String json = loadText(new FileInputStream(file));
-                OtherModel model = generateOtherModel(json);
-                others.add(model);
-            }
-
-            // sort the models
-            Collections.sort(others, new OtherComparator());
-
-            // how many different artifacts
-            int count = others.stream()
-                    .map(OtherModel::getArtifactId)
-                    .collect(toSet()).size();
-
-            // how many deprecated
-            long deprecated = others.stream()
-                    .filter(OtherModel::isDeprecated)
-                    .count();
-
-            // update the big components.adoc file in the docs dir
-            File file = new File(docBaseDir, "components.adoc");
-            boolean exists = file.exists();
-            String changed = templateOthers(others, count, deprecated);
-            boolean updated = updateOthers(file, changed);
-            if (updated) {
-                getLog().info("Updated components.adoc file: " + file);
-            } else if (exists) {
-                getLog().debug("No changes to components.adoc file: " + file);
-            } else {
-                getLog().warn("No components.adoc file: " + file);
-            }
-
-            publishDocumentation(others, OtherModel::getGroupId, OtherModel::getArtifactId);
-        } catch (IOException e) {
-            throw new MojoFailureException("Error due " + e.getMessage(), e);
-        }
-    }
-
-    private String templateComponents(List<ComponentModel> models, int artifacts, long deprecated)
-            throws MojoExecutionException {
-        try {
-            String template = loadText(
-                    UpdateDocComponentsListMojo.class.getClassLoader().getResourceAsStream("components.mvel"));
-            Map<String, Object> map = new HashMap<>();
-            map.put("components", models);
-            map.put("numberOfArtifacts", artifacts);
-            map.put("numberOfDeprecated", deprecated);
-            String out = (String) TemplateRuntime.eval(template, map,
-                    Collections.singletonMap("util", new ExtMvelHelper(getComponentsStarterDocPath())));
-            return out;
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error processing mvel template. Reason: " + e, e);
-        }
-    }
-
-    private String templateDataFormats(List<DataFormatModel> models, int artifacts, long deprecated)
-            throws MojoExecutionException {
-        try {
-            String template = loadText(
-                    UpdateDocComponentsListMojo.class.getClassLoader().getResourceAsStream("dataformats.mvel"));
-            Map<String, Object> map = new HashMap<>();
-            map.put("dataformats", models);
-            map.put("numberOfArtifacts", artifacts);
-            map.put("numberOfDeprecated", deprecated);
-            String out = (String) TemplateRuntime.eval(template, map,
-                    Collections.singletonMap("util", new ExtMvelHelper(getComponentsStarterDocPath())));
-            return out;
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error processing mvel template. Reason: " + e, e);
-        }
-    }
-
-    private String templateLanguages(List<LanguageModel> models, int artifacts, long deprecated) throws MojoExecutionException {
-        try {
-            String template = loadText(
-                    UpdateDocComponentsListMojo.class.getClassLoader().getResourceAsStream("languages.mvel"));
-            Map<String, Object> map = new HashMap<>();
-            map.put("languages", models);
-            map.put("numberOfArtifacts", artifacts);
-            map.put("numberOfDeprecated", deprecated);
-            String out = (String) TemplateRuntime.eval(template, map,
-                    Collections.singletonMap("util", new ExtMvelHelper(getComponentsStarterDocPath())));
-            return out;
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error processing mvel template. Reason: " + e, e);
-        }
-    }
-
-    private String templateOthers(List<OtherModel> models, int artifacts, long deprecated) throws MojoExecutionException {
-        try {
-            String template = loadText(
-                    UpdateDocComponentsListMojo.class.getClassLoader().getResourceAsStream("others.mvel"));
-            Map<String, Object> map = new HashMap<>();
-            map.put("others", models);
-            map.put("numberOfArtifacts", artifacts);
-            map.put("numberOfDeprecated", deprecated);
-            String out = (String) TemplateRuntime.eval(template, map,
-                    Collections.singletonMap("util", new ExtMvelHelper(getComponentsStarterDocPath())));
-            return out;
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error processing mvel template. Reason: " + e, e);
-        }
-    }
-
-    private boolean updateComponents(File file, String changed) throws MojoExecutionException {
-        if (!file.exists()) {
-            return false;
-        }
-
-        try {
-            String text = loadText(new FileInputStream(file));
-
-            String existing = Strings.between(text, "// components: START", "// components: END");
-            if (existing != null) {
-                // remove leading line breaks etc
-                existing = existing.trim();
-                changed = changed.trim();
-                if (existing.equals(changed)) {
-                    return false;
-                } else {
-                    String before = Strings.before(text, "// components: START");
-                    String after = Strings.after(text, "// components: END");
-                    text = before + "// components: START\n" + changed + "\n// components: END" + after;
-                    writeText(file, text);
-                    return true;
-                }
-            } else {
-                getLog().warn("Cannot find markers in file " + file);
-                getLog().warn("Add the following markers");
-                getLog().warn("\t// components: START");
-                getLog().warn("\t// components: END");
-                return false;
-            }
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
-        }
-    }
-
-    private boolean updateDataFormats(File file, String changed) throws MojoExecutionException {
-        if (!file.exists()) {
-            return false;
-        }
-
-        try {
-            String text = loadText(new FileInputStream(file));
-
-            String existing = Strings.between(text, "// dataformats: START", "// dataformats: END");
-            if (existing != null) {
-                // remove leading line breaks etc
-                existing = existing.trim();
-                changed = changed.trim();
-                if (existing.equals(changed)) {
-                    return false;
-                } else {
-                    String before = Strings.before(text, "// dataformats: START");
-                    String after = Strings.after(text, "// dataformats: END");
-                    text = before + "// dataformats: START\n" + changed + "\n// dataformats: END" + after;
-                    writeText(file, text);
-                    return true;
-                }
-            } else {
-                getLog().warn("Cannot find markers in file " + file);
-                getLog().warn("Add the following markers");
-                getLog().warn("\t// dataformats: START");
-                getLog().warn("\t// dataformats: END");
-                return false;
-            }
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
-        }
-    }
-
-    private boolean updateLanguages(File file, String changed) throws MojoExecutionException {
-        if (!file.exists()) {
-            return false;
-        }
-
-        try {
-            String text = loadText(new FileInputStream(file));
-
-            String existing = Strings.between(text, "// languages: START", "// languages: END");
-            if (existing != null) {
-                // remove leading line breaks etc
-                existing = existing.trim();
-                changed = changed.trim();
-                if (existing.equals(changed)) {
-                    return false;
-                } else {
-                    String before = Strings.before(text, "// languages: START");
-                    String after = Strings.after(text, "// languages: END");
-                    text = before + "// languages: START\n" + changed + "\n// languages: END" + after;
-                    writeText(file, text);
-                    return true;
-                }
-            } else {
-                getLog().warn("Cannot find markers in file " + file);
-                getLog().warn("Add the following markers");
-                getLog().warn("\t// languages: START");
-                getLog().warn("\t// languages: END");
-                return false;
-            }
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
-        }
-    }
-
-    private boolean updateOthers(File file, String changed) throws MojoExecutionException {
-        if (!file.exists()) {
-            return false;
-        }
-
-        try {
-            String text = loadText(new FileInputStream(file));
-
-            String existing = Strings.between(text, "// others: START", "// others: END");
-            if (existing != null) {
-                // remove leading line breaks etc
-                existing = existing.trim();
-                changed = changed.trim();
-                if (existing.equals(changed)) {
-                    return false;
-                } else {
-                    String before = Strings.before(text, "// others: START");
-                    String after = Strings.after(text, "// others: END");
-                    text = before + "// others: START\n" + changed + "\n// others: END" + after;
-                    writeText(file, text);
-                    return true;
-                }
-            } else {
-                getLog().warn("Cannot find markers in file " + file);
-                getLog().warn("Add the following markers");
-                getLog().warn("\t// others: START");
-                getLog().warn("\t// others: END");
-                return false;
-            }
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
-        }
-    }
-
-    private void copyToPublishedDocumentation(final String artifactId) {
-        final Path docs = Paths.get("components", artifactId, "src/main/docs");
-
-        try {
-            Files.list(docs).forEach(d -> {
-                try {
-                    Files.copy(d, Paths.get(docBaseDir.getCanonicalPath(), d.getFileName().toString()), StandardCopyOption.REPLACE_EXISTING);
-                } catch (IOException e) {
-                    throw new UncheckedIOException("Unable to copy component documentation for: " + artifactId, e);
-                }
-            });
-        } catch (IOException e) {
-            throw new UncheckedIOException("Unable to list component documentation for: " + artifactId, e);
-        }
-    }
-
-    private static class ComponentComparator implements Comparator<ComponentModel> {
-
-        @Override
-        public int compare(ComponentModel o1, ComponentModel o2) {
-            // lets sort by title
-            return o1.getTitle().compareToIgnoreCase(o2.getTitle());
-        }
-    }
-
-    private static class DataFormatComparator implements Comparator<DataFormatModel> {
-
-        @Override
-        public int compare(DataFormatModel o1, DataFormatModel o2) {
-            // lets sort by title
-            return o1.getTitle().compareToIgnoreCase(o2.getTitle());
-        }
-    }
-
-    private static class LanguageComparator implements Comparator<LanguageModel> {
-
-        @Override
-        public int compare(LanguageModel o1, LanguageModel o2) {
-            // lets sort by title
-            return o1.getTitle().compareToIgnoreCase(o2.getTitle());
-        }
-
-    }
-
-    private static class OtherComparator implements Comparator<OtherModel> {
-
-        @Override
-        public int compare(OtherModel o1, OtherModel o2) {
-            // lets sort by title
-            return o1.getTitle().compareToIgnoreCase(o2.getTitle());
-        }
-
-    }
-
-    private ComponentModel generateComponentModel(String json) {
-        return JsonMapper.generateComponentModel(json);
-    }
-
-    private DataFormatModel generateDataFormatModel(String json) {
-        return JsonMapper.generateDataFormatModel(json);
-    }
-
-    private LanguageModel generateLanguageModel(String json) {
-        return JsonMapper.generateLanguageModel(json);
-    }
-
-    private OtherModel generateOtherModel(String json) {
-        return JsonMapper.generateOtherModel(json);
-    }
-
-    private String getJSonValue(String key, List<Map<String, String>> rows) {
-        for (Map<String, String> row : rows) {
-            if (row.containsKey(key)) {
-                return row.get(key);
-            }
-        }
-        return "";
-    }
-
-    private Path getComponentsStarterDocPath() {
-        return Paths.get(docBaseDir.toString(), "components-starter");
-    }
-
-}
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/LICENSE.txt b/tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/LICENSE.txt
deleted file mode 100644
index 6b0b127..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/LICENSE.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/NOTICE.txt b/tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/NOTICE.txt
deleted file mode 100644
index 2e215bf..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/META-INF/NOTICE.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-   =========================================================================
-   ==  NOTICE file corresponding to the section 4 d of                    ==
-   ==  the Apache License, Version 2.0,                                   ==
-   ==  in this case for the Apache Camel distribution.                    ==
-   =========================================================================
-
-   This product includes software developed by
-   The Apache Software Foundation (http://www.apache.org/).
-
-   Please read the different LICENSE files present in the licenses directory of
-   this distribution.
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/components.mvel b/tooling/camel-karaf-docs-maven-plugin/src/main/resources/components.mvel
deleted file mode 100644
index fe78049..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/components.mvel
+++ /dev/null
@@ -1,14 +0,0 @@
-@if{!components.isEmpty()}
-
-Number of Camel components: @{components.size} in @{numberOfArtifacts} JAR artifacts (@{numberOfDeprecated} deprecated)
-
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Component | Since | Description
-@foreach{row : components}
-| @{util.getDocLink(row)}[@{row.title}] (@{row.artifactId}) +
-`@{row.syntax}` | @{util.getFirstVersionShort(row)} | @if{row.deprecated == "true"}*deprecated* @end{}@{util.escape(row.description)}
-@end{}
-|===
-
-@end{}
\ No newline at end of file
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/dataformats.mvel b/tooling/camel-karaf-docs-maven-plugin/src/main/resources/dataformats.mvel
deleted file mode 100644
index f2c0a4d..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/dataformats.mvel
+++ /dev/null
@@ -1,13 +0,0 @@
-@if{!dataformats.isEmpty()}
-
-Number of Camel data formats: @{dataformats.size} in @{numberOfArtifacts} JAR artifacts (@{numberOfDeprecated} deprecated)
-
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Data Format | Since | Description
-@foreach{row : dataformats}
-| @{util.getDocLink(row)}[@{row.title}] +
-(@{row.artifactId}) | @{util.getFirstVersionShort(row)} | @if{row.deprecated == "true"}*deprecated* @end{}@{util.escape(row.description)}
-@end{}|===
-
-@end{}
\ No newline at end of file
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/languages.mvel b/tooling/camel-karaf-docs-maven-plugin/src/main/resources/languages.mvel
deleted file mode 100644
index 95b5281..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/languages.mvel
+++ /dev/null
@@ -1,13 +0,0 @@
-@if{!languages.isEmpty()}
-
-Number of Camel languages: @{languages.size} in @{numberOfArtifacts} JAR artifacts (@{numberOfDeprecated} deprecated)
-
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Language | Since | Description
-@foreach{row : languages}
-| @{util.getDocLink(row)}[@{row.title}] +
-(@{row.artifactId}) | @{util.getFirstVersionShort(row)} | @if{row.deprecated == "true"}*deprecated* @end{}@{util.escape(row.description)}
-@end{}|===
-
-@end{}
\ No newline at end of file
diff --git a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/others.mvel b/tooling/camel-karaf-docs-maven-plugin/src/main/resources/others.mvel
deleted file mode 100644
index d59897b..0000000
--- a/tooling/camel-karaf-docs-maven-plugin/src/main/resources/others.mvel
+++ /dev/null
@@ -1,13 +0,0 @@
-@if{!others.isEmpty()}
-
-Number of miscellaneous extensions: @{others.size} in @{numberOfArtifacts} JAR artifacts (@{numberOfDeprecated} deprecated)
-
-[width="100%",cols="4,1,5",options="header"]
-|===
-| Extension | Since | Description
-@foreach{row : others}
-| @{util.getDocLink(row)}[@{row.title}] +
-(@{row.artifactId}) | @{util.getFirstVersionShort(row)} | @if{row.deprecated == "true"}*deprecated* @end{}@{util.escape(row.description)}
-@end{}|===
-
-@end{}
\ No newline at end of file
diff --git a/tooling/pom.xml b/tooling/pom.xml
index b981276..62c4272 100644
--- a/tooling/pom.xml
+++ b/tooling/pom.xml
@@ -33,7 +33,6 @@
 
     <modules>
         <module>camel-catalog-generator-karaf-maven-plugin</module>
-        <module>camel-karaf-docs-maven-plugin</module>
         <module>camel-karaf-maven-plugin</module>
     </modules>
 

[camel-karaf] 03/05: symlink json files into examples

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

djencks pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit 337ef4cb8fa804c94146291a37e47cb12ee5b001
Author: David Jencks <dj...@apache.org>
AuthorDate: Tue Dec 28 22:22:04 2021 -0800

    symlink json files into examples
---
 docs/modules/ROOT/examples/json | 1 +
 1 file changed, 1 insertion(+)

diff --git a/docs/modules/ROOT/examples/json b/docs/modules/ROOT/examples/json
new file mode 120000
index 0000000..5b3d639
--- /dev/null
+++ b/docs/modules/ROOT/examples/json
@@ -0,0 +1 @@
+../../../../catalog/camel-catalog-provider-karaf/src/main/resources/org/apache/camel/catalog/karaf
\ No newline at end of file