You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by oa...@apache.org on 2020/02/04 10:16:40 UTC

[camel] branch master updated: CAMEL-13807: Add Component DSL fluent builders (#3521)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new c0819a3  CAMEL-13807: Add Component DSL fluent builders (#3521)
c0819a3 is described below

commit c0819a3448080fc7f35e1222dd73d6d4bdf1e7fa
Author: Omar Al-Safi <om...@gmail.com>
AuthorDate: Tue Feb 4 11:16:25 2020 +0100

    CAMEL-13807: Add Component DSL fluent builders (#3521)
    
    * CAMEL-13807: First design of the component DSL APIs
    
    * CAMEL-13807: First design of the component DSL APIs
    
    * CAMEL-13807: Progress on the component builder
    
    * CAMEL-13807: Progress on the component builder
    
    * CAMEL-13807: First design of the component DSL APIs
    
    * CAMEL-13807: Progress on the component builder
    
    * CAMEL-13807: Progress on the component builder
    
    * CAMEL-13807: Progress on the maven plugin
    
    * CAMEL-13807: Progress on the maven plugin
    
    * CAMEL-13807: Some refactor on the ComponentModel
    
    * CAMEL-13807: Progress on the maven plugin
    
    * CAMEL-13807: Progress on the maven plugin
    
    * CAMEL-13807: Progress on the maven plugin
    
    * CAMEL-13807: Progress on the maven plugin and working version
    
    * CAMEL-13807: Minor improvements
    
    * CAMEL-13807: Add working version from end to end
    
    * CAMEL-13807: Progress on the maven plugin and working version
    
    * CAMEL-13807: Add first tests
    
    * CAMEL-13807: Change to generics in order to avoid explicit casting from the user
    
    * CAMEL-13807: Add tests and regen
    
    * CAMEL-13807: Migrate to the new ComponentModel
    
    * CAMEL-13807: Make sure to sync unique maven artifects into the pom file
    
    * CAMEL-13807: Add more test cases to componentdsl and fix CS in componentsdsl
    
    * CAMEL-13807: Add tests for maven plugin and fix CS
    
    * CAMEL-13807: Regen
    
    * CAMEL-13807: Replace Property configurator with generated setters and add an example
    
    * CAMEL-13807: Push AbstractComponentBuilder
    
    * CAMEL-13807: Fix component aliases and add register API
---
 bom/camel-bom/pom.xml                              |    5 +
 .../resources/camel-checkstyle-suppressions.xml    |    3 +
 .../apache/camel/component/hdfs/HdfsComponent.java |    4 +-
 components/pom.xml                                 |    1 +
 core/camel-componentdsl/pom.xml                    | 1602 +++++
 .../component/AbstractComponentBuilder.java        |   75 +
 .../camel/builder/component/ComponentBuilder.java  |   54 +
 .../component/ComponentsBuilderFactory.java        | 3837 +++++++++++
 .../component/dsl/AMQPComponentBuilderFactory.java | 1505 ++++
 .../component/dsl/AS2ComponentBuilderFactory.java  |  142 +
 .../dsl/ActiveMQComponentBuilderFactory.java       | 1571 +++++
 .../component/dsl/AhcComponentBuilderFactory.java  |  214 +
 .../dsl/AhcWsWsComponentBuilderFactory.java        |  215 +
 .../dsl/AhcWssWsComponentBuilderFactory.java       |  215 +
 .../component/dsl/ApnsComponentBuilderFactory.java |  141 +
 .../dsl/AsteriskComponentBuilderFactory.java       |  129 +
 .../dsl/AtmosComponentBuilderFactory.java          |  177 +
 .../component/dsl/AtomComponentBuilderFactory.java |  105 +
 .../dsl/AtomixMapComponentBuilderFactory.java      |  183 +
 .../AtomixMessagingComponentBuilderFactory.java    |  185 +
 .../dsl/AtomixMultiMapComponentBuilderFactory.java |  166 +
 .../dsl/AtomixQueueComponentBuilderFactory.java    |  183 +
 .../dsl/AtomixSetComponentBuilderFactory.java      |  183 +
 .../dsl/AtomixValueComponentBuilderFactory.java    |  183 +
 .../component/dsl/AvroComponentBuilderFactory.java |  140 +
 .../component/dsl/BeanComponentBuilderFactory.java |  146 +
 .../dsl/BeanValidatorComponentBuilderFactory.java  |  181 +
 .../dsl/BeanstalkComponentBuilderFactory.java      |  148 +
 .../dsl/BlobServiceComponentBuilderFactory.java    |  145 +
 .../dsl/BonitaComponentBuilderFactory.java         |  109 +
 .../component/dsl/BoxComponentBuilderFactory.java  |  142 +
 .../dsl/BraintreeComponentBuilderFactory.java      |  161 +
 .../dsl/BrowseComponentBuilderFactory.java         |  131 +
 .../component/dsl/CMComponentBuilderFactory.java   |  106 +
 .../component/dsl/CMISComponentBuilderFactory.java |  144 +
 .../dsl/CaffeineCacheComponentBuilderFactory.java  |  123 +
 .../CaffeineLoadCacheComponentBuilderFactory.java  |  125 +
 .../dsl/CassandraComponentBuilderFactory.java      |  132 +
 .../dsl/ChatScriptComponentBuilderFactory.java     |  109 +
 .../dsl/ChunkComponentBuilderFactory.java          |  107 +
 .../dsl/CinderComponentBuilderFactory.java         |  111 +
 .../dsl/ClassComponentBuilderFactory.java          |  147 +
 .../dsl/ClientComponentBuilderFactory.java         |  148 +
 .../dsl/CoapCoAPComponentBuilderFactory.java       |  131 +
 .../dsl/CoapTcpCoAPComponentBuilderFactory.java    |  131 +
 .../dsl/CoapsCoAPComponentBuilderFactory.java      |  131 +
 .../dsl/CoapsTcpCoAPComponentBuilderFactory.java   |  131 +
 .../dsl/CometdCometdComponentBuilderFactory.java   |  227 +
 .../dsl/CometdsCometdComponentBuilderFactory.java  |  227 +
 .../dsl/ConsulComponentBuilderFactory.java         |  237 +
 .../dsl/ControlBusComponentBuilderFactory.java     |  111 +
 .../dsl/CordaComponentBuilderFactory.java          |  142 +
 .../dsl/CouchDbComponentBuilderFactory.java        |  129 +
 .../dsl/CouchbaseComponentBuilderFactory.java      |  131 +
 .../component/dsl/CronComponentBuilderFactory.java |  118 +
 .../dsl/CryptoCmsComponentBuilderFactory.java      |  144 +
 .../component/dsl/CwComponentBuilderFactory.java   |  156 +
 .../component/dsl/CxfComponentBuilderFactory.java  |  171 +
 .../dsl/CxfRsComponentBuilderFactory.java          |  156 +
 .../dsl/DataFormatComponentBuilderFactory.java     |  111 +
 .../dsl/DataSetComponentBuilderFactory.java        |  111 +
 .../dsl/DataSetTestComponentBuilderFactory.java    |  111 +
 .../component/dsl/DdbComponentBuilderFactory.java  |  159 +
 .../dsl/DdbStreamComponentBuilderFactory.java      |  158 +
 .../DebeziumMongodbComponentBuilderFactory.java    |  125 +
 .../dsl/DebeziumMySqlComponentBuilderFactory.java  |  125 +
 .../DebeziumPostgresComponentBuilderFactory.java   |  125 +
 .../DebeziumSqlserverComponentBuilderFactory.java  |  125 +
 .../dsl/DigitalOceanComponentBuilderFactory.java   |  111 +
 .../DigitalSignatureComponentBuilderFactory.java   |  125 +
 .../dsl/DirectComponentBuilderFactory.java         |  159 +
 .../dsl/DirectVmComponentBuilderFactory.java       |  190 +
 .../dsl/DisruptorComponentBuilderFactory.java      |  232 +
 .../dsl/DisruptorVmComponentBuilderFactory.java    |  232 +
 .../component/dsl/DnsComponentBuilderFactory.java  |  106 +
 .../dsl/DockerComponentBuilderFactory.java         |  144 +
 .../dsl/DozerComponentBuilderFactory.java          |  109 +
 .../dsl/DrillComponentBuilderFactory.java          |  109 +
 .../dsl/DropboxComponentBuilderFactory.java        |  131 +
 .../component/dsl/EC2ComponentBuilderFactory.java  |  157 +
 .../component/dsl/ECS2ComponentBuilderFactory.java |  157 +
 .../component/dsl/ECSComponentBuilderFactory.java  |  157 +
 .../component/dsl/EKS2ComponentBuilderFactory.java |  157 +
 .../component/dsl/EKSComponentBuilderFactory.java  |  157 +
 .../dsl/EhcacheComponentBuilderFactory.java        |  213 +
 .../dsl/ElasticsearchComponentBuilderFactory.java  |  267 +
 .../dsl/ElsqlComponentBuilderFactory.java          |  186 +
 .../dsl/ElytronComponentBuilderFactory.java        |  251 +
 .../component/dsl/EtcdComponentBuilderFactory.java |  206 +
 .../dsl/EventAdminComponentBuilderFactory.java     |  144 +
 .../dsl/EventComponentBuilderFactory.java          |  128 +
 .../component/dsl/ExecComponentBuilderFactory.java |  106 +
 .../dsl/FacebookComponentBuilderFactory.java       |  145 +
 .../component/dsl/FhirComponentBuilderFactory.java |  141 +
 .../component/dsl/FileComponentBuilderFactory.java |  126 +
 .../dsl/FileWatchComponentBuilderFactory.java      |  187 +
 .../dsl/FlatpackComponentBuilderFactory.java       |  131 +
 .../dsl/FlinkComponentBuilderFactory.java          |  165 +
 .../component/dsl/FopComponentBuilderFactory.java  |  108 +
 .../dsl/FreemarkerComponentBuilderFactory.java     |  123 +
 .../component/dsl/FtpComponentBuilderFactory.java  |  128 +
 .../component/dsl/FtpsComponentBuilderFactory.java |  142 +
 .../dsl/GangliaComponentBuilderFactory.java        |  126 +
 .../dsl/GeoCoderComponentBuilderFactory.java       |  111 +
 .../component/dsl/GitComponentBuilderFactory.java  |  126 +
 .../dsl/GitHubComponentBuilderFactory.java         |  129 +
 .../dsl/GlanceComponentBuilderFactory.java         |  111 +
 .../dsl/GoogleBigQueryComponentBuilderFactory.java |  150 +
 .../GoogleBigQuerySQLComponentBuilderFactory.java  |  137 +
 .../dsl/GoogleCalendarComponentBuilderFactory.java |  158 +
 ...oogleCalendarStreamComponentBuilderFactory.java |  137 +
 .../dsl/GoogleDriveComponentBuilderFactory.java    |  160 +
 .../dsl/GoogleMailComponentBuilderFactory.java     |  158 +
 .../GoogleMailStreamComponentBuilderFactory.java   |  135 +
 .../dsl/GooglePubsubComponentBuilderFactory.java   |  145 +
 .../dsl/GoogleSheetsComponentBuilderFactory.java   |  158 +
 .../GoogleSheetsStreamComponentBuilderFactory.java |  136 +
 .../component/dsl/GoraComponentBuilderFactory.java |  128 +
 .../dsl/GrapeComponentBuilderFactory.java          |  124 +
 .../dsl/GraphqlComponentBuilderFactory.java        |  109 +
 .../dsl/GridFsComponentBuilderFactory.java         |  129 +
 .../component/dsl/GrpcComponentBuilderFactory.java |  128 +
 .../dsl/GuavaEventBusComponentBuilderFactory.java  |  162 +
 .../dsl/HBaseComponentBuilderFactory.java          |  155 +
 ...zelcastAtomicnumberComponentBuilderFactory.java |  144 +
 .../HazelcastInstanceComponentBuilderFactory.java  |  141 +
 .../dsl/HazelcastListComponentBuilderFactory.java  |  162 +
 .../dsl/HazelcastMapComponentBuilderFactory.java   |  161 +
 .../HazelcastMultimapComponentBuilderFactory.java  |  163 +
 .../dsl/HazelcastQueueComponentBuilderFactory.java |  162 +
 ...elcastReplicatedmapComponentBuilderFactory.java |  163 +
 ...HazelcastRingbufferComponentBuilderFactory.java |  143 +
 .../dsl/HazelcastSedaComponentBuilderFactory.java  |  161 +
 .../dsl/HazelcastSetComponentBuilderFactory.java   |  161 +
 .../dsl/HazelcastTopicComponentBuilderFactory.java |  162 +
 .../component/dsl/HdfsComponentBuilderFactory.java |  156 +
 .../dsl/HipchatComponentBuilderFactory.java        |  131 +
 .../dsl/HttpHttpComponentBuilderFactory.java       |  376 +
 .../dsl/HttpsHttpComponentBuilderFactory.java      |  376 +
 .../component/dsl/IAMComponentBuilderFactory.java  |  157 +
 .../component/dsl/IOTAComponentBuilderFactory.java |  106 +
 .../component/dsl/IPFSComponentBuilderFactory.java |  134 +
 .../dsl/IgniteCacheComponentBuilderFactory.java    |  173 +
 .../dsl/IgniteComputeComponentBuilderFactory.java  |  157 +
 .../dsl/IgniteEventsComponentBuilderFactory.java   |  152 +
 .../dsl/IgniteIdGenComponentBuilderFactory.java    |  153 +
 .../IgniteMessagingComponentBuilderFactory.java    |  173 +
 .../dsl/IgniteQueueComponentBuilderFactory.java    |  153 +
 .../dsl/IgniteSetComponentBuilderFactory.java      |  152 +
 .../dsl/ImapMailComponentBuilderFactory.java       |  187 +
 .../dsl/ImapsMailComponentBuilderFactory.java      |  187 +
 .../dsl/InfinispanComponentBuilderFactory.java     |  159 +
 .../dsl/InfluxDbComponentBuilderFactory.java       |  111 +
 .../component/dsl/IrcComponentBuilderFactory.java  |  140 +
 .../dsl/IronMQComponentBuilderFactory.java         |  131 +
 .../component/dsl/JBPMComponentBuilderFactory.java |  128 +
 .../dsl/JCacheComponentBuilderFactory.java         |  199 +
 .../dsl/JGroupsComponentBuilderFactory.java        |  173 +
 .../dsl/JGroupsRaftComponentBuilderFactory.java    |  186 +
 .../component/dsl/JMXComponentBuilderFactory.java  |  105 +
 .../JSR356WebSocketComponentBuilderFactory.java    |  129 +
 .../dsl/JcloudsComponentBuilderFactory.java        |  159 +
 .../component/dsl/JcrComponentBuilderFactory.java  |  128 +
 .../component/dsl/JdbcComponentBuilderFactory.java |  121 +
 .../dsl/JettyHttpComponent9BuilderFactory.java     |  544 ++
 .../component/dsl/JingComponentBuilderFactory.java |  107 +
 .../component/dsl/JiraComponentBuilderFactory.java |  140 +
 .../component/dsl/JmsComponentBuilderFactory.java  | 1490 ++++
 .../component/dsl/JoltComponentBuilderFactory.java |  122 +
 .../component/dsl/JooqComponentBuilderFactory.java |  143 +
 .../component/dsl/JpaComponentBuilderFactory.java  |  190 +
 .../component/dsl/JsltComponentBuilderFactory.java |  122 +
 .../dsl/JsonValidatorComponentBuilderFactory.java  |  109 +
 .../dsl/Jt400ComponentBuilderFactory.java          |  143 +
 .../component/dsl/KMSComponentBuilderFactory.java  |  157 +
 .../dsl/KafkaComponentBuilderFactory.java          |  249 +
 .../dsl/KeystoneComponentBuilderFactory.java       |  111 +
 .../dsl/KinesisComponentBuilderFactory.java        |  181 +
 .../KinesisFirehoseComponentBuilderFactory.java    |  163 +
 ...ubernetesConfigMapsComponentBuilderFactory.java |  111 +
 ...bernetesDeploymentsComponentBuilderFactory.java |  131 +
 .../dsl/KubernetesHPAComponentBuilderFactory.java  |  131 +
 .../dsl/KubernetesJobComponentBuilderFactory.java  |  131 +
 ...ubernetesNamespacesComponentBuilderFactory.java |  132 +
 .../KubernetesNodesComponentBuilderFactory.java    |  131 +
 ...istentVolumesClaimsComponentBuilderFactory.java |  111 +
 ...esPersistentVolumesComponentBuilderFactory.java |  111 +
 .../dsl/KubernetesPodsComponentBuilderFactory.java |  131 +
 ...licationControllersComponentBuilderFactory.java |  133 +
 ...netesResourcesQuotaComponentBuilderFactory.java |  111 +
 .../KubernetesSecretsComponentBuilderFactory.java  |  111 +
 ...etesServiceAccountsComponentBuilderFactory.java |  111 +
 .../KubernetesServicesComponentBuilderFactory.java |  131 +
 .../component/dsl/KuduComponentBuilderFactory.java |  110 +
 .../dsl/LambdaComponentBuilderFactory.java         |  161 +
 .../dsl/LanguageComponentBuilderFactory.java       |  111 +
 .../component/dsl/LdapComponentBuilderFactory.java |  108 +
 .../component/dsl/LdifComponentBuilderFactory.java |  108 +
 .../component/dsl/LogComponentBuilderFactory.java  |  123 +
 .../dsl/LuceneComponentBuilderFactory.java         |  124 +
 .../dsl/LumberjackComponentBuilderFactory.java     |  138 +
 .../component/dsl/MQComponentBuilderFactory.java   |  156 +
 .../component/dsl/MSKComponentBuilderFactory.java  |  157 +
 .../dsl/MasterComponentBuilderFactory.java         |  194 +
 .../dsl/MetricsComponentBuilderFactory.java        |  125 +
 ...MicroProfileMetricsComponentBuilderFactory.java |  123 +
 .../dsl/MicrometerComponentBuilderFactory.java     |  125 +
 .../dsl/MiloClientComponentBuilderFactory.java     |  197 +
 .../dsl/MiloServerComponentBuilderFactory.java     |  385 ++
 .../component/dsl/MinaComponentBuilderFactory.java |  155 +
 .../component/dsl/MllpComponentBuilderFactory.java |  185 +
 .../component/dsl/MockComponentBuilderFactory.java |  108 +
 .../dsl/MongoDbComponentBuilderFactory.java        |  143 +
 .../component/dsl/MsvComponentBuilderFactory.java  |  135 +
 .../dsl/MustacheComponentBuilderFactory.java       |  123 +
 .../component/dsl/MvelComponentBuilderFactory.java |  106 +
 .../dsl/MyBatisBeanComponentBuilderFactory.java    |  140 +
 .../dsl/MyBatisComponentBuilderFactory.java        |  160 +
 .../dsl/NagiosComponentBuilderFactory.java         |  124 +
 .../component/dsl/NatsComponentBuilderFactory.java |  153 +
 .../dsl/NetWeaverComponentBuilderFactory.java      |  111 +
 .../dsl/NettyComponentBuilderFactory.java          |  205 +
 .../dsl/NettyHttpComponentBuilderFactory.java      |  254 +
 .../dsl/NeutronComponentBuilderFactory.java        |  111 +
 .../dsl/NitriteComponentBuilderFactory.java        |  129 +
 .../component/dsl/NovaComponentBuilderFactory.java |  108 +
 .../component/dsl/NsqComponentBuilderFactory.java  |  153 +
 .../dsl/Olingo2ComponentBuilderFactory.java        |  158 +
 .../dsl/Olingo4ComponentBuilderFactory.java        |  158 +
 ...enshiftBuildConfigsComponentBuilderFactory.java |  111 +
 .../OpenshiftBuildsComponentBuilderFactory.java    |  111 +
 .../dsl/OptaPlannerComponentBuilderFactory.java    |  129 +
 .../component/dsl/PahoComponentBuilderFactory.java |  168 +
 .../dsl/PaxLoggingComponentBuilderFactory.java     |  122 +
 .../component/dsl/PdfComponentBuilderFactory.java  |  108 +
 .../dsl/PgEventComponentBuilderFactory.java        |  131 +
 .../PgReplicationSlotComponentBuilderFactory.java  |  107 +
 .../dsl/PlatformHttpComponentBuilderFactory.java   |  107 +
 .../dsl/Pop3MailComponentBuilderFactory.java       |  187 +
 .../dsl/Pop3sMailComponentBuilderFactory.java      |  187 +
 .../dsl/PrinterComponentBuilderFactory.java        |  110 +
 .../dsl/PubNubComponentBuilderFactory.java         |  131 +
 .../dsl/PulsarComponentBuilderFactory.java         |  191 +
 .../dsl/QuartzComponentBuilderFactory.java         |  264 +
 .../dsl/QueueServiceComponentBuilderFactory.java   |  145 +
 .../dsl/QuickfixjComponentBuilderFactory.java      |  200 +
 .../dsl/RabbitMQComponentBuilderFactory.java       |  838 +++
 .../ReactiveStreamsComponentBuilderFactory.java    |  175 +
 .../dsl/RedisComponentBuilderFactory.java          |  128 +
 .../component/dsl/RefComponentBuilderFactory.java  |  128 +
 .../dsl/RestApiComponentBuilderFactory.java        |  109 +
 .../component/dsl/RestComponentBuilderFactory.java |  209 +
 .../dsl/RestOpenApiComponentBuilderFactory.java    |  240 +
 .../dsl/RestSwaggerComponentBuilderFactory.java    |  240 +
 .../dsl/RobotFrameworkComponentBuilderFactory.java |  143 +
 .../component/dsl/RssComponentBuilderFactory.java  |  105 +
 .../component/dsl/S3ComponentBuilderFactory.java   |  178 +
 .../component/dsl/SWFComponentBuilderFactory.java  |  179 +
 .../component/dsl/SagaComponentBuilderFactory.java |  108 +
 .../dsl/SalesforceComponentBuilderFactory.java     |  589 ++
 .../dsl/SchedulerComponentBuilderFactory.java      |  123 +
 .../dsl/SchematronComponentBuilderFactory.java     |  109 +
 .../component/dsl/ScpComponentBuilderFactory.java  |  121 +
 .../component/dsl/SdbComponentBuilderFactory.java  |  108 +
 .../component/dsl/SedaComponentBuilderFactory.java |  223 +
 .../dsl/ServerComponentBuilderFactory.java         |  148 +
 .../dsl/ServiceComponentBuilderFactory.java        |  138 +
 .../dsl/ServiceNowComponentBuilderFactory.java     |  277 +
 .../dsl/ServletComponentBuilderFactory.java        |  232 +
 .../component/dsl/SesComponentBuilderFactory.java  |  158 +
 .../component/dsl/SftpComponentBuilderFactory.java |  128 +
 .../dsl/SipSipComponentBuilderFactory.java         |  129 +
 .../dsl/SipsSipComponentBuilderFactory.java        |  129 +
 .../dsl/Sjms2ComponentBuilderFactory.java          |  348 +
 .../dsl/SjmsBatchComponentBuilderFactory.java      |  175 +
 .../component/dsl/SjmsComponentBuilderFactory.java |  347 +
 .../dsl/SlackComponentBuilderFactory.java          |  139 +
 .../dsl/SmppSmppComponentBuilderFactory.java       |  143 +
 .../dsl/SmppsSmppComponentBuilderFactory.java      |  143 +
 .../dsl/SmtpMailComponentBuilderFactory.java       |  187 +
 .../dsl/SmtpsMailComponentBuilderFactory.java      |  187 +
 .../component/dsl/SnmpComponentBuilderFactory.java |  128 +
 .../component/dsl/SnsComponentBuilderFactory.java  |  159 +
 .../dsl/SolrSolrComponentBuilderFactory.java       |  110 +
 .../dsl/SolrcloudSolrComponentBuilderFactory.java  |  110 +
 .../dsl/SolrsSolrComponentBuilderFactory.java      |  110 +
 .../dsl/SoroushBotComponentBuilderFactory.java     |  143 +
 .../dsl/SparkComponentBuilderFactory.java          |  137 +
 .../dsl/SplunkComponentBuilderFactory.java         |  143 +
 .../dsl/SpringBatchComponentBuilderFactory.java    |  140 +
 .../SpringIntegrationComponentBuilderFactory.java  |  129 +
 .../dsl/SpringLdapComponentBuilderFactory.java     |  111 +
 .../SpringWebserviceComponentBuilderFactory.java   |  145 +
 .../component/dsl/SqlComponentBuilderFactory.java  |  153 +
 .../dsl/SqlStoredComponentBuilderFactory.java      |  124 +
 .../component/dsl/SqsComponentBuilderFactory.java  |  180 +
 .../component/dsl/SshComponentBuilderFactory.java  |  315 +
 .../component/dsl/StAXComponentBuilderFactory.java |  108 +
 .../dsl/StompComponentBuilderFactory.java          |  221 +
 .../dsl/StreamComponentBuilderFactory.java         |  131 +
 .../dsl/StringTemplateComponentBuilderFactory.java |  109 +
 .../component/dsl/StubComponentBuilderFactory.java |  223 +
 .../dsl/SwiftComponentBuilderFactory.java          |  109 +
 .../dsl/TelegramComponentBuilderFactory.java       |  186 +
 .../dsl/ThriftComponentBuilderFactory.java         |  146 +
 .../component/dsl/TikaComponentBuilderFactory.java |  108 +
 .../dsl/TimerComponentBuilderFactory.java          |  107 +
 .../dsl/Translate2ComponentBuilderFactory.java     |  159 +
 .../dsl/TranslateComponentBuilderFactory.java      |  159 +
 .../dsl/TwilioComponentBuilderFactory.java         |  195 +
 ...witterDirectMessageComponentBuilderFactory.java |  235 +
 .../dsl/TwitterSearchComponentBuilderFactory.java  |  232 +
 .../TwitterTimelineComponentBuilderFactory.java    |  234 +
 .../dsl/UndertowComponentBuilderFactory.java       |  204 +
 .../dsl/ValidatorComponentBuilderFactory.java      |  124 +
 .../dsl/VelocityComponentBuilderFactory.java       |  123 +
 .../dsl/VertxComponentBuilderFactory.java          |  206 +
 .../component/dsl/VmComponentBuilderFactory.java   |  221 +
 .../dsl/WeatherComponentBuilderFactory.java        |  156 +
 .../dsl/Web3jComponentBuilderFactory.java          |  144 +
 .../dsl/WebhookComponentBuilderFactory.java        |  126 +
 .../dsl/WebsocketComponentBuilderFactory.java      |  317 +
 .../component/dsl/WekaComponentBuilderFactory.java |  106 +
 .../dsl/WordpressComponentBuilderFactory.java      |  143 +
 .../dsl/XChangeComponentBuilderFactory.java        |  111 +
 .../component/dsl/XJComponentBuilderFactory.java   |  226 +
 .../dsl/XQueryComponentBuilderFactory.java         |  170 +
 .../dsl/XmlSignatureComponentBuilderFactory.java   |  139 +
 .../component/dsl/XmppComponentBuilderFactory.java |  126 +
 .../component/dsl/XsltComponentBuilderFactory.java |  183 +
 .../dsl/XsltSaxonComponentBuilderFactory.java      |  229 +
 .../dsl/YammerComponentBuilderFactory.java         |  183 +
 .../dsl/ZendeskComponentBuilderFactory.java        |  158 +
 .../dsl/ZooKeeperComponentBuilderFactory.java      |  143 +
 .../src/main/resources/metadata.json               | 7211 ++++++++++++++++++++
 .../component/ComponentsBuilderFactoryTest.java    |   93 +
 .../src/test/resources/application.properties      |   19 +
 .../src/test/resources/log4j2.properties           |   49 +
 core/pom.xml                                       |    1 +
 examples/camel-example-kafka/pom.xml               |    4 +
 .../example/kafka/MessagePublisherClient.java      |    7 +-
 parent/pom.xml                                     |    5 +
 tooling/maven/camel-package-maven-plugin/pom.xml   |    5 +
 .../camel/maven/packaging/AbstractDslMojo.java     |  130 +
 .../camel/maven/packaging/ComponentDslMojo.java    |  235 +
 .../camel/maven/packaging/dsl/DslHelper.java       |  124 +
 .../ComponentDslBuilderFactoryGenerator.java       |  134 +
 .../ComponentDslInnerBuilderGenerator.java         |  105 +
 .../ComponentDslInnerImplBuilderGenerator.java     |   98 +
 .../ComponentsBuilderFactoryGenerator.java         |  120 +
 .../component/ComponentsDslMetadataRegistry.java   |  137 +
 .../dsl/component/EnrichedComponentModel.java      |   58 +
 .../ComponentDslBuilderFactoryGeneratorTest.java   |   59 +
 .../ComponentDslInnerBuilderGeneratorTest.java     |   56 +
 .../ComponentDslInnerImplBuilderGeneratorTest.java |   58 +
 .../ComponentsBuilderFactoryGeneratorTest.java     |   53 +
 .../ComponentsDslMetadataRegistryTest.java         |   73 +
 .../test/resources/json/component_metadata.json    |   42 +
 .../src/test/resources/json/test_component.json    |  133 +
 .../src/test/resources/json/test_component2.json   |   24 +
 360 files changed, 70300 insertions(+), 5 deletions(-)

diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index cdf972e..85acd97 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -418,6 +418,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-componentdsl</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-consul</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/buildingtools/src/main/resources/camel-checkstyle-suppressions.xml b/buildingtools/src/main/resources/camel-checkstyle-suppressions.xml
index c8d7d69..d05c868 100644
--- a/buildingtools/src/main/resources/camel-checkstyle-suppressions.xml
+++ b/buildingtools/src/main/resources/camel-checkstyle-suppressions.xml
@@ -28,6 +28,9 @@
               files=".*/camel-endpointdsl/src/main/java/org/apache/camel/builder/endpoint/dsl/.*"
               />
     <suppress checks=".*"
+              files=".*/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/.*"
+              />
+    <suppress checks=".*"
               files=".*/platforms/spring-boot/components-starter/camel-.+-starter/src/main/java/org/apache/camel/.*"
               />
     <suppress checks=".*"
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java
index 78c5d7c..35b9c3b 100644
--- a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsComponent.java
@@ -54,7 +54,7 @@ public class HdfsComponent extends DefaultComponent {
         }
     }
 
-    static Configuration getJAASConfiguration() {
+    public static Configuration getJAASConfiguration() {
         Configuration auth = null;
         try {
             auth = Configuration.getConfiguration();
@@ -68,7 +68,7 @@ public class HdfsComponent extends DefaultComponent {
     /**
      * To use the given configuration for security with JAAS.
      */
-    static void setJAASConfiguration(Configuration auth) {
+    public static void setJAASConfiguration(Configuration auth) {
         if (auth != null) {
             LOG.trace("Restoring existing JAAS Configuration {}", auth);
             try {
diff --git a/components/pom.xml b/components/pom.xml
index 33dce2b..b670e19 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -401,6 +401,7 @@
                             <goal>validate-components</goal>
                             <goal>generate-legal</goal>
                             <goal>generate-endpoint-dsl</goal>
+                            <goal>generate-component-dsl</goal>
                         </goals>
                         <phase>prepare-package</phase>
                     </execution>
diff --git a/core/camel-componentdsl/pom.xml b/core/camel-componentdsl/pom.xml
new file mode 100644
index 0000000..99fe256
--- /dev/null
+++ b/core/camel-componentdsl/pom.xml
@@ -0,0 +1,1602 @@
+<?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</groupId>
+        <artifactId>core</artifactId>
+        <version>3.1.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <artifactId>camel-componentdsl</artifactId>
+    <packaging>jar</packaging>
+
+    <name>Camel :: Component DSL</name>
+    <description>The Camel Component DSL</description>
+
+    <dependencies>
+
+        <!-- camel annotations -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>spi-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>meta-annotations</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core-engine</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-util</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+		<!-- START: camel components import -->
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-fop</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-azure</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-seda</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mina</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-printer</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-wordpress</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-slack</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-influxdb</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-websocket</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-lumberjack</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-stax</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-sjms2</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-facebook</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-docker</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-apns</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-quartz</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-swf</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ehcache</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-spring-ws</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-nagios</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mongodb</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-eks</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-platform-http</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jetty</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws2-translate</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-vm</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-crypto</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cometd</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-bean-validator</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-http</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-tika</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-caffeine</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-vertx</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jslt</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-openstack</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-google-calendar</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-browse</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ldif</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-google-sheets</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-sap-netweaver</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ganglia</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-schematron</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-yammer</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-chunk</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-direct</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-weka</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-spring-batch</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-stub</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-drill</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-zookeeper</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-cw</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-weather</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-pdf</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-spring-integration</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-paho</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-netty</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mustache</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-sip</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-hbase</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-kafka</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-twitter</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-salesforce</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-xj</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws2-eks</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-servicenow</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-corda</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-grape</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-hdfs</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jclouds</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-quickfix</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-nsq</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-hipchat</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-hazelcast</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-translate</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-atmos</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-language</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-infinispan</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-google-pubsub</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-lucene</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-bean</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-stream</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-solr</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-iec60870</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-log</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-debezium-mongodb</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-spring-ldap</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-dns</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-reactive-streams</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-graphql</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-coap</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-dataset</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-elytron</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-zendesk</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jdbc</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-spark</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ahc</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-controlbus</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-disruptor</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-dozer</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-guava-eventbus</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-msv</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jms</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-file-watch</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-sdb</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-file</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-gora</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jmx</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-timer</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jcache</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-freemarker</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ironmq</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-fhir</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-saxon</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-rest-openapi</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jt400</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-rabbitmq</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jbpm</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jing</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-iam</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-snmp</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-web3j</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-atom</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-etcd</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ftp</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-ses</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jgroups</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-eventadmin</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-optaplanner</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-amqp</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-github</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-atomix</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-box</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-sql</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-flatpack</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-git</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-chatscript</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-telegram</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-nitrite</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-sns</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-avro</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mllp</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-pg-replication-slot</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-elsql</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-msk</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-stringtemplate</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-debezium-mysql</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-servlet</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-spring-redis</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-soroush</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-kubernetes</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jsch</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-digitalocean</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-google-bigquery</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-consul</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-nats</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-debezium-postgres</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-ecs</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-kudu</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jgroups-raft</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cmis</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-beanstalk</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-mq</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mongodb-gridfs</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-undertow</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-robotframework</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ssh</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mock</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-websocket-jsr356</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-twilio</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jolt</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-thrift</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-crypto-cms</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-couchdb</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-saga</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-elasticsearch-rest</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ldap</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-geocoder</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mybatis</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-directvm</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws2-ecs</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jira</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-xmpp</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-asterisk</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-splunk</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mail</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-metrics</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-sqs</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cm-sms</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-xslt</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-flink</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-braintree</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jpa</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-couchbase</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cassandraql</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-ddb</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-pubnub</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-json-validator</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-rss</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-dataformat</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-xmlsecurity</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-bonita</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-rest</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-service</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-smpp</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-velocity</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-google-mail</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-as2</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-xchange</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-paxlogging</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jooq</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ahc-ws</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ignite</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-xslt-saxon</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-pulsar</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-rest-swagger</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-exec</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-spring</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-microprofile-metrics</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-s3</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cron</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-zookeeper-master</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-mvel</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-debezium-sqlserver</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-google-drive</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-iota</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-cxf</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ref</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-stomp</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-olingo4</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-olingo2</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-milo</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-grpc</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-webhook</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-pgevent</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-micrometer</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-lambda</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-kinesis</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-netty-http</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-kms</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-ipfs</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws-ec2</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-sjms</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-irc</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-jcr</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-dropbox</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-activemq</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-scheduler</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-validator</artifactId>
+			<scope>provided</scope>
+			<version>${project.version}</version>
+		</dependency>
+		<!-- END: camel components import -->
+		<!-- testing -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.hamcrest</groupId>
+                    <artifactId>hamcrest-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.hamcrest</groupId>
+                    <artifactId>hamcrest-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-core</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/AbstractComponentBuilder.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/AbstractComponentBuilder.java
new file mode 100644
index 0000000..fd609e4
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/AbstractComponentBuilder.java
@@ -0,0 +1,75 @@
+/*
+ * 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.builder.component;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
+
+public abstract class AbstractComponentBuilder<C extends Component> {
+    private final Map<String, Object> properties = new LinkedHashMap<>();
+
+    public C build() {
+        final C component = buildConcreteComponent();
+
+        configureComponentProperties(component);
+
+        return component;
+    }
+
+    public C build(final CamelContext context) {
+        final C component = buildConcreteComponent();
+
+        configureComponentProperties(component, context);
+
+        return component;
+    }
+
+    public void register(final CamelContext context, final String componentName) {
+        final C component = buildConcreteComponent();
+
+        configureComponentProperties(component, context);
+
+        context.addComponent(componentName, component);
+    }
+
+    public void doSetProperty(final String key, final Object value) {
+        properties.put(key, value);
+    }
+
+    protected abstract C buildConcreteComponent();
+
+    protected abstract boolean setPropertyOnComponent(Component component, String name, Object value);
+
+    private void configureComponentProperties(final Component component) {
+        properties.forEach((key, value) -> setPropertyOnComponent(component, key, value));
+    }
+
+    private void configureComponentProperties(final Component component, final CamelContext context) {
+        properties.forEach((key, value) -> setPropertyOnComponent(component, key, resolvePropertyValue(value, context)));
+    }
+
+    private Object resolvePropertyValue(final Object value, final CamelContext context) {
+        if (value instanceof String) {
+            return context.resolvePropertyPlaceholders((String) value);
+        }
+        return value;
+    }
+}
+
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/ComponentBuilder.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/ComponentBuilder.java
new file mode 100644
index 0000000..5a067f3
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/ComponentBuilder.java
@@ -0,0 +1,54 @@
+/*
+ * 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.builder.component;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
+
+/**
+ * Type-safe component DSL for building Camel components
+ */
+public interface ComponentBuilder <C extends Component> {
+    /**
+     * Builds a component using the default {@link CamelContext}.
+     *
+     * @return a built {@link Component}
+     */
+    C build();
+
+    /**
+     * Builds a component using a provided {@link CamelContext}.
+     *
+     * @param context the camel context
+     * @return a built {@link Component}
+     */
+    C build(CamelContext context);
+
+    /**
+     * Builds and register a component to the provided {@link CamelContext}.
+     *
+     * @param context the camel context
+     * @param componentName the name the component is registered as
+     */
+    void register(CamelContext context, String componentName);
+
+    /**
+     * Adds an option to this component. This API is only intended for Camel
+     * internally.
+     */
+    void doSetProperty(String name, Object value);
+}
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
new file mode 100644
index 0000000..b9bf1fd
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -0,0 +1,3837 @@
+/*
+ * 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.builder.component;
+
+import javax.annotation.Generated;
+
+/**
+ * Component entry DSL builder. You can build a component like this:
+ * ComponentBuilderFactory.kafka().setBrokers("{{host:port}}").build()
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface ComponentsBuilderFactory {
+
+    /**
+     * REST OpenApi (camel-rest-openapi)
+     * An awesome REST endpoint backed by OpenApi specifications.
+     * 
+     * Category: rest,openapi,http
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-rest-openapi
+     */
+    static org.apache.camel.builder.component.dsl.RestOpenApiComponentBuilderFactory.RestOpenApiComponentBuilder restOpenapi() {
+        return org.apache.camel.builder.component.dsl.RestOpenApiComponentBuilderFactory.restOpenapi();
+    }
+    /**
+     * XJ (camel-xj)
+     * Transforms json/xml message back and forth using a XSLT.
+     * 
+     * Category: transformation
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-xj
+     */
+    static org.apache.camel.builder.component.dsl.XJComponentBuilderFactory.XJComponentBuilder xj() {
+        return org.apache.camel.builder.component.dsl.XJComponentBuilderFactory.xj();
+    }
+    /**
+     * Jira (camel-jira)
+     * The jira component interacts with the JIRA issue tracker.
+     * 
+     * Category: api,reporting
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-jira
+     */
+    static org.apache.camel.builder.component.dsl.JiraComponentBuilderFactory.JiraComponentBuilder jira() {
+        return org.apache.camel.builder.component.dsl.JiraComponentBuilderFactory.jira();
+    }
+    /**
+     * Hazelcast Topic (camel-hazelcast)
+     * The hazelcast-topic component is used to access Hazelcast distributed
+     * topic.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastTopicComponentBuilderFactory.HazelcastTopicComponentBuilder hazelcastTopic() {
+        return org.apache.camel.builder.component.dsl.HazelcastTopicComponentBuilderFactory.hazelcastTopic();
+    }
+    /**
+     * AWS DynamoDB (camel-aws-ddb)
+     * The aws-ddb component is used for storing and retrieving data from
+     * Amazon's DynamoDB service.
+     * 
+     * Category: cloud,database,nosql
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-aws-ddb
+     */
+    static org.apache.camel.builder.component.dsl.DdbComponentBuilderFactory.DdbComponentBuilder awsDdb() {
+        return org.apache.camel.builder.component.dsl.DdbComponentBuilderFactory.awsDdb();
+    }
+    /**
+     * Bean Validator (camel-bean-validator)
+     * The Validator component performs bean validation of the message body
+     * using the Java Bean Validation API.
+     * 
+     * Category: validation
+     * Since: 2.3
+     * Maven coordinates: org.apache.camel:camel-bean-validator
+     */
+    static org.apache.camel.builder.component.dsl.BeanValidatorComponentBuilderFactory.BeanValidatorComponentBuilder beanValidator() {
+        return org.apache.camel.builder.component.dsl.BeanValidatorComponentBuilderFactory.beanValidator();
+    }
+    /**
+     * Spring Redis (camel-spring-redis)
+     * The spring-redis component allows sending and receiving messages from
+     * Redis.
+     * 
+     * Category: spring,nosql
+     * Since: 2.11
+     * Maven coordinates: org.apache.camel:camel-spring-redis
+     */
+    static org.apache.camel.builder.component.dsl.RedisComponentBuilderFactory.RedisComponentBuilder springRedis() {
+        return org.apache.camel.builder.component.dsl.RedisComponentBuilderFactory.springRedis();
+    }
+    /**
+     * Cassandra CQL (camel-cassandraql)
+     * The cql component aims at integrating Cassandra 2.0 using the CQL3 API
+     * (not the Thrift API). It's based on Cassandra Java Driver provided by
+     * DataStax.
+     * 
+     * Category: database,nosql
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-cassandraql
+     */
+    static org.apache.camel.builder.component.dsl.CassandraComponentBuilderFactory.CassandraComponentBuilder cql() {
+        return org.apache.camel.builder.component.dsl.CassandraComponentBuilderFactory.cql();
+    }
+    /**
+     * XML Security (camel-xmlsecurity)
+     * Used to sign and verify exchanges using the XML signature specification.
+     * 
+     * Category: security,transformation
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-xmlsecurity
+     */
+    static org.apache.camel.builder.component.dsl.XmlSignatureComponentBuilderFactory.XmlSignatureComponentBuilder xmlsecurity() {
+        return org.apache.camel.builder.component.dsl.XmlSignatureComponentBuilderFactory.xmlsecurity();
+    }
+    /**
+     * ServiceNow (camel-servicenow)
+     * The servicenow component is used to integrate Camel with ServiceNow cloud
+     * services.
+     * 
+     * Category: api,cloud,management
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-servicenow
+     */
+    static org.apache.camel.builder.component.dsl.ServiceNowComponentBuilderFactory.ServiceNowComponentBuilder servicenow() {
+        return org.apache.camel.builder.component.dsl.ServiceNowComponentBuilderFactory.servicenow();
+    }
+    /**
+     * Openshift Builds (camel-kubernetes)
+     * The Openshift Builds component provides a producer to execute openshift
+     * build operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.OpenshiftBuildsComponentBuilderFactory.OpenshiftBuildsComponentBuilder openshiftBuilds() {
+        return org.apache.camel.builder.component.dsl.OpenshiftBuildsComponentBuilderFactory.openshiftBuilds();
+    }
+    /**
+     * Etcd (camel-etcd)
+     * The camel etcd component allows you to work with Etcd, a distributed
+     * reliable key-value store.
+     * 
+     * Category: clustering,database
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-etcd
+     */
+    static org.apache.camel.builder.component.dsl.EtcdComponentBuilderFactory.EtcdComponentBuilder etcd() {
+        return org.apache.camel.builder.component.dsl.EtcdComponentBuilderFactory.etcd();
+    }
+    /**
+     * Kubernetes Deployments (camel-kubernetes)
+     * The Kubernetes Nodes component provides a producer to execute kubernetes
+     * node operations and a consumer to consume node events.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesDeploymentsComponentBuilderFactory.KubernetesDeploymentsComponentBuilder kubernetesDeployments() {
+        return org.apache.camel.builder.component.dsl.KubernetesDeploymentsComponentBuilderFactory.kubernetesDeployments();
+    }
+    /**
+     * Asterisk (camel-asterisk)
+     * The asterisk component is used to interact with Asterisk PBX Server.
+     * 
+     * Category: voip
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-asterisk
+     */
+    static org.apache.camel.builder.component.dsl.AsteriskComponentBuilderFactory.AsteriskComponentBuilder asterisk() {
+        return org.apache.camel.builder.component.dsl.AsteriskComponentBuilderFactory.asterisk();
+    }
+    /**
+     * ElSQL (camel-elsql)
+     * The elsql component is an extension to the existing SQL Component that
+     * uses ElSql to define the SQL queries.
+     * 
+     * Category: database,sql
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-elsql
+     */
+    static org.apache.camel.builder.component.dsl.ElsqlComponentBuilderFactory.ElsqlComponentBuilder elsql() {
+        return org.apache.camel.builder.component.dsl.ElsqlComponentBuilderFactory.elsql();
+    }
+    /**
+     * SMTPS (camel-mail)
+     * To send or receive emails using imap/pop3 or smtp protocols.
+     * 
+     * Category: mail
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-mail
+     */
+    static org.apache.camel.builder.component.dsl.SmtpsMailComponentBuilderFactory.SmtpsMailComponentBuilder smtps() {
+        return org.apache.camel.builder.component.dsl.SmtpsMailComponentBuilderFactory.smtps();
+    }
+    /**
+     * FTPS (camel-ftp)
+     * The ftps (FTP secure SSL/TLS) component is used for uploading or
+     * downloading files from FTP servers.
+     * 
+     * Category: file
+     * Since: 2.2
+     * Maven coordinates: org.apache.camel:camel-ftp
+     */
+    static org.apache.camel.builder.component.dsl.FtpsComponentBuilderFactory.FtpsComponentBuilder ftps() {
+        return org.apache.camel.builder.component.dsl.FtpsComponentBuilderFactory.ftps();
+    }
+    /**
+     * OPC UA Client (camel-milo)
+     * Connect to OPC UA servers using the binary protocol for acquiring
+     * telemetry data
+     * 
+     * Category: iot
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-milo
+     */
+    static org.apache.camel.builder.component.dsl.MiloClientComponentBuilderFactory.MiloClientComponentBuilder miloClient() {
+        return org.apache.camel.builder.component.dsl.MiloClientComponentBuilderFactory.miloClient();
+    }
+    /**
+     * Kubernetes Pods (camel-kubernetes)
+     * The Kubernetes Pods component provides a producer to execute kubernetes
+     * pod operations and a consumer to consume pod events.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesPodsComponentBuilderFactory.KubernetesPodsComponentBuilder kubernetesPods() {
+        return org.apache.camel.builder.component.dsl.KubernetesPodsComponentBuilderFactory.kubernetesPods();
+    }
+    /**
+     * Guava EventBus (camel-guava-eventbus)
+     * The guava-eventbus component provides integration bridge between Camel
+     * and Google Guava EventBus.
+     * 
+     * Category: eventbus
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-guava-eventbus
+     */
+    static org.apache.camel.builder.component.dsl.GuavaEventBusComponentBuilderFactory.GuavaEventBusComponentBuilder guavaEventbus() {
+        return org.apache.camel.builder.component.dsl.GuavaEventBusComponentBuilderFactory.guavaEventbus();
+    }
+    /**
+     * MyBatis (camel-mybatis)
+     * Performs a query, poll, insert, update or delete in a relational database
+     * using MyBatis.
+     * 
+     * Category: database,sql
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-mybatis
+     */
+    static org.apache.camel.builder.component.dsl.MyBatisComponentBuilderFactory.MyBatisComponentBuilder mybatis() {
+        return org.apache.camel.builder.component.dsl.MyBatisComponentBuilderFactory.mybatis();
+    }
+    /**
+     * NSQ (camel-nsq)
+     * Represents a nsq endpoint.
+     * 
+     * Category: messaging
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-nsq
+     */
+    static org.apache.camel.builder.component.dsl.NsqComponentBuilderFactory.NsqComponentBuilder nsq() {
+        return org.apache.camel.builder.component.dsl.NsqComponentBuilderFactory.nsq();
+    }
+    /**
+     * Grape (camel-grape)
+     * The grape component allows you to fetch, load and manage additional jars
+     * when CamelContext is running.
+     * 
+     * Category: management,deployment
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-grape
+     */
+    static org.apache.camel.builder.component.dsl.GrapeComponentBuilderFactory.GrapeComponentBuilder grape() {
+        return org.apache.camel.builder.component.dsl.GrapeComponentBuilderFactory.grape();
+    }
+    /**
+     * CMIS (camel-cmis)
+     * The cmis component uses the Apache Chemistry client API and allows you to
+     * add/read nodes to/from a CMIS compliant content repositories.
+     * 
+     * Category: cms,database
+     * Since: 2.11
+     * Maven coordinates: org.apache.camel:camel-cmis
+     */
+    static org.apache.camel.builder.component.dsl.CMISComponentBuilderFactory.CMISComponentBuilder cmis() {
+        return org.apache.camel.builder.component.dsl.CMISComponentBuilderFactory.cmis();
+    }
+    /**
+     * AWS Kinesis (camel-aws-kinesis)
+     * The aws-kinesis component is for consuming and producing records from
+     * Amazon Kinesis Streams.
+     * 
+     * Category: cloud,messaging
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-aws-kinesis
+     */
+    static org.apache.camel.builder.component.dsl.KinesisComponentBuilderFactory.KinesisComponentBuilder awsKinesis() {
+        return org.apache.camel.builder.component.dsl.KinesisComponentBuilderFactory.awsKinesis();
+    }
+    /**
+     * Spring WebService (camel-spring-ws)
+     * The spring-ws component is used for SOAP WebServices using Spring
+     * WebServices.
+     * 
+     * Category: spring,soap,webservice
+     * Since: 2.6
+     * Maven coordinates: org.apache.camel:camel-spring-ws
+     */
+    static org.apache.camel.builder.component.dsl.SpringWebserviceComponentBuilderFactory.SpringWebserviceComponentBuilder springWs() {
+        return org.apache.camel.builder.component.dsl.SpringWebserviceComponentBuilderFactory.springWs();
+    }
+    /**
+     * Debezium MongoDB Connector (camel-debezium-mongodb)
+     * Represents a Debezium MongoDB endpoint which is used to capture changes
+     * in MongoDB database so that that applications can see those changes and
+     * respond to them.
+     * 
+     * Category: database,nosql,mongodb
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-debezium-mongodb
+     */
+    static org.apache.camel.builder.component.dsl.DebeziumMongodbComponentBuilderFactory.DebeziumMongodbComponentBuilder debeziumMongodb() {
+        return org.apache.camel.builder.component.dsl.DebeziumMongodbComponentBuilderFactory.debeziumMongodb();
+    }
+    /**
+     * Direct (camel-direct)
+     * The direct component provides direct, synchronous call to another
+     * endpoint from the same CamelContext.
+     * 
+     * Category: core,endpoint
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-direct
+     */
+    static org.apache.camel.builder.component.dsl.DirectComponentBuilderFactory.DirectComponentBuilder direct() {
+        return org.apache.camel.builder.component.dsl.DirectComponentBuilderFactory.direct();
+    }
+    /**
+     * AWS 2 Translate (camel-aws2-translate)
+     * The aws2-translate component is used for managing Amazon Translate
+     * 
+     * Category: cloud,management
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-aws2-translate
+     */
+    static org.apache.camel.builder.component.dsl.Translate2ComponentBuilderFactory.Translate2ComponentBuilder aws2Translate() {
+        return org.apache.camel.builder.component.dsl.Translate2ComponentBuilderFactory.aws2Translate();
+    }
+    /**
+     * SAP NetWeaver (camel-sap-netweaver)
+     * The sap-netweaver component integrates with the SAP NetWeaver Gateway
+     * using HTTP transports.
+     * 
+     * Category: sap
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-sap-netweaver
+     */
+    static org.apache.camel.builder.component.dsl.NetWeaverComponentBuilderFactory.NetWeaverComponentBuilder sapNetweaver() {
+        return org.apache.camel.builder.component.dsl.NetWeaverComponentBuilderFactory.sapNetweaver();
+    }
+    /**
+     * Kubernetes Service Account (camel-kubernetes)
+     * The Kubernetes Service Accounts component provides a producer to execute
+     * service account operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesServiceAccountsComponentBuilderFactory.KubernetesServiceAccountsComponentBuilder kubernetesServiceAccounts() {
+        return org.apache.camel.builder.component.dsl.KubernetesServiceAccountsComponentBuilderFactory.kubernetesServiceAccounts();
+    }
+    /**
+     * JSLT (camel-jslt)
+     * The jslt component allows you to process a JSON messages using an JSLT
+     * transformations.
+     * 
+     * Category: transformation
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-jslt
+     */
+    static org.apache.camel.builder.component.dsl.JsltComponentBuilderFactory.JsltComponentBuilder jslt() {
+        return org.apache.camel.builder.component.dsl.JsltComponentBuilderFactory.jslt();
+    }
+    /**
+     * IMAPS (Secure) (camel-mail)
+     * To send or receive emails using imap/pop3 or smtp protocols.
+     * 
+     * Category: mail
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-mail
+     */
+    static org.apache.camel.builder.component.dsl.ImapsMailComponentBuilderFactory.ImapsMailComponentBuilder imaps() {
+        return org.apache.camel.builder.component.dsl.ImapsMailComponentBuilderFactory.imaps();
+    }
+    /**
+     * Nats (camel-nats)
+     * The nats component allows you produce and consume messages from NATS.
+     * 
+     * Category: messaging
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-nats
+     */
+    static org.apache.camel.builder.component.dsl.NatsComponentBuilderFactory.NatsComponentBuilder nats() {
+        return org.apache.camel.builder.component.dsl.NatsComponentBuilderFactory.nats();
+    }
+    /**
+     * Google Pubsub (camel-google-pubsub)
+     * Messaging client for Google Cloud Platform PubSub Service
+     * 
+     * Category: messaging
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-google-pubsub
+     */
+    static org.apache.camel.builder.component.dsl.GooglePubsubComponentBuilderFactory.GooglePubsubComponentBuilder googlePubsub() {
+        return org.apache.camel.builder.component.dsl.GooglePubsubComponentBuilderFactory.googlePubsub();
+    }
+    /**
+     * XQuery (camel-saxon)
+     * Transforms the message using a XQuery template using Saxon.
+     * 
+     * Category: transformation
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-saxon
+     */
+    static org.apache.camel.builder.component.dsl.XQueryComponentBuilderFactory.XQueryComponentBuilder xquery() {
+        return org.apache.camel.builder.component.dsl.XQueryComponentBuilderFactory.xquery();
+    }
+    /**
+     * Spring Batch (camel-spring-batch)
+     * The spring-batch component allows to send messages to Spring Batch for
+     * further processing.
+     * 
+     * Category: spring,batch,scheduling
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-spring-batch
+     */
+    static org.apache.camel.builder.component.dsl.SpringBatchComponentBuilderFactory.SpringBatchComponentBuilder springBatch() {
+        return org.apache.camel.builder.component.dsl.SpringBatchComponentBuilderFactory.springBatch();
+    }
+    /**
+     * Twitter Direct Message (camel-twitter)
+     * The Twitter Direct Message Component consumes/produces user's direct
+     * messages.
+     * 
+     * Category: api,social
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-twitter
+     */
+    static org.apache.camel.builder.component.dsl.TwitterDirectMessageComponentBuilderFactory.TwitterDirectMessageComponentBuilder twitterDirectmessage() {
+        return org.apache.camel.builder.component.dsl.TwitterDirectMessageComponentBuilderFactory.twitterDirectmessage();
+    }
+    /**
+     * Language (camel-language)
+     * The language component allows you to send a message to an endpoint which
+     * executes a script by any of the supported Languages in Camel.
+     * 
+     * Category: core,script
+     * Since: 2.5
+     * Maven coordinates: org.apache.camel:camel-language
+     */
+    static org.apache.camel.builder.component.dsl.LanguageComponentBuilderFactory.LanguageComponentBuilder language() {
+        return org.apache.camel.builder.component.dsl.LanguageComponentBuilderFactory.language();
+    }
+    /**
+     * Hazelcast SEDA (camel-hazelcast)
+     * The hazelcast-seda component is used to access Hazelcast BlockingQueue.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastSedaComponentBuilderFactory.HazelcastSedaComponentBuilder hazelcastSeda() {
+        return org.apache.camel.builder.component.dsl.HazelcastSedaComponentBuilderFactory.hazelcastSeda();
+    }
+    /**
+     * StAX (camel-stax)
+     * The stax component allows messages to be process through a SAX
+     * ContentHandler.
+     * 
+     * Category: transformation
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-stax
+     */
+    static org.apache.camel.builder.component.dsl.StAXComponentBuilderFactory.StAXComponentBuilder stax() {
+        return org.apache.camel.builder.component.dsl.StAXComponentBuilderFactory.stax();
+    }
+    /**
+     * Javax Websocket (camel-websocket-jsr356)
+     * Camel WebSocket using JSR356 (javax)
+     * 
+     * Category: http
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-websocket-jsr356
+     */
+    static org.apache.camel.builder.component.dsl.JSR356WebSocketComponentBuilderFactory.JSR356WebSocketComponentBuilder websocketJsr356() {
+        return org.apache.camel.builder.component.dsl.JSR356WebSocketComponentBuilderFactory.websocketJsr356();
+    }
+    /**
+     * FOP (camel-fop)
+     * The fop component allows you to render a message into different output
+     * formats using Apache FOP.
+     * 
+     * Category: transformation
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-fop
+     */
+    static org.apache.camel.builder.component.dsl.FopComponentBuilderFactory.FopComponentBuilder fop() {
+        return org.apache.camel.builder.component.dsl.FopComponentBuilderFactory.fop();
+    }
+    /**
+     * Atomix Map (camel-atomix)
+     * The atomix-map component is used to access Atomix's distributed map.
+     * 
+     * Category: clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-atomix
+     */
+    static org.apache.camel.builder.component.dsl.AtomixMapComponentBuilderFactory.AtomixMapComponentBuilder atomixMap() {
+        return org.apache.camel.builder.component.dsl.AtomixMapComponentBuilderFactory.atomixMap();
+    }
+    /**
+     * OpenStack Swift (camel-openstack)
+     * The openstack-swift component allows messages to be sent to an OpenStack
+     * object storage services.
+     * 
+     * Category: cloud,paas
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-openstack
+     */
+    static org.apache.camel.builder.component.dsl.SwiftComponentBuilderFactory.SwiftComponentBuilder openstackSwift() {
+        return org.apache.camel.builder.component.dsl.SwiftComponentBuilderFactory.openstackSwift();
+    }
+    /**
+     * Ignite Queues (camel-ignite)
+     * The Ignite Queue endpoint is one of camel-ignite endpoints which allows
+     * you to interact with Ignite Queue data structures.
+     * 
+     * Category: nosql,cache
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ignite
+     */
+    static org.apache.camel.builder.component.dsl.IgniteQueueComponentBuilderFactory.IgniteQueueComponentBuilder igniteQueue() {
+        return org.apache.camel.builder.component.dsl.IgniteQueueComponentBuilderFactory.igniteQueue();
+    }
+    /**
+     * Ignite Cache (camel-ignite)
+     * The Ignite Cache endpoint is one of camel-ignite endpoints which allows
+     * you to interact with an Ignite Cache.
+     * 
+     * Category: nosql,cache,compute
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ignite
+     */
+    static org.apache.camel.builder.component.dsl.IgniteCacheComponentBuilderFactory.IgniteCacheComponentBuilder igniteCache() {
+        return org.apache.camel.builder.component.dsl.IgniteCacheComponentBuilderFactory.igniteCache();
+    }
+    /**
+     * Atom (camel-atom)
+     * The atom component is used for consuming Atom RSS feeds.
+     * 
+     * Category: rss
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-atom
+     */
+    static org.apache.camel.builder.component.dsl.AtomComponentBuilderFactory.AtomComponentBuilder atom() {
+        return org.apache.camel.builder.component.dsl.AtomComponentBuilderFactory.atom();
+    }
+    /**
+     * Weather (camel-weather)
+     * Polls the weather information from Open Weather Map.
+     * 
+     * Category: api
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-weather
+     */
+    static org.apache.camel.builder.component.dsl.WeatherComponentBuilderFactory.WeatherComponentBuilder weather() {
+        return org.apache.camel.builder.component.dsl.WeatherComponentBuilderFactory.weather();
+    }
+    /**
+     * Thrift (camel-thrift)
+     * The Thrift component allows to call and expose remote procedures (RPC)
+     * with Apache Thrift data format and serialization mechanism
+     * 
+     * Category: rpc
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-thrift
+     */
+    static org.apache.camel.builder.component.dsl.ThriftComponentBuilderFactory.ThriftComponentBuilder thrift() {
+        return org.apache.camel.builder.component.dsl.ThriftComponentBuilderFactory.thrift();
+    }
+    /**
+     * Micrometer (camel-micrometer)
+     * To collect various metrics directly from Camel routes using the
+     * Micrometer library.
+     * 
+     * Category: monitoring
+     * Since: 2.22
+     * Maven coordinates: org.apache.camel:camel-micrometer
+     */
+    static org.apache.camel.builder.component.dsl.MicrometerComponentBuilderFactory.MicrometerComponentBuilder micrometer() {
+        return org.apache.camel.builder.component.dsl.MicrometerComponentBuilderFactory.micrometer();
+    }
+    /**
+     * Soroush (camel-soroush)
+     * To integrate with the Soroush chat bot.
+     * 
+     * Category: chat
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-soroush
+     */
+    static org.apache.camel.builder.component.dsl.SoroushBotComponentBuilderFactory.SoroushBotComponentBuilder soroush() {
+        return org.apache.camel.builder.component.dsl.SoroushBotComponentBuilderFactory.soroush();
+    }
+    /**
+     * Hazelcast Queue (camel-hazelcast)
+     * The hazelcast-queue component is used to access Hazelcast distributed
+     * queue.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastQueueComponentBuilderFactory.HazelcastQueueComponentBuilder hazelcastQueue() {
+        return org.apache.camel.builder.component.dsl.HazelcastQueueComponentBuilderFactory.hazelcastQueue();
+    }
+    /**
+     * AWS MSK (camel-aws-msk)
+     * The aws-msk is used for managing Amazon MSK
+     * 
+     * Category: cloud,management
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-aws-msk
+     */
+    static org.apache.camel.builder.component.dsl.MSKComponentBuilderFactory.MSKComponentBuilder awsMsk() {
+        return org.apache.camel.builder.component.dsl.MSKComponentBuilderFactory.awsMsk();
+    }
+    /**
+     * JCache (camel-jcache)
+     * The jcache component enables you to perform caching operations using
+     * JSR107/JCache as cache implementation.
+     * 
+     * Category: cache,datagrid,clustering
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-jcache
+     */
+    static org.apache.camel.builder.component.dsl.JCacheComponentBuilderFactory.JCacheComponentBuilder jcache() {
+        return org.apache.camel.builder.component.dsl.JCacheComponentBuilderFactory.jcache();
+    }
+    /**
+     * Kubernetes Services (camel-kubernetes)
+     * The Kubernetes Services component provides a producer to execute service
+     * operations and a consumer to consume service events.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesServicesComponentBuilderFactory.KubernetesServicesComponentBuilder kubernetesServices() {
+        return org.apache.camel.builder.component.dsl.KubernetesServicesComponentBuilderFactory.kubernetesServices();
+    }
+    /**
+     * Stream (camel-stream)
+     * The stream: component provides access to the system-in, system-out and
+     * system-err streams as well as allowing streaming of file.
+     * 
+     * Category: file,system
+     * Since: 1.3
+     * Maven coordinates: org.apache.camel:camel-stream
+     */
+    static org.apache.camel.builder.component.dsl.StreamComponentBuilderFactory.StreamComponentBuilder stream() {
+        return org.apache.camel.builder.component.dsl.StreamComponentBuilderFactory.stream();
+    }
+    /**
+     * Bean (camel-bean)
+     * The bean component is for invoking Java beans from Camel.
+     * 
+     * Category: core,java
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-bean
+     */
+    static org.apache.camel.builder.component.dsl.BeanComponentBuilderFactory.BeanComponentBuilder bean() {
+        return org.apache.camel.builder.component.dsl.BeanComponentBuilderFactory.bean();
+    }
+    /**
+     * Scheduler (camel-scheduler)
+     * The scheduler component is used for generating message exchanges when a
+     * scheduler fires.
+     * 
+     * Category: core,scheduling
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-scheduler
+     */
+    static org.apache.camel.builder.component.dsl.SchedulerComponentBuilderFactory.SchedulerComponentBuilder scheduler() {
+        return org.apache.camel.builder.component.dsl.SchedulerComponentBuilderFactory.scheduler();
+    }
+    /**
+     * Kubernetes ConfigMap (camel-kubernetes)
+     * The Kubernetes Configmaps component provides a producer to execute
+     * kubernetes configmap operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesConfigMapsComponentBuilderFactory.KubernetesConfigMapsComponentBuilder kubernetesConfigMaps() {
+        return org.apache.camel.builder.component.dsl.KubernetesConfigMapsComponentBuilderFactory.kubernetesConfigMaps();
+    }
+    /**
+     * Tika (camel-tika)
+     * This component integrates with Apache Tika to extract content and
+     * metadata from thousands of file types.
+     * 
+     * Category: document,transformation
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-tika
+     */
+    static org.apache.camel.builder.component.dsl.TikaComponentBuilderFactory.TikaComponentBuilder tika() {
+        return org.apache.camel.builder.component.dsl.TikaComponentBuilderFactory.tika();
+    }
+    /**
+     * CometD (camel-cometd)
+     * The cometd component is a transport for working with the Jetty
+     * implementation of the cometd/bayeux protocol.
+     * 
+     * Category: websocket
+     * Since: 2.0
+     * Maven coordinates: org.apache.camel:camel-cometd
+     */
+    static org.apache.camel.builder.component.dsl.CometdCometdComponentBuilderFactory.CometdCometdComponentBuilder cometd() {
+        return org.apache.camel.builder.component.dsl.CometdCometdComponentBuilderFactory.cometd();
+    }
+    /**
+     * MSV (camel-msv)
+     * Validates the payload of a message using the MSV Library.
+     * 
+     * Category: validation
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-msv
+     */
+    static org.apache.camel.builder.component.dsl.MsvComponentBuilderFactory.MsvComponentBuilder msv() {
+        return org.apache.camel.builder.component.dsl.MsvComponentBuilderFactory.msv();
+    }
+    /**
+     * Kudu (camel-kudu)
+     * Represents a Kudu endpoint. A kudu endpoint allows you to interact with
+     * Apache Kudu, a free and open source column-oriented data store of the
+     * Apache Hadoop ecosystem.
+     * 
+     * Category: cloud,database,iot
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-kudu
+     */
+    static org.apache.camel.builder.component.dsl.KuduComponentBuilderFactory.KuduComponentBuilder kudu() {
+        return org.apache.camel.builder.component.dsl.KuduComponentBuilderFactory.kudu();
+    }
+    /**
+     * Caffeine Cache (camel-caffeine)
+     * The caffeine-cache component is used for integration with Caffeine Cache.
+     * 
+     * Category: cache,datagrid,clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-caffeine
+     */
+    static org.apache.camel.builder.component.dsl.CaffeineCacheComponentBuilderFactory.CaffeineCacheComponentBuilder caffeineCache() {
+        return org.apache.camel.builder.component.dsl.CaffeineCacheComponentBuilderFactory.caffeineCache();
+    }
+    /**
+     * OpenStack Cinder (camel-openstack)
+     * The openstack-cinder component allows messages to be sent to an OpenStack
+     * block storage services.
+     * 
+     * Category: cloud,paas
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-openstack
+     */
+    static org.apache.camel.builder.component.dsl.CinderComponentBuilderFactory.CinderComponentBuilder openstackCinder() {
+        return org.apache.camel.builder.component.dsl.CinderComponentBuilderFactory.openstackCinder();
+    }
+    /**
+     * Flatpack (camel-flatpack)
+     * The flatpack component supports fixed width and delimited file parsing
+     * via the FlatPack library.
+     * 
+     * Category: transformation
+     * Since: 1.4
+     * Maven coordinates: org.apache.camel:camel-flatpack
+     */
+    static org.apache.camel.builder.component.dsl.FlatpackComponentBuilderFactory.FlatpackComponentBuilder flatpack() {
+        return org.apache.camel.builder.component.dsl.FlatpackComponentBuilderFactory.flatpack();
+    }
+    /**
+     * Validator (camel-validator)
+     * Validates the payload of a message using XML Schema and JAXP Validation.
+     * 
+     * Category: core,validation
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-validator
+     */
+    static org.apache.camel.builder.component.dsl.ValidatorComponentBuilderFactory.ValidatorComponentBuilder validator() {
+        return org.apache.camel.builder.component.dsl.ValidatorComponentBuilderFactory.validator();
+    }
+    /**
+     * Kafka (camel-kafka)
+     * The kafka component allows messages to be sent to (or consumed from)
+     * Apache Kafka brokers.
+     * 
+     * Category: messaging
+     * Since: 2.13
+     * Maven coordinates: org.apache.camel:camel-kafka
+     */
+    static org.apache.camel.builder.component.dsl.KafkaComponentBuilderFactory.KafkaComponentBuilder kafka() {
+        return org.apache.camel.builder.component.dsl.KafkaComponentBuilderFactory.kafka();
+    }
+    /**
+     * SMTP (camel-mail)
+     * To send or receive emails using imap/pop3 or smtp protocols.
+     * 
+     * Category: mail
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-mail
+     */
+    static org.apache.camel.builder.component.dsl.SmtpMailComponentBuilderFactory.SmtpMailComponentBuilder smtp() {
+        return org.apache.camel.builder.component.dsl.SmtpMailComponentBuilderFactory.smtp();
+    }
+    /**
+     * Flink (camel-flink)
+     * The flink component can be used to send DataSet jobs to Apache Flink
+     * cluster.
+     * 
+     * Category: hadoop
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-flink
+     */
+    static org.apache.camel.builder.component.dsl.FlinkComponentBuilderFactory.FlinkComponentBuilder flink() {
+        return org.apache.camel.builder.component.dsl.FlinkComponentBuilderFactory.flink();
+    }
+    /**
+     * Mustache (camel-mustache)
+     * Transforms the message using a Mustache template.
+     * 
+     * Category: transformation
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-mustache
+     */
+    static org.apache.camel.builder.component.dsl.MustacheComponentBuilderFactory.MustacheComponentBuilder mustache() {
+        return org.apache.camel.builder.component.dsl.MustacheComponentBuilderFactory.mustache();
+    }
+    /**
+     * SMPP (camel-smpp)
+     * To send and receive SMS using a SMSC (Short Message Service Center).
+     * 
+     * Category: mobile
+     * Since: 2.2
+     * Maven coordinates: org.apache.camel:camel-smpp
+     */
+    static org.apache.camel.builder.component.dsl.SmppSmppComponentBuilderFactory.SmppSmppComponentBuilder smpp() {
+        return org.apache.camel.builder.component.dsl.SmppSmppComponentBuilderFactory.smpp();
+    }
+    /**
+     * Google Sheets (camel-google-sheets)
+     * The google-sheets component provides access to Google Sheets.
+     * 
+     * Category: api,cloud,sheets
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-google-sheets
+     */
+    static org.apache.camel.builder.component.dsl.GoogleSheetsComponentBuilderFactory.GoogleSheetsComponentBuilder googleSheets() {
+        return org.apache.camel.builder.component.dsl.GoogleSheetsComponentBuilderFactory.googleSheets();
+    }
+    /**
+     * AWS Lambda (camel-aws-lambda)
+     * The aws-lambda is used for managing and invoking functions from Amazon
+     * Lambda.
+     * 
+     * Category: cloud,computing,serverless
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-aws-lambda
+     */
+    static org.apache.camel.builder.component.dsl.LambdaComponentBuilderFactory.LambdaComponentBuilder awsLambda() {
+        return org.apache.camel.builder.component.dsl.LambdaComponentBuilderFactory.awsLambda();
+    }
+    /**
+     * Ignite Messaging (camel-ignite)
+     * The Ignite Messaging endpoint is one of camel-ignite endpoints which
+     * allows you to send and consume messages from an Ignite topic.
+     * 
+     * Category: nosql,cache,messaging
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ignite
+     */
+    static org.apache.camel.builder.component.dsl.IgniteMessagingComponentBuilderFactory.IgniteMessagingComponentBuilder igniteMessaging() {
+        return org.apache.camel.builder.component.dsl.IgniteMessagingComponentBuilderFactory.igniteMessaging();
+    }
+    /**
+     * Crypto (JCE) (camel-crypto)
+     * The crypto component is used for signing and verifying exchanges using
+     * the Signature Service of the Java Cryptographic Extension (JCE).
+     * 
+     * Category: security,transformation
+     * Since: 2.3
+     * Maven coordinates: org.apache.camel:camel-crypto
+     */
+    static org.apache.camel.builder.component.dsl.DigitalSignatureComponentBuilderFactory.DigitalSignatureComponentBuilder crypto() {
+        return org.apache.camel.builder.component.dsl.DigitalSignatureComponentBuilderFactory.crypto();
+    }
+    /**
+     * JOLT (camel-jolt)
+     * The jolt component allows you to process a JSON messages using an JOLT
+     * specification (such as JSON-JSON transformation).
+     * 
+     * Category: transformation
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-jolt
+     */
+    static org.apache.camel.builder.component.dsl.JoltComponentBuilderFactory.JoltComponentBuilder jolt() {
+        return org.apache.camel.builder.component.dsl.JoltComponentBuilderFactory.jolt();
+    }
+    /**
+     * Control Bus (camel-controlbus)
+     * The controlbus component provides easy management of Camel applications
+     * based on the Control Bus EIP pattern.
+     * 
+     * Category: core,monitoring
+     * Since: 2.11
+     * Maven coordinates: org.apache.camel:camel-controlbus
+     */
+    static org.apache.camel.builder.component.dsl.ControlBusComponentBuilderFactory.ControlBusComponentBuilder controlbus() {
+        return org.apache.camel.builder.component.dsl.ControlBusComponentBuilderFactory.controlbus();
+    }
+    /**
+     * Log (camel-log)
+     * The log component logs message exchanges to the underlying logging
+     * mechanism.
+     * 
+     * Category: core,monitoring
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-log
+     */
+    static org.apache.camel.builder.component.dsl.LogComponentBuilderFactory.LogComponentBuilder log() {
+        return org.apache.camel.builder.component.dsl.LogComponentBuilderFactory.log();
+    }
+    /**
+     * Google Drive (camel-google-drive)
+     * The google-drive component provides access to Google Drive file storage
+     * service.
+     * 
+     * Category: api,cloud,file
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-google-drive
+     */
+    static org.apache.camel.builder.component.dsl.GoogleDriveComponentBuilderFactory.GoogleDriveComponentBuilder googleDrive() {
+        return org.apache.camel.builder.component.dsl.GoogleDriveComponentBuilderFactory.googleDrive();
+    }
+    /**
+     * Git (camel-git)
+     * The git component is used for working with git repositories.
+     * 
+     * Category: file
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-git
+     */
+    static org.apache.camel.builder.component.dsl.GitComponentBuilderFactory.GitComponentBuilder git() {
+        return org.apache.camel.builder.component.dsl.GitComponentBuilderFactory.git();
+    }
+    /**
+     * AS2 (camel-as2)
+     * Component used for transferring data secure and reliable over the
+     * internet using the AS2 protocol.
+     * 
+     * Category: file
+     * Since: 2.22
+     * Maven coordinates: org.apache.camel:camel-as2
+     */
+    static org.apache.camel.builder.component.dsl.AS2ComponentBuilderFactory.AS2ComponentBuilder as2() {
+        return org.apache.camel.builder.component.dsl.AS2ComponentBuilderFactory.as2();
+    }
+    /**
+     * PostgresSQL Event (camel-pgevent)
+     * The pgevent component allows for producing/consuming PostgreSQL events
+     * related to the listen/notify commands.
+     * 
+     * Category: database,sql
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-pgevent
+     */
+    static org.apache.camel.builder.component.dsl.PgEventComponentBuilderFactory.PgEventComponentBuilder pgevent() {
+        return org.apache.camel.builder.component.dsl.PgEventComponentBuilderFactory.pgevent();
+    }
+    /**
+     * SIP (Secure) (camel-sip)
+     * To send and receive messages using the SIP protocol (used in telco and
+     * mobile).
+     * 
+     * Category: mobile
+     * Since: 2.5
+     * Maven coordinates: org.apache.camel:camel-sip
+     */
+    static org.apache.camel.builder.component.dsl.SipsSipComponentBuilderFactory.SipsSipComponentBuilder sips() {
+        return org.apache.camel.builder.component.dsl.SipsSipComponentBuilderFactory.sips();
+    }
+    /**
+     * Elytron (camel-elytron)
+     * The elytron component is allows you to work with the Elytron Security
+     * Framework
+     * 
+     * Category: http
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-elytron
+     */
+    static org.apache.camel.builder.component.dsl.ElytronComponentBuilderFactory.ElytronComponentBuilder elytron() {
+        return org.apache.camel.builder.component.dsl.ElytronComponentBuilderFactory.elytron();
+    }
+    /**
+     * Google BigQuery Standard SQL (camel-google-bigquery)
+     * Google BigQuery data warehouse for analytics (using SQL queries).
+     * 
+     * Category: cloud,messaging
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-google-bigquery
+     */
+    static org.apache.camel.builder.component.dsl.GoogleBigQuerySQLComponentBuilderFactory.GoogleBigQuerySQLComponentBuilder googleBigquerySql() {
+        return org.apache.camel.builder.component.dsl.GoogleBigQuerySQLComponentBuilderFactory.googleBigquerySql();
+    }
+    /**
+     * Simple JMS (camel-sjms)
+     * The sjms component (simple jms) allows messages to be sent to (or
+     * consumed from) a JMS Queue or Topic (uses JMS 1.x API).
+     * 
+     * Category: messaging
+     * Since: 2.11
+     * Maven coordinates: org.apache.camel:camel-sjms
+     */
+    static org.apache.camel.builder.component.dsl.SjmsComponentBuilderFactory.SjmsComponentBuilder sjms() {
+        return org.apache.camel.builder.component.dsl.SjmsComponentBuilderFactory.sjms();
+    }
+    /**
+     * XSLT (camel-xslt)
+     * Transforms the message using a XSLT template.
+     * 
+     * Category: core,transformation
+     * Since: 1.3
+     * Maven coordinates: org.apache.camel:camel-xslt
+     */
+    static org.apache.camel.builder.component.dsl.XsltComponentBuilderFactory.XsltComponentBuilder xslt() {
+        return org.apache.camel.builder.component.dsl.XsltComponentBuilderFactory.xslt();
+    }
+    /**
+     * Ignite Sets (camel-ignite)
+     * The Ignite Sets endpoint is one of camel-ignite endpoints which allows
+     * you to interact with Ignite Set data structures.
+     * 
+     * Category: nosql,cache
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ignite
+     */
+    static org.apache.camel.builder.component.dsl.IgniteSetComponentBuilderFactory.IgniteSetComponentBuilder igniteSet() {
+        return org.apache.camel.builder.component.dsl.IgniteSetComponentBuilderFactory.igniteSet();
+    }
+    /**
+     * IOTA (camel-iota)
+     * Component for integrate IOTA DLT
+     * 
+     * Category: ledger
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-iota
+     */
+    static org.apache.camel.builder.component.dsl.IOTAComponentBuilderFactory.IOTAComponentBuilder iota() {
+        return org.apache.camel.builder.component.dsl.IOTAComponentBuilderFactory.iota();
+    }
+    /**
+     * PostgresSQL Replication Slot (camel-pg-replication-slot)
+     * Consumer endpoint to receive from PostgreSQL Replication Slot.
+     * 
+     * Category: database,sql
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-pg-replication-slot
+     */
+    static org.apache.camel.builder.component.dsl.PgReplicationSlotComponentBuilderFactory.PgReplicationSlotComponentBuilder pgReplicationSlot() {
+        return org.apache.camel.builder.component.dsl.PgReplicationSlotComponentBuilderFactory.pgReplicationSlot();
+    }
+    /**
+     * Metrics (camel-metrics)
+     * To collect various metrics directly from Camel routes using the
+     * DropWizard metrics library.
+     * 
+     * Category: monitoring
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-metrics
+     */
+    static org.apache.camel.builder.component.dsl.MetricsComponentBuilderFactory.MetricsComponentBuilder metrics() {
+        return org.apache.camel.builder.component.dsl.MetricsComponentBuilderFactory.metrics();
+    }
+    /**
+     * Ignite ID Generator (camel-ignite)
+     * The Ignite ID Generator endpoint is one of camel-ignite endpoints which
+     * allows you to interact with Ignite Atomic Sequences and ID Generators.
+     * 
+     * Category: nosql,cache,compute
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ignite
+     */
+    static org.apache.camel.builder.component.dsl.IgniteIdGenComponentBuilderFactory.IgniteIdGenComponentBuilder igniteIdgen() {
+        return org.apache.camel.builder.component.dsl.IgniteIdGenComponentBuilderFactory.igniteIdgen();
+    }
+    /**
+     * HDFS (camel-hdfs)
+     * For reading/writing from/to an HDFS filesystem using Hadoop 2.x.
+     * 
+     * Category: hadoop,file
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-hdfs
+     */
+    static org.apache.camel.builder.component.dsl.HdfsComponentBuilderFactory.HdfsComponentBuilder hdfs() {
+        return org.apache.camel.builder.component.dsl.HdfsComponentBuilderFactory.hdfs();
+    }
+    /**
+     * AHC Secure Websocket (Secure) (camel-ahc-ws)
+     * To exchange data with external Websocket servers using Async Http Client.
+     * 
+     * Category: websocket
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-ahc-ws
+     */
+    static org.apache.camel.builder.component.dsl.AhcWssWsComponentBuilderFactory.AhcWssWsComponentBuilder ahcWss() {
+        return org.apache.camel.builder.component.dsl.AhcWssWsComponentBuilderFactory.ahcWss();
+    }
+    /**
+     * DigitalOcean (camel-digitalocean)
+     * The DigitalOcean component allows you to manage Droplets and resources
+     * within the DigitalOcean cloud.
+     * 
+     * Category: cloud,management
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-digitalocean
+     */
+    static org.apache.camel.builder.component.dsl.DigitalOceanComponentBuilderFactory.DigitalOceanComponentBuilder digitalocean() {
+        return org.apache.camel.builder.component.dsl.DigitalOceanComponentBuilderFactory.digitalocean();
+    }
+    /**
+     * DataSet Test (camel-dataset)
+     * The dataset-test component extends the mock component by on startup to
+     * pull messages from another endpoint to set the expected message bodies.
+     * 
+     * Category: core,testing
+     * Since: 1.3
+     * Maven coordinates: org.apache.camel:camel-dataset
+     */
+    static org.apache.camel.builder.component.dsl.DataSetTestComponentBuilderFactory.DataSetTestComponentBuilder datasetTest() {
+        return org.apache.camel.builder.component.dsl.DataSetTestComponentBuilderFactory.datasetTest();
+    }
+    /**
+     * Google Sheets Stream (camel-google-sheets)
+     * The google-sheets-stream component provides access to Google Sheets.
+     * 
+     * Category: api,cloud,sheets
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-google-sheets
+     */
+    static org.apache.camel.builder.component.dsl.GoogleSheetsStreamComponentBuilderFactory.GoogleSheetsStreamComponentBuilder googleSheetsStream() {
+        return org.apache.camel.builder.component.dsl.GoogleSheetsStreamComponentBuilderFactory.googleSheetsStream();
+    }
+    /**
+     * JDBC (camel-jdbc)
+     * The jdbc component enables you to access databases through JDBC, where
+     * SQL queries are sent in the message body.
+     * 
+     * Category: database,sql
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-jdbc
+     */
+    static org.apache.camel.builder.component.dsl.JdbcComponentBuilderFactory.JdbcComponentBuilder jdbc() {
+        return org.apache.camel.builder.component.dsl.JdbcComponentBuilderFactory.jdbc();
+    }
+    /**
+     * JBPM (camel-jbpm)
+     * The jbpm component provides integration with jBPM (Business Process
+     * Management).
+     * 
+     * Category: process
+     * Since: 2.6
+     * Maven coordinates: org.apache.camel:camel-jbpm
+     */
+    static org.apache.camel.builder.component.dsl.JBPMComponentBuilderFactory.JBPMComponentBuilder jbpm() {
+        return org.apache.camel.builder.component.dsl.JBPMComponentBuilderFactory.jbpm();
+    }
+    /**
+     * Kubernetes Replication Controller (camel-kubernetes)
+     * The Kubernetes Replication Controllers component provides a producer to
+     * execute kubernetes replication controller operations and a consumer to
+     * consume replication controller events.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesReplicationControllersComponentBuilderFactory.KubernetesReplicationControllersComponentBuilder kubernetesReplicationControllers() {
+        return org.apache.camel.builder.component.dsl.KubernetesReplicationControllersComponentBuilderFactory.kubernetesReplicationControllers();
+    }
+    /**
+     * Schematron (camel-schematron)
+     * Validates the payload of a message using the Schematron Library.
+     * 
+     * Category: validation
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-schematron
+     */
+    static org.apache.camel.builder.component.dsl.SchematronComponentBuilderFactory.SchematronComponentBuilder schematron() {
+        return org.apache.camel.builder.component.dsl.SchematronComponentBuilderFactory.schematron();
+    }
+    /**
+     * Nitrite (camel-nitrite)
+     * Used for integrating Camel with Nitrite databases.
+     * 
+     * Category: database,nosql
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-nitrite
+     */
+    static org.apache.camel.builder.component.dsl.NitriteComponentBuilderFactory.NitriteComponentBuilder nitrite() {
+        return org.apache.camel.builder.component.dsl.NitriteComponentBuilderFactory.nitrite();
+    }
+    /**
+     * Webhook (camel-webhook)
+     * The webhook component allows other Camel components that can receive push
+     * notifications to expose webhook endpoints and automatically register them
+     * with their own webhook provider.
+     * 
+     * Category: cloud
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-webhook
+     */
+    static org.apache.camel.builder.component.dsl.WebhookComponentBuilderFactory.WebhookComponentBuilder webhook() {
+        return org.apache.camel.builder.component.dsl.WebhookComponentBuilderFactory.webhook();
+    }
+    /**
+     * JOOQ (camel-jooq)
+     * The jooq component enables you to store and retrieve entities from
+     * databases using JOOQ
+     * 
+     * Category: database
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-jooq
+     */
+    static org.apache.camel.builder.component.dsl.JooqComponentBuilderFactory.JooqComponentBuilder jooq() {
+        return org.apache.camel.builder.component.dsl.JooqComponentBuilderFactory.jooq();
+    }
+    /**
+     * Hazelcast Multimap (camel-hazelcast)
+     * The hazelcast-multimap component is used to to access Hazelcast
+     * distributed multimap.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastMultimapComponentBuilderFactory.HazelcastMultimapComponentBuilder hazelcastMultimap() {
+        return org.apache.camel.builder.component.dsl.HazelcastMultimapComponentBuilderFactory.hazelcastMultimap();
+    }
+    /**
+     * Google BigQuery (camel-google-bigquery)
+     * Google BigQuery data warehouse for analytics.
+     * 
+     * Category: cloud,messaging
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-google-bigquery
+     */
+    static org.apache.camel.builder.component.dsl.GoogleBigQueryComponentBuilderFactory.GoogleBigQueryComponentBuilder googleBigquery() {
+        return org.apache.camel.builder.component.dsl.GoogleBigQueryComponentBuilderFactory.googleBigquery();
+    }
+    /**
+     * Openshift Build Config (camel-kubernetes)
+     * The Kubernetes Build Config component provides a producer to execute
+     * kubernetes build config operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.OpenshiftBuildConfigsComponentBuilderFactory.OpenshiftBuildConfigsComponentBuilder openshiftBuildConfigs() {
+        return org.apache.camel.builder.component.dsl.OpenshiftBuildConfigsComponentBuilderFactory.openshiftBuildConfigs();
+    }
+    /**
+     * Disruptor (camel-disruptor)
+     * The disruptor component provides asynchronous SEDA behavior using LMAX
+     * Disruptor.
+     * 
+     * Category: endpoint
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-disruptor
+     */
+    static org.apache.camel.builder.component.dsl.DisruptorComponentBuilderFactory.DisruptorComponentBuilder disruptor() {
+        return org.apache.camel.builder.component.dsl.DisruptorComponentBuilderFactory.disruptor();
+    }
+    /**
+     * AWS Simple Queue Service (camel-aws-sqs)
+     * The aws-sqs component is used for sending and receiving messages to
+     * Amazon's SQS service.
+     * 
+     * Category: cloud,messaging
+     * Since: 2.6
+     * Maven coordinates: org.apache.camel:camel-aws-sqs
+     */
+    static org.apache.camel.builder.component.dsl.SqsComponentBuilderFactory.SqsComponentBuilder awsSqs() {
+        return org.apache.camel.builder.component.dsl.SqsComponentBuilderFactory.awsSqs();
+    }
+    /**
+     * Servlet (camel-servlet)
+     * To use a HTTP Servlet as entry for Camel routes when running in a servlet
+     * container.
+     * 
+     * Category: http
+     * Since: 2.0
+     * Maven coordinates: org.apache.camel:camel-servlet
+     */
+    static org.apache.camel.builder.component.dsl.ServletComponentBuilderFactory.ServletComponentBuilder servlet() {
+        return org.apache.camel.builder.component.dsl.ServletComponentBuilderFactory.servlet();
+    }
+    /**
+     * Freemarker (camel-freemarker)
+     * Transforms the message using a FreeMarker template.
+     * 
+     * Category: transformation
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-freemarker
+     */
+    static org.apache.camel.builder.component.dsl.FreemarkerComponentBuilderFactory.FreemarkerComponentBuilder freemarker() {
+        return org.apache.camel.builder.component.dsl.FreemarkerComponentBuilderFactory.freemarker();
+    }
+    /**
+     * Cron (camel-cron)
+     * Camel Cron Component
+     * 
+     * Category: scheduling
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-cron
+     */
+    static org.apache.camel.builder.component.dsl.CronComponentBuilderFactory.CronComponentBuilder cron() {
+        return org.apache.camel.builder.component.dsl.CronComponentBuilderFactory.cron();
+    }
+    /**
+     * MLLP (camel-mllp)
+     * Provides functionality required by Healthcare providers to communicate
+     * with other systems using the MLLP protocol.
+     * 
+     * Category: mllp
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-mllp
+     */
+    static org.apache.camel.builder.component.dsl.MllpComponentBuilderFactory.MllpComponentBuilder mllp() {
+        return org.apache.camel.builder.component.dsl.MllpComponentBuilderFactory.mllp();
+    }
+    /**
+     * Avro (camel-avro)
+     * Working with Apache Avro for data serialization.
+     * 
+     * Category: messaging,transformation
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-avro
+     */
+    static org.apache.camel.builder.component.dsl.AvroComponentBuilderFactory.AvroComponentBuilder avro() {
+        return org.apache.camel.builder.component.dsl.AvroComponentBuilderFactory.avro();
+    }
+    /**
+     * Consul (camel-consul)
+     * The camel consul component allows you to work with Consul, a distributed,
+     * highly available, datacenter-aware, service discovery and configuration
+     * system.
+     * 
+     * Category: api,cloud
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-consul
+     */
+    static org.apache.camel.builder.component.dsl.ConsulComponentBuilderFactory.ConsulComponentBuilder consul() {
+        return org.apache.camel.builder.component.dsl.ConsulComponentBuilderFactory.consul();
+    }
+    /**
+     * Reactive Streams (camel-reactive-streams)
+     * Reactive Camel using reactive streams
+     * 
+     * Category: reactive,streams
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-reactive-streams
+     */
+    static org.apache.camel.builder.component.dsl.ReactiveStreamsComponentBuilderFactory.ReactiveStreamsComponentBuilder reactiveStreams() {
+        return org.apache.camel.builder.component.dsl.ReactiveStreamsComponentBuilderFactory.reactiveStreams();
+    }
+    /**
+     * Corda (camel-corda)
+     * The corda component uses corda-rpc to interact with corda nodes.
+     * 
+     * Category: corda,blockchain
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-corda
+     */
+    static org.apache.camel.builder.component.dsl.CordaComponentBuilderFactory.CordaComponentBuilder corda() {
+        return org.apache.camel.builder.component.dsl.CordaComponentBuilderFactory.corda();
+    }
+    /**
+     * AWS 2 EKS (camel-aws2-eks)
+     * The aws-eks is used for managing Amazon EKS
+     * 
+     * Category: cloud,management
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-aws2-eks
+     */
+    static org.apache.camel.builder.component.dsl.EKS2ComponentBuilderFactory.EKS2ComponentBuilder aws2Eks() {
+        return org.apache.camel.builder.component.dsl.EKS2ComponentBuilderFactory.aws2Eks();
+    }
+    /**
+     * Atmos (camel-atmos)
+     * The atmos component is used for integrating with EMC's Atomos Storage.
+     * 
+     * Category: file,cloud
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-atmos
+     */
+    static org.apache.camel.builder.component.dsl.AtmosComponentBuilderFactory.AtmosComponentBuilder atmos() {
+        return org.apache.camel.builder.component.dsl.AtmosComponentBuilderFactory.atmos();
+    }
+    /**
+     * Netty HTTP (camel-netty-http)
+     * Netty HTTP server and client using the Netty 4.x library.
+     * 
+     * Category: http
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-netty-http
+     */
+    static org.apache.camel.builder.component.dsl.NettyHttpComponentBuilderFactory.NettyHttpComponentBuilder nettyHttp() {
+        return org.apache.camel.builder.component.dsl.NettyHttpComponentBuilderFactory.nettyHttp();
+    }
+    /**
+     * PDF (camel-pdf)
+     * The pdf components provides the ability to create, modify or extract
+     * content from PDF documents.
+     * 
+     * Category: document,transformation,printing
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-pdf
+     */
+    static org.apache.camel.builder.component.dsl.PdfComponentBuilderFactory.PdfComponentBuilder pdf() {
+        return org.apache.camel.builder.component.dsl.PdfComponentBuilderFactory.pdf();
+    }
+    /**
+     * Google Calendar Stream (camel-google-calendar)
+     * The google-calendar-stream component provides access to Google Calendar
+     * in a streaming mode.
+     * 
+     * Category: api,cloud
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-google-calendar
+     */
+    static org.apache.camel.builder.component.dsl.GoogleCalendarStreamComponentBuilderFactory.GoogleCalendarStreamComponentBuilder googleCalendarStream() {
+        return org.apache.camel.builder.component.dsl.GoogleCalendarStreamComponentBuilderFactory.googleCalendarStream();
+    }
+    /**
+     * Weka (camel-weka)
+     * The camel-weka component provides Data Mining functionality through Weka.
+     * 
+     * Category: data mining
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-weka
+     */
+    static org.apache.camel.builder.component.dsl.WekaComponentBuilderFactory.WekaComponentBuilder weka() {
+        return org.apache.camel.builder.component.dsl.WekaComponentBuilderFactory.weka();
+    }
+    /**
+     * Atomix Messaging (camel-atomix)
+     * The atomix-messaging component is used to access Atomix's group
+     * messaging.
+     * 
+     * Category: clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-atomix
+     */
+    static org.apache.camel.builder.component.dsl.AtomixMessagingComponentBuilderFactory.AtomixMessagingComponentBuilder atomixMessaging() {
+        return org.apache.camel.builder.component.dsl.AtomixMessagingComponentBuilderFactory.atomixMessaging();
+    }
+    /**
+     * IEC 60870 Client (camel-iec60870)
+     * IEC 60870 component used for telecontrol (supervisory control and data
+     * acquisition) such as controlling electric power transmission grids and
+     * other geographically widespread control systems.
+     * 
+     * Category: iot
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-iec60870
+     */
+    static org.apache.camel.builder.component.dsl.ClientComponentBuilderFactory.ClientComponentBuilder iec60870Client() {
+        return org.apache.camel.builder.component.dsl.ClientComponentBuilderFactory.iec60870Client();
+    }
+    /**
+     * Hazelcast Instance (camel-hazelcast)
+     * The hazelcast-instance component is used to consume join/leave events of
+     * the cache instance in the cluster.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastInstanceComponentBuilderFactory.HazelcastInstanceComponentBuilder hazelcastInstance() {
+        return org.apache.camel.builder.component.dsl.HazelcastInstanceComponentBuilderFactory.hazelcastInstance();
+    }
+    /**
+     * GraphQL (camel-graphql)
+     * A Camel GraphQL Component
+     * 
+     * Category: api
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-graphql
+     */
+    static org.apache.camel.builder.component.dsl.GraphqlComponentBuilderFactory.GraphqlComponentBuilder graphql() {
+        return org.apache.camel.builder.component.dsl.GraphqlComponentBuilderFactory.graphql();
+    }
+    /**
+     * Jetty Websocket (camel-websocket)
+     * The websocket component provides websocket endpoints with Jetty for
+     * communicating with clients using websocket.
+     * 
+     * Category: websocket
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-websocket
+     */
+    static org.apache.camel.builder.component.dsl.WebsocketComponentBuilderFactory.WebsocketComponentBuilder websocket() {
+        return org.apache.camel.builder.component.dsl.WebsocketComponentBuilderFactory.websocket();
+    }
+    /**
+     * CM SMS Gateway (camel-cm-sms)
+     * The cm-sms component allows to integrate with CM SMS Gateway.
+     * 
+     * Category: mobile
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-cm-sms
+     */
+    static org.apache.camel.builder.component.dsl.CMComponentBuilderFactory.CMComponentBuilder cmSms() {
+        return org.apache.camel.builder.component.dsl.CMComponentBuilderFactory.cmSms();
+    }
+    /**
+     * Google Mail Stream (camel-google-mail)
+     * The google-mail component provides access to Google Mail.
+     * 
+     * Category: api,cloud,mail
+     * Since: 2.22
+     * Maven coordinates: org.apache.camel:camel-google-mail
+     */
+    static org.apache.camel.builder.component.dsl.GoogleMailStreamComponentBuilderFactory.GoogleMailStreamComponentBuilder googleMailStream() {
+        return org.apache.camel.builder.component.dsl.GoogleMailStreamComponentBuilderFactory.googleMailStream();
+    }
+    /**
+     * AWS IAM (camel-aws-iam)
+     * The aws-iam is used for managing Amazon IAM
+     * 
+     * Category: cloud,management
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-aws-iam
+     */
+    static org.apache.camel.builder.component.dsl.IAMComponentBuilderFactory.IAMComponentBuilder awsIam() {
+        return org.apache.camel.builder.component.dsl.IAMComponentBuilderFactory.awsIam();
+    }
+    /**
+     * Drill (camel-drill)
+     * The drill component gives you the ability to quering into apache drill
+     * cluster.
+     * 
+     * Category: database,sql
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-drill
+     */
+    static org.apache.camel.builder.component.dsl.DrillComponentBuilderFactory.DrillComponentBuilder drill() {
+        return org.apache.camel.builder.component.dsl.DrillComponentBuilderFactory.drill();
+    }
+    /**
+     * String Template (camel-stringtemplate)
+     * Transforms the message using a String template.
+     * 
+     * Category: transformation
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-stringtemplate
+     */
+    static org.apache.camel.builder.component.dsl.StringTemplateComponentBuilderFactory.StringTemplateComponentBuilder stringTemplate() {
+        return org.apache.camel.builder.component.dsl.StringTemplateComponentBuilderFactory.stringTemplate();
+    }
+    /**
+     * AWS Kinesis Firehose (camel-aws-kinesis)
+     * The aws-kinesis-firehose component is used for producing Amazon's Kinesis
+     * Firehose streams.
+     * 
+     * Category: cloud,messaging
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-aws-kinesis
+     */
+    static org.apache.camel.builder.component.dsl.KinesisFirehoseComponentBuilderFactory.KinesisFirehoseComponentBuilder awsKinesisFirehose() {
+        return org.apache.camel.builder.component.dsl.KinesisFirehoseComponentBuilderFactory.awsKinesisFirehose();
+    }
+    /**
+     * Box (camel-box)
+     * For uploading downloading and managing files folders groups
+     * collaborations etc on box DOT com.
+     * 
+     * Category: api,file,cloud
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-box
+     */
+    static org.apache.camel.builder.component.dsl.BoxComponentBuilderFactory.BoxComponentBuilder box() {
+        return org.apache.camel.builder.component.dsl.BoxComponentBuilderFactory.box();
+    }
+    /**
+     * Geocoder (camel-geocoder)
+     * The geocoder component is used for looking up geocodes (latitude and
+     * longitude) for a given address, or reverse lookup.
+     * 
+     * Category: api,location
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-geocoder
+     */
+    static org.apache.camel.builder.component.dsl.GeoCoderComponentBuilderFactory.GeoCoderComponentBuilder geocoder() {
+        return org.apache.camel.builder.component.dsl.GeoCoderComponentBuilderFactory.geocoder();
+    }
+    /**
+     * Hazelcast Replicated Map (camel-hazelcast)
+     * The hazelcast-replicatedmap component is used to access Hazelcast
+     * replicated map.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastReplicatedmapComponentBuilderFactory.HazelcastReplicatedmapComponentBuilder hazelcastReplicatedmap() {
+        return org.apache.camel.builder.component.dsl.HazelcastReplicatedmapComponentBuilderFactory.hazelcastReplicatedmap();
+    }
+    /**
+     * XMPP (camel-xmpp)
+     * To send and receive messages from a XMPP (chat) server.
+     * 
+     * Category: chat,messaging
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-xmpp
+     */
+    static org.apache.camel.builder.component.dsl.XmppComponentBuilderFactory.XmppComponentBuilder xmpp() {
+        return org.apache.camel.builder.component.dsl.XmppComponentBuilderFactory.xmpp();
+    }
+    /**
+     * CoAP (camel-coap)
+     * The coap component is used for sending and receiving messages from COAP
+     * capable devices.
+     * 
+     * Category: iot
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-coap
+     */
+    static org.apache.camel.builder.component.dsl.CoapCoAPComponentBuilderFactory.CoapCoAPComponentBuilder coap() {
+        return org.apache.camel.builder.component.dsl.CoapCoAPComponentBuilderFactory.coap();
+    }
+    /**
+     * SMPP (Secure) (camel-smpp)
+     * To send and receive SMS using a SMSC (Short Message Service Center).
+     * 
+     * Category: mobile
+     * Since: 2.2
+     * Maven coordinates: org.apache.camel:camel-smpp
+     */
+    static org.apache.camel.builder.component.dsl.SmppsSmppComponentBuilderFactory.SmppsSmppComponentBuilder smpps() {
+        return org.apache.camel.builder.component.dsl.SmppsSmppComponentBuilderFactory.smpps();
+    }
+    /**
+     * Olingo2 (camel-olingo2)
+     * Communicates with OData 2.0 services using Apache Olingo.
+     * 
+     * Category: cloud
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-olingo2
+     */
+    static org.apache.camel.builder.component.dsl.Olingo2ComponentBuilderFactory.Olingo2ComponentBuilder olingo2() {
+        return org.apache.camel.builder.component.dsl.Olingo2ComponentBuilderFactory.olingo2();
+    }
+    /**
+     * Telegram (camel-telegram)
+     * The telegram component provides access to the Telegram Bot API.
+     * 
+     * Category: chat
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-telegram
+     */
+    static org.apache.camel.builder.component.dsl.TelegramComponentBuilderFactory.TelegramComponentBuilder telegram() {
+        return org.apache.camel.builder.component.dsl.TelegramComponentBuilderFactory.telegram();
+    }
+    /**
+     * Twitter Search (camel-twitter)
+     * The Twitter Search component consumes search results.
+     * 
+     * Category: api,social
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-twitter
+     */
+    static org.apache.camel.builder.component.dsl.TwitterSearchComponentBuilderFactory.TwitterSearchComponentBuilder twitterSearch() {
+        return org.apache.camel.builder.component.dsl.TwitterSearchComponentBuilderFactory.twitterSearch();
+    }
+    /**
+     * Kubernetes Job (camel-kubernetes)
+     * The Kubernetes Jobs component provides a producer to execute kubernetes
+     * job operations
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesJobComponentBuilderFactory.KubernetesJobComponentBuilder kubernetesJob() {
+        return org.apache.camel.builder.component.dsl.KubernetesJobComponentBuilderFactory.kubernetesJob();
+    }
+    /**
+     * LDIF (camel-ldif)
+     * The ldif component allows you to do updates on an LDAP server from a LDIF
+     * body content.
+     * 
+     * Category: ldap
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-ldif
+     */
+    static org.apache.camel.builder.component.dsl.LdifComponentBuilderFactory.LdifComponentBuilder ldif() {
+        return org.apache.camel.builder.component.dsl.LdifComponentBuilderFactory.ldif();
+    }
+    /**
+     * Direct VM (camel-directvm)
+     * The direct-vm component provides direct, synchronous call to another
+     * endpoint from any CamelContext in the same JVM.
+     * 
+     * Category: core,endpoint
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-directvm
+     */
+    static org.apache.camel.builder.component.dsl.DirectVmComponentBuilderFactory.DirectVmComponentBuilder directVm() {
+        return org.apache.camel.builder.component.dsl.DirectVmComponentBuilderFactory.directVm();
+    }
+    /**
+     * Velocity (camel-velocity)
+     * Transforms the message using a Velocity template.
+     * 
+     * Category: transformation
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-velocity
+     */
+    static org.apache.camel.builder.component.dsl.VelocityComponentBuilderFactory.VelocityComponentBuilder velocity() {
+        return org.apache.camel.builder.component.dsl.VelocityComponentBuilderFactory.velocity();
+    }
+    /**
+     * DNS (camel-dns)
+     * To lookup domain information and run DNS queries using DNSJava.
+     * 
+     * Category: networking
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-dns
+     */
+    static org.apache.camel.builder.component.dsl.DnsComponentBuilderFactory.DnsComponentBuilder dns() {
+        return org.apache.camel.builder.component.dsl.DnsComponentBuilderFactory.dns();
+    }
+    /**
+     * Caffeine LoadCache (camel-caffeine)
+     * The caffeine-loadcache component is used for integration with Caffeine
+     * Load Cache.
+     * 
+     * Category: cache,datagrid,clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-caffeine
+     */
+    static org.apache.camel.builder.component.dsl.CaffeineLoadCacheComponentBuilderFactory.CaffeineLoadCacheComponentBuilder caffeineLoadcache() {
+        return org.apache.camel.builder.component.dsl.CaffeineLoadCacheComponentBuilderFactory.caffeineLoadcache();
+    }
+    /**
+     * Debezium SQL Server Connector (camel-debezium-sqlserver)
+     * Represents a Debezium SQL Server endpoint which is used to capture
+     * changes in SQL Server database so that that applications can see those
+     * changes and respond to them.
+     * 
+     * Category: database,sql,sqlserver
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-debezium-sqlserver
+     */
+    static org.apache.camel.builder.component.dsl.DebeziumSqlserverComponentBuilderFactory.DebeziumSqlserverComponentBuilder debeziumSqlserver() {
+        return org.apache.camel.builder.component.dsl.DebeziumSqlserverComponentBuilderFactory.debeziumSqlserver();
+    }
+    /**
+     * Solr (camel-solr)
+     * The solr component allows you to interface with an Apache Lucene Solr
+     * server.
+     * 
+     * Category: monitoring,search
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-solr
+     */
+    static org.apache.camel.builder.component.dsl.SolrcloudSolrComponentBuilderFactory.SolrcloudSolrComponentBuilder solrcloud() {
+        return org.apache.camel.builder.component.dsl.SolrcloudSolrComponentBuilderFactory.solrcloud();
+    }
+    /**
+     * AWS Simple Notification System (camel-aws-sns)
+     * The aws-sns component is used for sending messages to an Amazon Simple
+     * Notification Topic.
+     * 
+     * Category: cloud,mobile,messaging
+     * Since: 2.8
+     * Maven coordinates: org.apache.camel:camel-aws-sns
+     */
+    static org.apache.camel.builder.component.dsl.SnsComponentBuilderFactory.SnsComponentBuilder awsSns() {
+        return org.apache.camel.builder.component.dsl.SnsComponentBuilderFactory.awsSns();
+    }
+    /**
+     * Hazelcast List (camel-hazelcast)
+     * The hazelcast-list component is used to access Hazelcast distributed
+     * list.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastListComponentBuilderFactory.HazelcastListComponentBuilder hazelcastList() {
+        return org.apache.camel.builder.component.dsl.HazelcastListComponentBuilderFactory.hazelcastList();
+    }
+    /**
+     * Couchbase (camel-couchbase)
+     * Represents a Couchbase endpoint that can query Views with a Poll strategy
+     * and/or produce various type of operations.
+     * 
+     * Category: database,nosql
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-couchbase
+     */
+    static org.apache.camel.builder.component.dsl.CouchbaseComponentBuilderFactory.CouchbaseComponentBuilder couchbase() {
+        return org.apache.camel.builder.component.dsl.CouchbaseComponentBuilderFactory.couchbase();
+    }
+    /**
+     * Data Format (camel-dataformat)
+     * The dataformat component is used for working with Data Formats as if it
+     * was a regular Component supporting Endpoints and URIs.
+     * 
+     * Category: core,transformation
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-dataformat
+     */
+    static org.apache.camel.builder.component.dsl.DataFormatComponentBuilderFactory.DataFormatComponentBuilder dataformat() {
+        return org.apache.camel.builder.component.dsl.DataFormatComponentBuilderFactory.dataformat();
+    }
+    /**
+     * PubNub (camel-pubnub)
+     * To send and receive messages to PubNub data stream network for connected
+     * devices.
+     * 
+     * Category: cloud,iot,messaging
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-pubnub
+     */
+    static org.apache.camel.builder.component.dsl.PubNubComponentBuilderFactory.PubNubComponentBuilder pubnub() {
+        return org.apache.camel.builder.component.dsl.PubNubComponentBuilderFactory.pubnub();
+    }
+    /**
+     * Platform HTTP (camel-platform-http)
+     * HTTP service leveraging existing runtime platform HTTP server
+     * 
+     * Category: http
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-platform-http
+     */
+    static org.apache.camel.builder.component.dsl.PlatformHttpComponentBuilderFactory.PlatformHttpComponentBuilder platformHttp() {
+        return org.apache.camel.builder.component.dsl.PlatformHttpComponentBuilderFactory.platformHttp();
+    }
+    /**
+     * Chunk (camel-chunk)
+     * Transforms the message using a Chunk template.
+     * 
+     * Category: transformation
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-chunk
+     */
+    static org.apache.camel.builder.component.dsl.ChunkComponentBuilderFactory.ChunkComponentBuilder chunk() {
+        return org.apache.camel.builder.component.dsl.ChunkComponentBuilderFactory.chunk();
+    }
+    /**
+     * Azure Storage Queue Service (camel-azure)
+     * The azure-queue component is used for storing and retrieving messages
+     * from Azure Storage Queue Service.
+     * 
+     * Category: cloud,queue,azure
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-azure
+     */
+    static org.apache.camel.builder.component.dsl.QueueServiceComponentBuilderFactory.QueueServiceComponentBuilder azureQueue() {
+        return org.apache.camel.builder.component.dsl.QueueServiceComponentBuilderFactory.azureQueue();
+    }
+    /**
+     * File Watch (camel-file-watch)
+     * The file-watch is used to monitor file events in directory using
+     * java.nio.file.WatchService
+     * 
+     * Category: file
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-file-watch
+     */
+    static org.apache.camel.builder.component.dsl.FileWatchComponentBuilderFactory.FileWatchComponentBuilder fileWatch() {
+        return org.apache.camel.builder.component.dsl.FileWatchComponentBuilderFactory.fileWatch();
+    }
+    /**
+     * Undertow (camel-undertow)
+     * The undertow component provides HTTP and WebSocket based endpoints for
+     * consuming and producing HTTP/WebSocket requests.
+     * 
+     * Category: http,websocket
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-undertow
+     */
+    static org.apache.camel.builder.component.dsl.UndertowComponentBuilderFactory.UndertowComponentBuilder undertow() {
+        return org.apache.camel.builder.component.dsl.UndertowComponentBuilderFactory.undertow();
+    }
+    /**
+     * AWS EKS (camel-aws-eks)
+     * The aws-eks is used for managing Amazon EKS
+     * 
+     * Category: cloud,management
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-aws-eks
+     */
+    static org.apache.camel.builder.component.dsl.EKSComponentBuilderFactory.EKSComponentBuilder awsEks() {
+        return org.apache.camel.builder.component.dsl.EKSComponentBuilderFactory.awsEks();
+    }
+    /**
+     * Stomp (camel-stomp)
+     * The stomp component is used for communicating with Stomp compliant
+     * message brokers.
+     * 
+     * Category: messaging
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-stomp
+     */
+    static org.apache.camel.builder.component.dsl.StompComponentBuilderFactory.StompComponentBuilder stomp() {
+        return org.apache.camel.builder.component.dsl.StompComponentBuilderFactory.stomp();
+    }
+    /**
+     * Infinispan (camel-infinispan)
+     * For reading/writing from/to Infinispan distributed key/value store and
+     * data grid.
+     * 
+     * Category: cache,datagrid,clustering
+     * Since: 2.13
+     * Maven coordinates: org.apache.camel:camel-infinispan
+     */
+    static org.apache.camel.builder.component.dsl.InfinispanComponentBuilderFactory.InfinispanComponentBuilder infinispan() {
+        return org.apache.camel.builder.component.dsl.InfinispanComponentBuilderFactory.infinispan();
+    }
+    /**
+     * SEDA (camel-seda)
+     * The seda component provides asynchronous call to another endpoint from
+     * any CamelContext in the same JVM.
+     * 
+     * Category: core,endpoint
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-seda
+     */
+    static org.apache.camel.builder.component.dsl.SedaComponentBuilderFactory.SedaComponentBuilder seda() {
+        return org.apache.camel.builder.component.dsl.SedaComponentBuilderFactory.seda();
+    }
+    /**
+     * VM (camel-vm)
+     * The vm component provides asynchronous call to another endpoint from the
+     * same CamelContext.
+     * 
+     * Category: core,endpoint
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-vm
+     */
+    static org.apache.camel.builder.component.dsl.VmComponentBuilderFactory.VmComponentBuilder vm() {
+        return org.apache.camel.builder.component.dsl.VmComponentBuilderFactory.vm();
+    }
+    /**
+     * Google Calendar (camel-google-calendar)
+     * The google-calendar component provides access to Google Calendar.
+     * 
+     * Category: api,cloud
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-google-calendar
+     */
+    static org.apache.camel.builder.component.dsl.GoogleCalendarComponentBuilderFactory.GoogleCalendarComponentBuilder googleCalendar() {
+        return org.apache.camel.builder.component.dsl.GoogleCalendarComponentBuilderFactory.googleCalendar();
+    }
+    /**
+     * Atomix Queue (camel-atomix)
+     * The atomix-queue component is used to access Atomix's distributed queue.
+     * 
+     * Category: clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-atomix
+     */
+    static org.apache.camel.builder.component.dsl.AtomixQueueComponentBuilderFactory.AtomixQueueComponentBuilder atomixQueue() {
+        return org.apache.camel.builder.component.dsl.AtomixQueueComponentBuilderFactory.atomixQueue();
+    }
+    /**
+     * JCR (camel-jcr)
+     * The jcr component allows you to add/read nodes to/from a JCR compliant
+     * content repository.
+     * 
+     * Category: cms,database
+     * Since: 1.3
+     * Maven coordinates: org.apache.camel:camel-jcr
+     */
+    static org.apache.camel.builder.component.dsl.JcrComponentBuilderFactory.JcrComponentBuilder jcr() {
+        return org.apache.camel.builder.component.dsl.JcrComponentBuilderFactory.jcr();
+    }
+    /**
+     * Twilio (camel-twilio)
+     * The Twilio component allows you to interact with the Twilio REST APIs
+     * using Twilio Java SDK.
+     * 
+     * Category: api,messaging,cloud
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-twilio
+     */
+    static org.apache.camel.builder.component.dsl.TwilioComponentBuilderFactory.TwilioComponentBuilder twilio() {
+        return org.apache.camel.builder.component.dsl.TwilioComponentBuilderFactory.twilio();
+    }
+    /**
+     * AWS Simple Workflow (camel-aws-swf)
+     * The aws-swf component is used for managing workflows from Amazon Simple
+     * Workflow.
+     * 
+     * Category: cloud,workflow
+     * Since: 2.13
+     * Maven coordinates: org.apache.camel:camel-aws-swf
+     */
+    static org.apache.camel.builder.component.dsl.SWFComponentBuilderFactory.SWFComponentBuilder awsSwf() {
+        return org.apache.camel.builder.component.dsl.SWFComponentBuilderFactory.awsSwf();
+    }
+    /**
+     * AWS Translate (camel-aws-translate)
+     * The aws-translate component is used for managing Amazon Translate
+     * 
+     * Category: cloud,management
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-aws-translate
+     */
+    static org.apache.camel.builder.component.dsl.TranslateComponentBuilderFactory.TranslateComponentBuilder awsTranslate() {
+        return org.apache.camel.builder.component.dsl.TranslateComponentBuilderFactory.awsTranslate();
+    }
+    /**
+     * Class (camel-bean)
+     * The Class component is for invoking Java classes (Java beans) from Camel.
+     * 
+     * Category: core,java
+     * Since: 2.4
+     * Maven coordinates: org.apache.camel:camel-bean
+     */
+    static org.apache.camel.builder.component.dsl.ClassComponentBuilderFactory.ClassComponentBuilder clas() {
+        return org.apache.camel.builder.component.dsl.ClassComponentBuilderFactory.clas();
+    }
+    /**
+     * JT400 (camel-jt400)
+     * The jt400 component allows you to exchanges messages with an AS/400
+     * system using data queues or program call.
+     * 
+     * Category: messaging
+     * Since: 1.5
+     * Maven coordinates: org.apache.camel:camel-jt400
+     */
+    static org.apache.camel.builder.component.dsl.Jt400ComponentBuilderFactory.Jt400ComponentBuilder jt400() {
+        return org.apache.camel.builder.component.dsl.Jt400ComponentBuilderFactory.jt400();
+    }
+    /**
+     * CometD (Secure) (camel-cometd)
+     * The cometd component is a transport for working with the Jetty
+     * implementation of the cometd/bayeux protocol.
+     * 
+     * Category: websocket
+     * Since: 2.0
+     * Maven coordinates: org.apache.camel:camel-cometd
+     */
+    static org.apache.camel.builder.component.dsl.CometdsCometdComponentBuilderFactory.CometdsCometdComponentBuilder cometds() {
+        return org.apache.camel.builder.component.dsl.CometdsCometdComponentBuilderFactory.cometds();
+    }
+    /**
+     * InfluxDB (camel-influxdb)
+     * The influxdb component allows you to interact with InfluxDB, a time
+     * series database.
+     * 
+     * Category: database
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-influxdb
+     */
+    static org.apache.camel.builder.component.dsl.InfluxDbComponentBuilderFactory.InfluxDbComponentBuilder influxdb() {
+        return org.apache.camel.builder.component.dsl.InfluxDbComponentBuilderFactory.influxdb();
+    }
+    /**
+     * Debezium MySQL Connector (camel-debezium-mysql)
+     * Represents a Debezium MySQL endpoint which is used to capture changes in
+     * MySQL database so that that applications can see those changes and
+     * respond to them.
+     * 
+     * Category: database,sql,mysql
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-debezium-mysql
+     */
+    static org.apache.camel.builder.component.dsl.DebeziumMySqlComponentBuilderFactory.DebeziumMySqlComponentBuilder debeziumMysql() {
+        return org.apache.camel.builder.component.dsl.DebeziumMySqlComponentBuilderFactory.debeziumMysql();
+    }
+    /**
+     * JGroups raft (camel-jgroups-raft)
+     * The jgroups component provides exchange of messages between Camel and
+     * JGroups clusters.
+     * 
+     * Category: clustering,messaging
+     * Since: 2.24
+     * Maven coordinates: org.apache.camel:camel-jgroups-raft
+     */
+    static org.apache.camel.builder.component.dsl.JGroupsRaftComponentBuilderFactory.JGroupsRaftComponentBuilder jgroupsRaft() {
+        return org.apache.camel.builder.component.dsl.JGroupsRaftComponentBuilderFactory.jgroupsRaft();
+    }
+    /**
+     * OpenStack Neutron (camel-openstack)
+     * The openstack-neutron component allows messages to be sent to an
+     * OpenStack network services.
+     * 
+     * Category: cloud,paas
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-openstack
+     */
+    static org.apache.camel.builder.component.dsl.NeutronComponentBuilderFactory.NeutronComponentBuilder openstackNeutron() {
+        return org.apache.camel.builder.component.dsl.NeutronComponentBuilderFactory.openstackNeutron();
+    }
+    /**
+     * ActiveMQ (camel-activemq)
+     * The activemq component allows messages to be sent to (or consumed from)
+     * Apache ActiveMQ. This component extends the Camel JMS component.
+     * 
+     * Category: messaging
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-activemq
+     */
+    static org.apache.camel.builder.component.dsl.ActiveMQComponentBuilderFactory.ActiveMQComponentBuilder activemq() {
+        return org.apache.camel.builder.component.dsl.ActiveMQComponentBuilderFactory.activemq();
+    }
+    /**
+     * Jing (camel-jing)
+     * Validates the payload of a message using RelaxNG Syntax using Jing
+     * library.
+     * 
+     * Category: validation
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-jing
+     */
+    static org.apache.camel.builder.component.dsl.JingComponentBuilderFactory.JingComponentBuilder jing() {
+        return org.apache.camel.builder.component.dsl.JingComponentBuilderFactory.jing();
+    }
+    /**
+     * gRPC (camel-grpc)
+     * The gRPC component allows to call and expose remote procedures via HTTP/2
+     * with protobuf dataformat
+     * 
+     * Category: rpc
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-grpc
+     */
+    static org.apache.camel.builder.component.dsl.GrpcComponentBuilderFactory.GrpcComponentBuilder grpc() {
+        return org.apache.camel.builder.component.dsl.GrpcComponentBuilderFactory.grpc();
+    }
+    /**
+     * OpenStack Keystone (camel-openstack)
+     * The openstack-keystone component allows messages to be sent to an
+     * OpenStack identity services.
+     * 
+     * Category: cloud,paas
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-openstack
+     */
+    static org.apache.camel.builder.component.dsl.KeystoneComponentBuilderFactory.KeystoneComponentBuilder openstackKeystone() {
+        return org.apache.camel.builder.component.dsl.KeystoneComponentBuilderFactory.openstackKeystone();
+    }
+    /**
+     * Wordpress (camel-wordpress)
+     * Integrates Camel with Wordpress.
+     * 
+     * Category: cms
+     * Since: 2.21
+     * Maven coordinates: org.apache.camel:camel-wordpress
+     */
+    static org.apache.camel.builder.component.dsl.WordpressComponentBuilderFactory.WordpressComponentBuilder wordpress() {
+        return org.apache.camel.builder.component.dsl.WordpressComponentBuilderFactory.wordpress();
+    }
+    /**
+     * Atomix Value (camel-atomix)
+     * The atomix-value component is used to access Atomix's distributed value.
+     * 
+     * Category: clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-atomix
+     */
+    static org.apache.camel.builder.component.dsl.AtomixValueComponentBuilderFactory.AtomixValueComponentBuilder atomixValue() {
+        return org.apache.camel.builder.component.dsl.AtomixValueComponentBuilderFactory.atomixValue();
+    }
+    /**
+     * Kubernetes Namespaces (camel-kubernetes)
+     * The Kubernetes Namespaces component provides a producer to execute
+     * kubernetes namespace operations and a consumer to consume namespace
+     * events.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesNamespacesComponentBuilderFactory.KubernetesNamespacesComponentBuilder kubernetesNamespaces() {
+        return org.apache.camel.builder.component.dsl.KubernetesNamespacesComponentBuilderFactory.kubernetesNamespaces();
+    }
+    /**
+     * QuickFix (camel-quickfix)
+     * The quickfix component allows to send Financial Interchange (FIX)
+     * messages to the QuickFix engine.
+     * 
+     * Category: messaging
+     * Since: 2.1
+     * Maven coordinates: org.apache.camel:camel-quickfix
+     */
+    static org.apache.camel.builder.component.dsl.QuickfixjComponentBuilderFactory.QuickfixjComponentBuilder quickfix() {
+        return org.apache.camel.builder.component.dsl.QuickfixjComponentBuilderFactory.quickfix();
+    }
+    /**
+     * AHC Websocket (camel-ahc-ws)
+     * To exchange data with external Websocket servers using Async Http Client.
+     * 
+     * Category: websocket
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-ahc-ws
+     */
+    static org.apache.camel.builder.component.dsl.AhcWsWsComponentBuilderFactory.AhcWsWsComponentBuilder ahcWs() {
+        return org.apache.camel.builder.component.dsl.AhcWsWsComponentBuilderFactory.ahcWs();
+    }
+    /**
+     * Kubernetes Persistent Volume (camel-kubernetes)
+     * The Kubernetes Persistent Volumes component provides a producer to
+     * execute kubernetes persistent volume operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesPersistentVolumesComponentBuilderFactory.KubernetesPersistentVolumesComponentBuilder kubernetesPersistentVolumes() {
+        return org.apache.camel.builder.component.dsl.KubernetesPersistentVolumesComponentBuilderFactory.kubernetesPersistentVolumes();
+    }
+    /**
+     * Dataset (camel-dataset)
+     * The dataset component provides a mechanism to easily perform load & soak
+     * testing of your system.
+     * 
+     * Category: core,testing
+     * Since: 1.3
+     * Maven coordinates: org.apache.camel:camel-dataset
+     */
+    static org.apache.camel.builder.component.dsl.DataSetComponentBuilderFactory.DataSetComponentBuilder dataset() {
+        return org.apache.camel.builder.component.dsl.DataSetComponentBuilderFactory.dataset();
+    }
+    /**
+     * Gora (camel-gora)
+     * The gora component allows you to work with NoSQL databases using the
+     * Apache Gora framework.
+     * 
+     * Category: database,hadoop,nosql
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-gora
+     */
+    static org.apache.camel.builder.component.dsl.GoraComponentBuilderFactory.GoraComponentBuilder gora() {
+        return org.apache.camel.builder.component.dsl.GoraComponentBuilderFactory.gora();
+    }
+    /**
+     * RSS (camel-rss)
+     * The rss component is used for consuming RSS feeds.
+     * 
+     * Category: rss
+     * Since: 2.0
+     * Maven coordinates: org.apache.camel:camel-rss
+     */
+    static org.apache.camel.builder.component.dsl.RssComponentBuilderFactory.RssComponentBuilder rss() {
+        return org.apache.camel.builder.component.dsl.RssComponentBuilderFactory.rss();
+    }
+    /**
+     * OPC UA Server (camel-milo)
+     * Make telemetry data available as an OPC UA server
+     * 
+     * Category: iot
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-milo
+     */
+    static org.apache.camel.builder.component.dsl.MiloServerComponentBuilderFactory.MiloServerComponentBuilder miloServer() {
+        return org.apache.camel.builder.component.dsl.MiloServerComponentBuilderFactory.miloServer();
+    }
+    /**
+     * Saga (camel-saga)
+     * The saga component provides access to advanced options for managing the
+     * flow in the Saga EIP.
+     * 
+     * Category: core,endpoint
+     * Since: 2.21
+     * Maven coordinates: org.apache.camel:camel-saga
+     */
+    static org.apache.camel.builder.component.dsl.SagaComponentBuilderFactory.SagaComponentBuilder saga() {
+        return org.apache.camel.builder.component.dsl.SagaComponentBuilderFactory.saga();
+    }
+    /**
+     * File (camel-file)
+     * The file component is used for reading or writing files.
+     * 
+     * Category: core,file
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-file
+     */
+    static org.apache.camel.builder.component.dsl.FileComponentBuilderFactory.FileComponentBuilder file() {
+        return org.apache.camel.builder.component.dsl.FileComponentBuilderFactory.file();
+    }
+    /**
+     * Dozer (camel-dozer)
+     * The dozer component provides the ability to map between Java beans using
+     * the Dozer mapping library.
+     * 
+     * Category: transformation
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-dozer
+     */
+    static org.apache.camel.builder.component.dsl.DozerComponentBuilderFactory.DozerComponentBuilder dozer() {
+        return org.apache.camel.builder.component.dsl.DozerComponentBuilderFactory.dozer();
+    }
+    /**
+     * Hazelcast Ringbuffer (camel-hazelcast)
+     * The hazelcast-ringbuffer component is used to access Hazelcast
+     * distributed ringbuffer.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastRingbufferComponentBuilderFactory.HazelcastRingbufferComponentBuilder hazelcastRingbuffer() {
+        return org.apache.camel.builder.component.dsl.HazelcastRingbufferComponentBuilderFactory.hazelcastRingbuffer();
+    }
+    /**
+     * OpenStack Glance (camel-openstack)
+     * The openstack-glance component allows messages to be sent to an OpenStack
+     * image services.
+     * 
+     * Category: cloud,paas
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-openstack
+     */
+    static org.apache.camel.builder.component.dsl.GlanceComponentBuilderFactory.GlanceComponentBuilder openstackGlance() {
+        return org.apache.camel.builder.component.dsl.GlanceComponentBuilderFactory.openstackGlance();
+    }
+    /**
+     * Exec (camel-exec)
+     * The exec component can be used to execute OS system commands.
+     * 
+     * Category: system
+     * Since: 2.3
+     * Maven coordinates: org.apache.camel:camel-exec
+     */
+    static org.apache.camel.builder.component.dsl.ExecComponentBuilderFactory.ExecComponentBuilder exec() {
+        return org.apache.camel.builder.component.dsl.ExecComponentBuilderFactory.exec();
+    }
+    /**
+     * Netty (camel-netty)
+     * Socket level networking using TCP or UDP with the Netty 4.x library.
+     * 
+     * Category: networking,tcp,udp
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-netty
+     */
+    static org.apache.camel.builder.component.dsl.NettyComponentBuilderFactory.NettyComponentBuilder netty() {
+        return org.apache.camel.builder.component.dsl.NettyComponentBuilderFactory.netty();
+    }
+    /**
+     * Simple JMS2 (camel-sjms2)
+     * The sjms2 component (simple jms) allows messages to be sent to (or
+     * consumed from) a JMS Queue or Topic (uses JMS 2.x API).
+     * 
+     * Category: messaging
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-sjms2
+     */
+    static org.apache.camel.builder.component.dsl.Sjms2ComponentBuilderFactory.Sjms2ComponentBuilder sjms2() {
+        return org.apache.camel.builder.component.dsl.Sjms2ComponentBuilderFactory.sjms2();
+    }
+    /**
+     * Atomix Set (camel-atomix)
+     * The atomix-set component is used to access Atomix's distributed set.
+     * 
+     * Category: clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-atomix
+     */
+    static org.apache.camel.builder.component.dsl.AtomixSetComponentBuilderFactory.AtomixSetComponentBuilder atomixSet() {
+        return org.apache.camel.builder.component.dsl.AtomixSetComponentBuilderFactory.atomixSet();
+    }
+    /**
+     * HBase (camel-hbase)
+     * For reading/writing from/to an HBase store (Hadoop database).
+     * 
+     * Category: hadoop
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-hbase
+     */
+    static org.apache.camel.builder.component.dsl.HBaseComponentBuilderFactory.HBaseComponentBuilder hbase() {
+        return org.apache.camel.builder.component.dsl.HBaseComponentBuilderFactory.hbase();
+    }
+    /**
+     * SCP (camel-jsch)
+     * To copy files using the secure copy protocol (SCP).
+     * 
+     * Category: file
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-jsch
+     */
+    static org.apache.camel.builder.component.dsl.ScpComponentBuilderFactory.ScpComponentBuilder scp() {
+        return org.apache.camel.builder.component.dsl.ScpComponentBuilderFactory.scp();
+    }
+    /**
+     * FHIR (camel-fhir)
+     * The fhir component is used for working with the FHIR protocol (health
+     * care).
+     * 
+     * Category: hl7,api
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-fhir
+     */
+    static org.apache.camel.builder.component.dsl.FhirComponentBuilderFactory.FhirComponentBuilder fhir() {
+        return org.apache.camel.builder.component.dsl.FhirComponentBuilderFactory.fhir();
+    }
+    /**
+     * CoAP (camel-coap)
+     * The coap component is used for sending and receiving messages from COAP
+     * capable devices.
+     * 
+     * Category: iot
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-coap
+     */
+    static org.apache.camel.builder.component.dsl.CoapsTcpCoAPComponentBuilderFactory.CoapsTcpCoAPComponentBuilder coapsTcp() {
+        return org.apache.camel.builder.component.dsl.CoapsTcpCoAPComponentBuilderFactory.coapsTcp();
+    }
+    /**
+     * POP3 (camel-mail)
+     * To send or receive emails using imap/pop3 or smtp protocols.
+     * 
+     * Category: mail
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-mail
+     */
+    static org.apache.camel.builder.component.dsl.Pop3MailComponentBuilderFactory.Pop3MailComponentBuilder pop3() {
+        return org.apache.camel.builder.component.dsl.Pop3MailComponentBuilderFactory.pop3();
+    }
+    /**
+     * Dropbox (camel-dropbox)
+     * For uploading, downloading and managing files, folders, groups,
+     * collaborations, etc on dropbox DOT com.
+     * 
+     * Category: api,file
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-dropbox
+     */
+    static org.apache.camel.builder.component.dsl.DropboxComponentBuilderFactory.DropboxComponentBuilder dropbox() {
+        return org.apache.camel.builder.component.dsl.DropboxComponentBuilderFactory.dropbox();
+    }
+    /**
+     * OSGi EventAdmin (camel-eventadmin)
+     * The eventadmin component can be used in an OSGi environment to receive
+     * OSGi EventAdmin events and process them.
+     * 
+     * Category: eventbus
+     * Since: 2.6
+     * Maven coordinates: org.apache.camel:camel-eventadmin
+     */
+    static org.apache.camel.builder.component.dsl.EventAdminComponentBuilderFactory.EventAdminComponentBuilder eventadmin() {
+        return org.apache.camel.builder.component.dsl.EventAdminComponentBuilderFactory.eventadmin();
+    }
+    /**
+     * GitHub (camel-github)
+     * The github component is used for integrating Camel with github.
+     * 
+     * Category: api,file
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-github
+     */
+    static org.apache.camel.builder.component.dsl.GitHubComponentBuilderFactory.GitHubComponentBuilder github() {
+        return org.apache.camel.builder.component.dsl.GitHubComponentBuilderFactory.github();
+    }
+    /**
+     * JPA (camel-jpa)
+     * The jpa component enables you to store and retrieve Java objects from
+     * databases using JPA.
+     * 
+     * Category: database,sql
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-jpa
+     */
+    static org.apache.camel.builder.component.dsl.JpaComponentBuilderFactory.JpaComponentBuilder jpa() {
+        return org.apache.camel.builder.component.dsl.JpaComponentBuilderFactory.jpa();
+    }
+    /**
+     * REST Swagger (camel-rest-swagger)
+     * An awesome REST endpoint backed by Swagger specifications.
+     * 
+     * Category: rest,swagger,http
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-rest-swagger
+     */
+    static org.apache.camel.builder.component.dsl.RestSwaggerComponentBuilderFactory.RestSwaggerComponentBuilder restSwagger() {
+        return org.apache.camel.builder.component.dsl.RestSwaggerComponentBuilderFactory.restSwagger();
+    }
+    /**
+     * JSON Schema Validator (camel-json-validator)
+     * Validates the payload of a message using NetworkNT JSON Schema library.
+     * 
+     * Category: validation
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-json-validator
+     */
+    static org.apache.camel.builder.component.dsl.JsonValidatorComponentBuilderFactory.JsonValidatorComponentBuilder jsonValidator() {
+        return org.apache.camel.builder.component.dsl.JsonValidatorComponentBuilderFactory.jsonValidator();
+    }
+    /**
+     * Slack (camel-slack)
+     * The slack component allows you to send messages to Slack.
+     * 
+     * Category: social
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-slack
+     */
+    static org.apache.camel.builder.component.dsl.SlackComponentBuilderFactory.SlackComponentBuilder slack() {
+        return org.apache.camel.builder.component.dsl.SlackComponentBuilderFactory.slack();
+    }
+    /**
+     * SQL (camel-sql)
+     * The sql component allows you to work with databases using JDBC SQL
+     * queries.
+     * 
+     * Category: database,sql
+     * Since: 1.4
+     * Maven coordinates: org.apache.camel:camel-sql
+     */
+    static org.apache.camel.builder.component.dsl.SqlComponentBuilderFactory.SqlComponentBuilder sql() {
+        return org.apache.camel.builder.component.dsl.SqlComponentBuilderFactory.sql();
+    }
+    /**
+     * Ignite Compute (camel-ignite)
+     * The Ignite Compute endpoint is one of camel-ignite endpoints which allows
+     * you to run compute operations on the cluster by passing in an
+     * IgniteCallable, an IgniteRunnable, an IgniteClosure, or collections of
+     * them, along with their parameters if necessary.
+     * 
+     * Category: nosql,cache,compute
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ignite
+     */
+    static org.apache.camel.builder.component.dsl.IgniteComputeComponentBuilderFactory.IgniteComputeComponentBuilder igniteCompute() {
+        return org.apache.camel.builder.component.dsl.IgniteComputeComponentBuilderFactory.igniteCompute();
+    }
+    /**
+     * Kubernetes HPA (camel-kubernetes)
+     * The Kubernetes HPA component provides a producer to execute kubernetes
+     * hpa operations and a consumer to consume HPA events.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesHPAComponentBuilderFactory.KubernetesHPAComponentBuilder kubernetesHpa() {
+        return org.apache.camel.builder.component.dsl.KubernetesHPAComponentBuilderFactory.kubernetesHpa();
+    }
+    /**
+     * Spring Integration (camel-spring-integration)
+     * Bridges Camel with Spring Integration.
+     * 
+     * Category: spring,eventbus
+     * Since: 1.4
+     * Maven coordinates: org.apache.camel:camel-spring-integration
+     */
+    static org.apache.camel.builder.component.dsl.SpringIntegrationComponentBuilderFactory.SpringIntegrationComponentBuilder springIntegration() {
+        return org.apache.camel.builder.component.dsl.SpringIntegrationComponentBuilderFactory.springIntegration();
+    }
+    /**
+     * Solr (camel-solr)
+     * The solr component allows you to interface with an Apache Lucene Solr
+     * server.
+     * 
+     * Category: monitoring,search
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-solr
+     */
+    static org.apache.camel.builder.component.dsl.SolrSolrComponentBuilderFactory.SolrSolrComponentBuilder solr() {
+        return org.apache.camel.builder.component.dsl.SolrSolrComponentBuilderFactory.solr();
+    }
+    /**
+     * FTP (camel-ftp)
+     * The ftp component is used for uploading or downloading files from FTP
+     * servers.
+     * 
+     * Category: file
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-ftp
+     */
+    static org.apache.camel.builder.component.dsl.FtpComponentBuilderFactory.FtpComponentBuilder ftp() {
+        return org.apache.camel.builder.component.dsl.FtpComponentBuilderFactory.ftp();
+    }
+    /**
+     * Quartz (camel-quartz)
+     * Provides a scheduled delivery of messages using the Quartz 2.x scheduler.
+     * 
+     * Category: scheduling
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-quartz
+     */
+    static org.apache.camel.builder.component.dsl.QuartzComponentBuilderFactory.QuartzComponentBuilder quartz() {
+        return org.apache.camel.builder.component.dsl.QuartzComponentBuilderFactory.quartz();
+    }
+    /**
+     * Salesforce (camel-salesforce)
+     * The salesforce component is used for integrating Camel with the massive
+     * Salesforce API.
+     * 
+     * Category: api,cloud,crm
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-salesforce
+     */
+    static org.apache.camel.builder.component.dsl.SalesforceComponentBuilderFactory.SalesforceComponentBuilder salesforce() {
+        return org.apache.camel.builder.component.dsl.SalesforceComponentBuilderFactory.salesforce();
+    }
+    /**
+     * Solr (Secure) (camel-solr)
+     * The solr component allows you to interface with an Apache Lucene Solr
+     * server.
+     * 
+     * Category: monitoring,search
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-solr
+     */
+    static org.apache.camel.builder.component.dsl.SolrsSolrComponentBuilderFactory.SolrsSolrComponentBuilder solrs() {
+        return org.apache.camel.builder.component.dsl.SolrsSolrComponentBuilderFactory.solrs();
+    }
+    /**
+     * Beanstalk (camel-beanstalk)
+     * The beanstalk component is used for job retrieval and post-processing of
+     * Beanstalk jobs.
+     * 
+     * Category: messaging
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-beanstalk
+     */
+    static org.apache.camel.builder.component.dsl.BeanstalkComponentBuilderFactory.BeanstalkComponentBuilder beanstalk() {
+        return org.apache.camel.builder.component.dsl.BeanstalkComponentBuilderFactory.beanstalk();
+    }
+    /**
+     * SQL Stored Procedure (camel-sql)
+     * The sql component allows you to work with databases using JDBC Stored
+     * Procedure queries.
+     * 
+     * Category: database,sql
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-sql
+     */
+    static org.apache.camel.builder.component.dsl.SqlStoredComponentBuilderFactory.SqlStoredComponentBuilder sqlStored() {
+        return org.apache.camel.builder.component.dsl.SqlStoredComponentBuilderFactory.sqlStored();
+    }
+    /**
+     * Spring Event (camel-spring)
+     * The spring-event component allows to listen for Spring Application
+     * Events.
+     * 
+     * Category: spring,eventbus
+     * Since: 1.4
+     * Maven coordinates: org.apache.camel:camel-spring
+     */
+    static org.apache.camel.builder.component.dsl.EventComponentBuilderFactory.EventComponentBuilder springEvent() {
+        return org.apache.camel.builder.component.dsl.EventComponentBuilderFactory.springEvent();
+    }
+    /**
+     * Mina (camel-mina)
+     * Socket level networking using TCP or UDP with the Apache Mina 2.x
+     * library.
+     * 
+     * Category: networking,tcp,udp
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-mina
+     */
+    static org.apache.camel.builder.component.dsl.MinaComponentBuilderFactory.MinaComponentBuilder mina() {
+        return org.apache.camel.builder.component.dsl.MinaComponentBuilderFactory.mina();
+    }
+    /**
+     * Hazelcast Atomic Number (camel-hazelcast)
+     * The hazelcast-atomicvalue component is used to access Hazelcast atomic
+     * number, which is an object that simply provides a grid wide number
+     * (long).
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastAtomicnumberComponentBuilderFactory.HazelcastAtomicnumberComponentBuilder hazelcastAtomicvalue() {
+        return org.apache.camel.builder.component.dsl.HazelcastAtomicnumberComponentBuilderFactory.hazelcastAtomicvalue();
+    }
+    /**
+     * REST API (camel-rest)
+     * The rest-api component is used for providing Swagger API of the REST
+     * services which has been defined using the rest-dsl in Camel.
+     * 
+     * Category: core,rest
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-rest
+     */
+    static org.apache.camel.builder.component.dsl.RestApiComponentBuilderFactory.RestApiComponentBuilder restApi() {
+        return org.apache.camel.builder.component.dsl.RestApiComponentBuilderFactory.restApi();
+    }
+    /**
+     * MongoDB GridFS (camel-mongodb-gridfs)
+     * Component for working with MongoDB GridFS.
+     * 
+     * Category: database,nosql
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-mongodb-gridfs
+     */
+    static org.apache.camel.builder.component.dsl.GridFsComponentBuilderFactory.GridFsComponentBuilder mongodbGridfs() {
+        return org.apache.camel.builder.component.dsl.GridFsComponentBuilderFactory.mongodbGridfs();
+    }
+    /**
+     * Google Mail (camel-google-mail)
+     * The google-mail component provides access to Google Mail.
+     * 
+     * Category: api,cloud,mail
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-google-mail
+     */
+    static org.apache.camel.builder.component.dsl.GoogleMailComponentBuilderFactory.GoogleMailComponentBuilder googleMail() {
+        return org.apache.camel.builder.component.dsl.GoogleMailComponentBuilderFactory.googleMail();
+    }
+    /**
+     * Kubernetes Secrets (camel-kubernetes)
+     * The Kubernetes Secrets component provides a producer to execute
+     * kubernetes secret operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesSecretsComponentBuilderFactory.KubernetesSecretsComponentBuilder kubernetesSecrets() {
+        return org.apache.camel.builder.component.dsl.KubernetesSecretsComponentBuilderFactory.kubernetesSecrets();
+    }
+    /**
+     * OptaPlanner (camel-optaplanner)
+     * Solves the planning problem contained in a message with OptaPlanner.
+     * 
+     * Category: engine,planning
+     * Since: 2.13
+     * Maven coordinates: org.apache.camel:camel-optaplanner
+     */
+    static org.apache.camel.builder.component.dsl.OptaPlannerComponentBuilderFactory.OptaPlannerComponentBuilder optaplanner() {
+        return org.apache.camel.builder.component.dsl.OptaPlannerComponentBuilderFactory.optaplanner();
+    }
+    /**
+     * ZooKeeper (camel-zookeeper)
+     * The zookeeper component allows interaction with a ZooKeeper cluster.
+     * 
+     * Category: clustering
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-zookeeper
+     */
+    static org.apache.camel.builder.component.dsl.ZooKeeperComponentBuilderFactory.ZooKeeperComponentBuilder zookeeper() {
+        return org.apache.camel.builder.component.dsl.ZooKeeperComponentBuilderFactory.zookeeper();
+    }
+    /**
+     * Docker (camel-docker)
+     * The docker component is used for managing Docker containers.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-docker
+     */
+    static org.apache.camel.builder.component.dsl.DockerComponentBuilderFactory.DockerComponentBuilder docker() {
+        return org.apache.camel.builder.component.dsl.DockerComponentBuilderFactory.docker();
+    }
+    /**
+     * Mock (camel-mock)
+     * The mock component is used for testing routes and mediation rules using
+     * mocks.
+     * 
+     * Category: core,testing
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-mock
+     */
+    static org.apache.camel.builder.component.dsl.MockComponentBuilderFactory.MockComponentBuilder mock() {
+        return org.apache.camel.builder.component.dsl.MockComponentBuilderFactory.mock();
+    }
+    /**
+     * Ignite Events (camel-ignite)
+     * The Ignite Events endpoint is one of camel-ignite endpoints which allows
+     * you to receive events from the Ignite cluster by creating a local event
+     * listener.
+     * 
+     * Category: nosql,cache,compute,messaging,data
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ignite
+     */
+    static org.apache.camel.builder.component.dsl.IgniteEventsComponentBuilderFactory.IgniteEventsComponentBuilder igniteEvents() {
+        return org.apache.camel.builder.component.dsl.IgniteEventsComponentBuilderFactory.igniteEvents();
+    }
+    /**
+     * Jetty (camel-jetty)
+     * To use Jetty as a HTTP server as consumer for Camel routes.
+     * 
+     * Category: http
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-jetty
+     */
+    static org.apache.camel.builder.component.dsl.JettyHttpComponent9BuilderFactory.JettyHttpComponent9Builder jetty() {
+        return org.apache.camel.builder.component.dsl.JettyHttpComponent9BuilderFactory.jetty();
+    }
+    /**
+     * CXF (camel-cxf)
+     * The cxf component is used for SOAP WebServices using Apache CXF.
+     * 
+     * Category: soap,webservice
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-cxf
+     */
+    static org.apache.camel.builder.component.dsl.CxfComponentBuilderFactory.CxfComponentBuilder cxf() {
+        return org.apache.camel.builder.component.dsl.CxfComponentBuilderFactory.cxf();
+    }
+    /**
+     * POP3S (camel-mail)
+     * To send or receive emails using imap/pop3 or smtp protocols.
+     * 
+     * Category: mail
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-mail
+     */
+    static org.apache.camel.builder.component.dsl.Pop3sMailComponentBuilderFactory.Pop3sMailComponentBuilder pop3s() {
+        return org.apache.camel.builder.component.dsl.Pop3sMailComponentBuilderFactory.pop3s();
+    }
+    /**
+     * Ehcache (camel-ehcache)
+     * The ehcache component enables you to perform caching operations using
+     * Ehcache as cache implementation.
+     * 
+     * Category: cache,datagrid,clustering
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-ehcache
+     */
+    static org.apache.camel.builder.component.dsl.EhcacheComponentBuilderFactory.EhcacheComponentBuilder ehcache() {
+        return org.apache.camel.builder.component.dsl.EhcacheComponentBuilderFactory.ehcache();
+    }
+    /**
+     * Ganglia (camel-ganglia)
+     * The ganglia component is used for sending metrics to the Ganglia
+     * monitoring system.
+     * 
+     * Category: monitoring
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-ganglia
+     */
+    static org.apache.camel.builder.component.dsl.GangliaComponentBuilderFactory.GangliaComponentBuilder ganglia() {
+        return org.apache.camel.builder.component.dsl.GangliaComponentBuilderFactory.ganglia();
+    }
+    /**
+     * Spring LDAP (camel-spring-ldap)
+     * The spring-ldap component allows you to perform searches in LDAP servers
+     * using filters as the message payload.
+     * 
+     * Category: spring,ldap
+     * Since: 2.11
+     * Maven coordinates: org.apache.camel:camel-spring-ldap
+     */
+    static org.apache.camel.builder.component.dsl.SpringLdapComponentBuilderFactory.SpringLdapComponentBuilder springLdap() {
+        return org.apache.camel.builder.component.dsl.SpringLdapComponentBuilderFactory.springLdap();
+    }
+    /**
+     * AWS ECS (camel-aws-ecs)
+     * The aws-ecs is used for managing Amazon ECS
+     * 
+     * Category: cloud,management
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-aws-ecs
+     */
+    static org.apache.camel.builder.component.dsl.ECSComponentBuilderFactory.ECSComponentBuilder awsEcs() {
+        return org.apache.camel.builder.component.dsl.ECSComponentBuilderFactory.awsEcs();
+    }
+    /**
+     * AWS SimpleDB (camel-aws-sdb)
+     * The aws-sdb component is for storing and retrieving data from/to Amazon's
+     * SDB service.
+     * 
+     * Category: cloud,database,nosql
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-aws-sdb
+     */
+    static org.apache.camel.builder.component.dsl.SdbComponentBuilderFactory.SdbComponentBuilder awsSdb() {
+        return org.apache.camel.builder.component.dsl.SdbComponentBuilderFactory.awsSdb();
+    }
+    /**
+     * AHC (camel-ahc)
+     * To call external HTTP services using Async Http Client.
+     * 
+     * Category: http
+     * Since: 2.8
+     * Maven coordinates: org.apache.camel:camel-ahc
+     */
+    static org.apache.camel.builder.component.dsl.AhcComponentBuilderFactory.AhcComponentBuilder ahc() {
+        return org.apache.camel.builder.component.dsl.AhcComponentBuilderFactory.ahc();
+    }
+    /**
+     * Bonita (camel-bonita)
+     * Used for communicating with a remote Bonita BPM process engine.
+     * 
+     * Category: process
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-bonita
+     */
+    static org.apache.camel.builder.component.dsl.BonitaComponentBuilderFactory.BonitaComponentBuilder bonita() {
+        return org.apache.camel.builder.component.dsl.BonitaComponentBuilderFactory.bonita();
+    }
+    /**
+     * SSH (camel-ssh)
+     * The ssh component enables access to SSH servers such that you can send an
+     * SSH command, and process the response.
+     * 
+     * Category: file
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-ssh
+     */
+    static org.apache.camel.builder.component.dsl.SshComponentBuilderFactory.SshComponentBuilder ssh() {
+        return org.apache.camel.builder.component.dsl.SshComponentBuilderFactory.ssh();
+    }
+    /**
+     * XSLT Saxon (camel-xslt-saxon)
+     * Transforms the message using a XSLT template using Saxon.
+     * 
+     * Category: core,transformation
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-xslt-saxon
+     */
+    static org.apache.camel.builder.component.dsl.XsltSaxonComponentBuilderFactory.XsltSaxonComponentBuilder xsltSaxon() {
+        return org.apache.camel.builder.component.dsl.XsltSaxonComponentBuilderFactory.xsltSaxon();
+    }
+    /**
+     * Service (camel-service)
+     * Represents an endpoint which is registered to a Service Registry such as
+     * Consul, Etcd.
+     * 
+     * Category: cloud
+     * Since: 2.22
+     * Maven coordinates: org.apache.camel:camel-service
+     */
+    static org.apache.camel.builder.component.dsl.ServiceComponentBuilderFactory.ServiceComponentBuilder service() {
+        return org.apache.camel.builder.component.dsl.ServiceComponentBuilderFactory.service();
+    }
+    /**
+     * IRC (camel-irc)
+     * The irc component implements an IRC (Internet Relay Chat) transport.
+     * 
+     * Category: chat
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-irc
+     */
+    static org.apache.camel.builder.component.dsl.IrcComponentBuilderFactory.IrcComponentBuilder irc() {
+        return org.apache.camel.builder.component.dsl.IrcComponentBuilderFactory.irc();
+    }
+    /**
+     * RabbitMQ (camel-rabbitmq)
+     * The rabbitmq component allows you produce and consume messages from
+     * RabbitMQ instances.
+     * 
+     * Category: messaging
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-rabbitmq
+     */
+    static org.apache.camel.builder.component.dsl.RabbitMQComponentBuilderFactory.RabbitMQComponentBuilder rabbitmq() {
+        return org.apache.camel.builder.component.dsl.RabbitMQComponentBuilderFactory.rabbitmq();
+    }
+    /**
+     * JMX (camel-jmx)
+     * The jmx component allows to receive JMX notifications.
+     * 
+     * Category: monitoring
+     * Since: 2.6
+     * Maven coordinates: org.apache.camel:camel-jmx
+     */
+    static org.apache.camel.builder.component.dsl.JMXComponentBuilderFactory.JMXComponentBuilder jmx() {
+        return org.apache.camel.builder.component.dsl.JMXComponentBuilderFactory.jmx();
+    }
+    /**
+     * OSGi PAX Logging (camel-paxlogging)
+     * The paxlogging component can be used in an OSGi environment to receive
+     * PaxLogging events and process them.
+     * 
+     * Category: monitoring
+     * Since: 2.6
+     * Maven coordinates: org.apache.camel:camel-paxlogging
+     */
+    static org.apache.camel.builder.component.dsl.PaxLoggingComponentBuilderFactory.PaxLoggingComponentBuilder paxlogging() {
+        return org.apache.camel.builder.component.dsl.PaxLoggingComponentBuilderFactory.paxlogging();
+    }
+    /**
+     * SIP (camel-sip)
+     * To send and receive messages using the SIP protocol (used in telco and
+     * mobile).
+     * 
+     * Category: mobile
+     * Since: 2.5
+     * Maven coordinates: org.apache.camel:camel-sip
+     */
+    static org.apache.camel.builder.component.dsl.SipSipComponentBuilderFactory.SipSipComponentBuilder sip() {
+        return org.apache.camel.builder.component.dsl.SipSipComponentBuilderFactory.sip();
+    }
+    /**
+     * Vert.x (camel-vertx)
+     * The vertx component is used for sending and receive messages from a vertx
+     * event bus.
+     * 
+     * Category: eventbus,reactive
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-vertx
+     */
+    static org.apache.camel.builder.component.dsl.VertxComponentBuilderFactory.VertxComponentBuilder vertx() {
+        return org.apache.camel.builder.component.dsl.VertxComponentBuilderFactory.vertx();
+    }
+    /**
+     * Braintree (camel-braintree)
+     * The braintree component is used for integrating with the Braintree
+     * Payment System.
+     * 
+     * Category: api,cloud,payment
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-braintree
+     */
+    static org.apache.camel.builder.component.dsl.BraintreeComponentBuilderFactory.BraintreeComponentBuilder braintree() {
+        return org.apache.camel.builder.component.dsl.BraintreeComponentBuilderFactory.braintree();
+    }
+    /**
+     * Splunk (camel-splunk)
+     * The splunk component allows to publish or search for events in Splunk.
+     * 
+     * Category: log,monitoring
+     * Since: 2.13
+     * Maven coordinates: org.apache.camel:camel-splunk
+     */
+    static org.apache.camel.builder.component.dsl.SplunkComponentBuilderFactory.SplunkComponentBuilder splunk() {
+        return org.apache.camel.builder.component.dsl.SplunkComponentBuilderFactory.splunk();
+    }
+    /**
+     * ZooKeeper Master (camel-zookeeper-master)
+     * Represents an endpoint which only becomes active when it obtains the
+     * master lock
+     * 
+     * Category: clustering
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-zookeeper-master
+     */
+    static org.apache.camel.builder.component.dsl.MasterComponentBuilderFactory.MasterComponentBuilder zookeeperMaster() {
+        return org.apache.camel.builder.component.dsl.MasterComponentBuilderFactory.zookeeperMaster();
+    }
+    /**
+     * OpenStack Nova (camel-openstack)
+     * The openstack-nova component allows messages to be sent to an OpenStack
+     * compute services.
+     * 
+     * Category: cloud,paas
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-openstack
+     */
+    static org.apache.camel.builder.component.dsl.NovaComponentBuilderFactory.NovaComponentBuilder openstackNova() {
+        return org.apache.camel.builder.component.dsl.NovaComponentBuilderFactory.openstackNova();
+    }
+    /**
+     * ChatScript (camel-chatscript)
+     * Represents a ChatScript endpoint.
+     * 
+     * Category: ai,chatscript
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-chatscript
+     */
+    static org.apache.camel.builder.component.dsl.ChatScriptComponentBuilderFactory.ChatScriptComponentBuilder chatscript() {
+        return org.apache.camel.builder.component.dsl.ChatScriptComponentBuilderFactory.chatscript();
+    }
+    /**
+     * CoAP (camel-coap)
+     * The coap component is used for sending and receiving messages from COAP
+     * capable devices.
+     * 
+     * Category: iot
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-coap
+     */
+    static org.apache.camel.builder.component.dsl.CoapTcpCoAPComponentBuilderFactory.CoapTcpCoAPComponentBuilder coapTcp() {
+        return org.apache.camel.builder.component.dsl.CoapTcpCoAPComponentBuilderFactory.coapTcp();
+    }
+    /**
+     * Browse (camel-browse)
+     * The browse component is used for viewing the messages received on
+     * endpoints that supports BrowsableEndpoint.
+     * 
+     * Category: core,monitoring
+     * Since: 1.3
+     * Maven coordinates: org.apache.camel:camel-browse
+     */
+    static org.apache.camel.builder.component.dsl.BrowseComponentBuilderFactory.BrowseComponentBuilder browse() {
+        return org.apache.camel.builder.component.dsl.BrowseComponentBuilderFactory.browse();
+    }
+    /**
+     * AWS KMS (camel-aws-kms)
+     * The aws-kms is used for managing Amazon KMS
+     * 
+     * Category: cloud,management
+     * Since: 2.21
+     * Maven coordinates: org.apache.camel:camel-aws-kms
+     */
+    static org.apache.camel.builder.component.dsl.KMSComponentBuilderFactory.KMSComponentBuilder awsKms() {
+        return org.apache.camel.builder.component.dsl.KMSComponentBuilderFactory.awsKms();
+    }
+    /**
+     * Kubernetes Resources Quota (camel-kubernetes)
+     * The Kubernetes Resources Quota component provides a producer to execute
+     * kubernetes resources quota operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesResourcesQuotaComponentBuilderFactory.KubernetesResourcesQuotaComponentBuilder kubernetesResourcesQuota() {
+        return org.apache.camel.builder.component.dsl.KubernetesResourcesQuotaComponentBuilderFactory.kubernetesResourcesQuota();
+    }
+    /**
+     * JMS (camel-jms)
+     * The jms component allows messages to be sent to (or consumed from) a JMS
+     * Queue or Topic.
+     * 
+     * Category: messaging
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-jms
+     */
+    static org.apache.camel.builder.component.dsl.JmsComponentBuilderFactory.JmsComponentBuilder jms() {
+        return org.apache.camel.builder.component.dsl.JmsComponentBuilderFactory.jms();
+    }
+    /**
+     * Kubernetes Persistent Volume Claim (camel-kubernetes)
+     * The Kubernetes Persistent Volumes Claims component provides a producer to
+     * execute kubernetes persistent volume claim operations.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesPersistentVolumesClaimsComponentBuilderFactory.KubernetesPersistentVolumesClaimsComponentBuilder kubernetesPersistentVolumesClaims() {
+        return org.apache.camel.builder.component.dsl.KubernetesPersistentVolumesClaimsComponentBuilderFactory.kubernetesPersistentVolumesClaims();
+    }
+    /**
+     * LDAP (camel-ldap)
+     * The ldap component allows you to perform searches in LDAP servers using
+     * filters as the message payload.
+     * 
+     * Category: ldap
+     * Since: 1.5
+     * Maven coordinates: org.apache.camel:camel-ldap
+     */
+    static org.apache.camel.builder.component.dsl.LdapComponentBuilderFactory.LdapComponentBuilder ldap() {
+        return org.apache.camel.builder.component.dsl.LdapComponentBuilderFactory.ldap();
+    }
+    /**
+     * Azure Storage Blob Service (camel-azure)
+     * The azure-blob component is used for storing and retrieving blobs from
+     * Azure Storage Blob Service.
+     * 
+     * Category: cloud,database,nosql
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-azure
+     */
+    static org.apache.camel.builder.component.dsl.BlobServiceComponentBuilderFactory.BlobServiceComponentBuilder azureBlob() {
+        return org.apache.camel.builder.component.dsl.BlobServiceComponentBuilderFactory.azureBlob();
+    }
+    /**
+     * AMQP (camel-amqp)
+     * Messaging with AMQP protocol using Apache QPid Client.
+     * 
+     * Category: messaging
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-amqp
+     */
+    static org.apache.camel.builder.component.dsl.AMQPComponentBuilderFactory.AMQPComponentBuilder amqp() {
+        return org.apache.camel.builder.component.dsl.AMQPComponentBuilderFactory.amqp();
+    }
+    /**
+     * AWS S3 Storage Service (camel-aws-s3)
+     * The aws-s3 component is used for storing and retrieving object from
+     * Amazon S3 Storage Service.
+     * 
+     * Category: cloud,file
+     * Since: 2.8
+     * Maven coordinates: org.apache.camel:camel-aws-s3
+     */
+    static org.apache.camel.builder.component.dsl.S3ComponentBuilderFactory.S3ComponentBuilder awsS3() {
+        return org.apache.camel.builder.component.dsl.S3ComponentBuilderFactory.awsS3();
+    }
+    /**
+     * AWS MQ (camel-aws-mq)
+     * The aws-mq is used for managing Amazon MQ instances.
+     * 
+     * Category: cloud,management
+     * Since: 2.21
+     * Maven coordinates: org.apache.camel:camel-aws-mq
+     */
+    static org.apache.camel.builder.component.dsl.MQComponentBuilderFactory.MQComponentBuilder awsMq() {
+        return org.apache.camel.builder.component.dsl.MQComponentBuilderFactory.awsMq();
+    }
+    /**
+     * MVEL (camel-mvel)
+     * Transforms the message using a MVEL template.
+     * 
+     * Category: transformation,script
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-mvel
+     */
+    static org.apache.camel.builder.component.dsl.MvelComponentBuilderFactory.MvelComponentBuilder mvel() {
+        return org.apache.camel.builder.component.dsl.MvelComponentBuilderFactory.mvel();
+    }
+    /**
+     * Ref (camel-ref)
+     * The ref component is used for lookup of existing endpoints bound in the
+     * Registry.
+     * 
+     * Category: core,endpoint
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-ref
+     */
+    static org.apache.camel.builder.component.dsl.RefComponentBuilderFactory.RefComponentBuilder ref() {
+        return org.apache.camel.builder.component.dsl.RefComponentBuilderFactory.ref();
+    }
+    /**
+     * IPFS (camel-ipfs)
+     * The camel-ipfs component provides access to the Interplanetary File
+     * System (IPFS).
+     * 
+     * Category: file,ipfs
+     * Since: 2.23
+     * Maven coordinates: org.apache.camel:camel-ipfs
+     */
+    static org.apache.camel.builder.component.dsl.IPFSComponentBuilderFactory.IPFSComponentBuilder ipfs() {
+        return org.apache.camel.builder.component.dsl.IPFSComponentBuilderFactory.ipfs();
+    }
+    /**
+     * Atomix MultiMap (camel-atomix)
+     * The atomix-multimap component is used to access Atomix's distributed
+     * multi map.
+     * 
+     * Category: clustering
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-atomix
+     */
+    static org.apache.camel.builder.component.dsl.AtomixMultiMapComponentBuilderFactory.AtomixMultiMapComponentBuilder atomixMultimap() {
+        return org.apache.camel.builder.component.dsl.AtomixMultiMapComponentBuilderFactory.atomixMultimap();
+    }
+    /**
+     * Lucene (camel-lucene)
+     * To insert or query from Apache Lucene databases.
+     * 
+     * Category: database,search
+     * Since: 2.2
+     * Maven coordinates: org.apache.camel:camel-lucene
+     */
+    static org.apache.camel.builder.component.dsl.LuceneComponentBuilderFactory.LuceneComponentBuilder lucene() {
+        return org.apache.camel.builder.component.dsl.LuceneComponentBuilderFactory.lucene();
+    }
+    /**
+     * AWS Simple Email Service (camel-aws-ses)
+     * The aws-ses component is used for sending emails with Amazon's SES
+     * service.
+     * 
+     * Category: cloud,mail
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-aws-ses
+     */
+    static org.apache.camel.builder.component.dsl.SesComponentBuilderFactory.SesComponentBuilder awsSes() {
+        return org.apache.camel.builder.component.dsl.SesComponentBuilderFactory.awsSes();
+    }
+    /**
+     * Zendesk (camel-zendesk)
+     * Allows producing messages to manage Zendesk ticket, user, organization,
+     * etc.
+     * 
+     * Category: api,support,cloud
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-zendesk
+     */
+    static org.apache.camel.builder.component.dsl.ZendeskComponentBuilderFactory.ZendeskComponentBuilder zendesk() {
+        return org.apache.camel.builder.component.dsl.ZendeskComponentBuilderFactory.zendesk();
+    }
+    /**
+     * Crypto CMS (camel-crypto-cms)
+     * The crypto cms component is used for encrypting data in CMS Enveloped
+     * Data format, decrypting CMS Enveloped Data, signing data in CMS Signed
+     * Data format, and verifying CMS Signed Data.
+     * 
+     * Category: security,transformation
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-crypto-cms
+     */
+    @Deprecated
+    static org.apache.camel.builder.component.dsl.CryptoCmsComponentBuilderFactory.CryptoCmsComponentBuilder cryptoCms() {
+        return org.apache.camel.builder.component.dsl.CryptoCmsComponentBuilderFactory.cryptoCms();
+    }
+    /**
+     * Pulsar (camel-pulsar)
+     * Camel Apache Pulsar Component
+     * 
+     * Category: messaging
+     * Since: 2.24
+     * Maven coordinates: org.apache.camel:camel-pulsar
+     */
+    static org.apache.camel.builder.component.dsl.PulsarComponentBuilderFactory.PulsarComponentBuilder pulsar() {
+        return org.apache.camel.builder.component.dsl.PulsarComponentBuilderFactory.pulsar();
+    }
+    /**
+     * JGroups (camel-jgroups)
+     * The jgroups component provides exchange of messages between Camel and
+     * JGroups clusters.
+     * 
+     * Category: clustering,messaging
+     * Since: 2.13
+     * Maven coordinates: org.apache.camel:camel-jgroups
+     */
+    static org.apache.camel.builder.component.dsl.JGroupsComponentBuilderFactory.JGroupsComponentBuilder jgroups() {
+        return org.apache.camel.builder.component.dsl.JGroupsComponentBuilderFactory.jgroups();
+    }
+    /**
+     * Stub (camel-stub)
+     * The stub component provides a simple way to stub out any physical
+     * endpoints while in development or testing.
+     * 
+     * Category: core,testing
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-stub
+     */
+    static org.apache.camel.builder.component.dsl.StubComponentBuilderFactory.StubComponentBuilder stub() {
+        return org.apache.camel.builder.component.dsl.StubComponentBuilderFactory.stub();
+    }
+    /**
+     * Paho (camel-paho)
+     * Component for communicating with MQTT message brokers using Eclipse Paho
+     * MQTT Client.
+     * 
+     * Category: messaging,iot
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-paho
+     */
+    static org.apache.camel.builder.component.dsl.PahoComponentBuilderFactory.PahoComponentBuilder paho() {
+        return org.apache.camel.builder.component.dsl.PahoComponentBuilderFactory.paho();
+    }
+    /**
+     * Debezium PostgresSQL Connector (camel-debezium-postgres)
+     * Represents a Debezium PostgresSQL endpoint which is used to capture
+     * changes in PostgresSQL database so that that applications can see those
+     * changes and respond to them.
+     * 
+     * Category: database,sql,postgres
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-debezium-postgres
+     */
+    static org.apache.camel.builder.component.dsl.DebeziumPostgresComponentBuilderFactory.DebeziumPostgresComponentBuilder debeziumPostgres() {
+        return org.apache.camel.builder.component.dsl.DebeziumPostgresComponentBuilderFactory.debeziumPostgres();
+    }
+    /**
+     * CXF-RS (camel-cxf)
+     * The cxfrs component is used for JAX-RS REST services using Apache CXF.
+     * 
+     * Category: rest
+     * Since: 2.0
+     * Maven coordinates: org.apache.camel:camel-cxf
+     */
+    static org.apache.camel.builder.component.dsl.CxfRsComponentBuilderFactory.CxfRsComponentBuilder cxfrs() {
+        return org.apache.camel.builder.component.dsl.CxfRsComponentBuilderFactory.cxfrs();
+    }
+    /**
+     * JClouds (camel-jclouds)
+     * For interacting with cloud compute & blobstore service via jclouds.
+     * 
+     * Category: api,cloud
+     * Since: 2.9
+     * Maven coordinates: org.apache.camel:camel-jclouds
+     */
+    static org.apache.camel.builder.component.dsl.JcloudsComponentBuilderFactory.JcloudsComponentBuilder jclouds() {
+        return org.apache.camel.builder.component.dsl.JcloudsComponentBuilderFactory.jclouds();
+    }
+    /**
+     * Hipchat (camel-hipchat)
+     * The hipchat component supports producing and consuming messages from/to
+     * Hipchat service.
+     * 
+     * Category: api,cloud
+     * Since: 2.15
+     * Maven coordinates: org.apache.camel:camel-hipchat
+     */
+    static org.apache.camel.builder.component.dsl.HipchatComponentBuilderFactory.HipchatComponentBuilder hipchat() {
+        return org.apache.camel.builder.component.dsl.HipchatComponentBuilderFactory.hipchat();
+    }
+    /**
+     * Simple JMS Batch (camel-sjms)
+     * The sjms-batch component is a specialized for highly performant,
+     * transactional batch consumption from a JMS queue.
+     * 
+     * Category: messaging
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-sjms
+     */
+    static org.apache.camel.builder.component.dsl.SjmsBatchComponentBuilderFactory.SjmsBatchComponentBuilder sjmsBatch() {
+        return org.apache.camel.builder.component.dsl.SjmsBatchComponentBuilderFactory.sjmsBatch();
+    }
+    /**
+     * MongoDB (camel-mongodb)
+     * Component for working with documents stored in MongoDB database.
+     * 
+     * Category: database,nosql
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-mongodb
+     */
+    static org.apache.camel.builder.component.dsl.MongoDbComponentBuilderFactory.MongoDbComponentBuilder mongodb() {
+        return org.apache.camel.builder.component.dsl.MongoDbComponentBuilderFactory.mongodb();
+    }
+    /**
+     * Nagios (camel-nagios)
+     * To send passive checks to Nagios using JSendNSCA.
+     * 
+     * Category: monitoring
+     * Since: 2.3
+     * Maven coordinates: org.apache.camel:camel-nagios
+     */
+    static org.apache.camel.builder.component.dsl.NagiosComponentBuilderFactory.NagiosComponentBuilder nagios() {
+        return org.apache.camel.builder.component.dsl.NagiosComponentBuilderFactory.nagios();
+    }
+    /**
+     * HTTP (camel-http)
+     * For calling out to external HTTP servers using Apache HTTP Client 4.x.
+     * 
+     * Category: http
+     * Since: 2.3
+     * Maven coordinates: org.apache.camel:camel-http
+     */
+    static org.apache.camel.builder.component.dsl.HttpHttpComponentBuilderFactory.HttpHttpComponentBuilder http() {
+        return org.apache.camel.builder.component.dsl.HttpHttpComponentBuilderFactory.http();
+    }
+    /**
+     * Facebook (camel-facebook)
+     * The Facebook component provides access to all of the Facebook APIs
+     * accessible using Facebook4J.
+     * 
+     * Category: social
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-facebook
+     */
+    static org.apache.camel.builder.component.dsl.FacebookComponentBuilderFactory.FacebookComponentBuilder facebook() {
+        return org.apache.camel.builder.component.dsl.FacebookComponentBuilderFactory.facebook();
+    }
+    /**
+     * IMAP (camel-mail)
+     * To send or receive emails using imap/pop3 or smtp protocols.
+     * 
+     * Category: mail
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-mail
+     */
+    static org.apache.camel.builder.component.dsl.ImapMailComponentBuilderFactory.ImapMailComponentBuilder imap() {
+        return org.apache.camel.builder.component.dsl.ImapMailComponentBuilderFactory.imap();
+    }
+    /**
+     * Printer (camel-printer)
+     * The printer component is used for sending messages to printers as print
+     * jobs.
+     * 
+     * Category: printing
+     * Since: 2.1
+     * Maven coordinates: org.apache.camel:camel-printer
+     */
+    static org.apache.camel.builder.component.dsl.PrinterComponentBuilderFactory.PrinterComponentBuilder lpr() {
+        return org.apache.camel.builder.component.dsl.PrinterComponentBuilderFactory.lpr();
+    }
+    /**
+     * IEC 60870 Server (camel-iec60870)
+     * IEC 60870 component used for telecontrol (supervisory control and data
+     * acquisition) such as controlling electric power transmission grids and
+     * other geographically widespread control systems.
+     * 
+     * Category: iot
+     * Since: 2.20
+     * Maven coordinates: org.apache.camel:camel-iec60870
+     */
+    static org.apache.camel.builder.component.dsl.ServerComponentBuilderFactory.ServerComponentBuilder iec60870Server() {
+        return org.apache.camel.builder.component.dsl.ServerComponentBuilderFactory.iec60870Server();
+    }
+    /**
+     * Olingo4 (camel-olingo4)
+     * Communicates with OData 4.0 services using Apache Olingo OData API.
+     * 
+     * Category: cloud
+     * Since: 2.19
+     * Maven coordinates: org.apache.camel:camel-olingo4
+     */
+    static org.apache.camel.builder.component.dsl.Olingo4ComponentBuilderFactory.Olingo4ComponentBuilder olingo4() {
+        return org.apache.camel.builder.component.dsl.Olingo4ComponentBuilderFactory.olingo4();
+    }
+    /**
+     * Hazelcast Map (camel-hazelcast)
+     * The hazelcast-map component is used to access Hazelcast distributed map.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastMapComponentBuilderFactory.HazelcastMapComponentBuilder hazelcastMap() {
+        return org.apache.camel.builder.component.dsl.HazelcastMapComponentBuilderFactory.hazelcastMap();
+    }
+    /**
+     * AWS EC2 (camel-aws-ec2)
+     * The aws-ec2 is used for managing Amazon EC2 instances.
+     * 
+     * Category: cloud,management
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-aws-ec2
+     */
+    static org.apache.camel.builder.component.dsl.EC2ComponentBuilderFactory.EC2ComponentBuilder awsEc2() {
+        return org.apache.camel.builder.component.dsl.EC2ComponentBuilderFactory.awsEc2();
+    }
+    /**
+     * Elastichsearch Rest (camel-elasticsearch-rest)
+     * The elasticsearch component is used for interfacing with ElasticSearch
+     * server using REST API.
+     * 
+     * Category: monitoring,search
+     * Since: 2.21
+     * Maven coordinates: org.apache.camel:camel-elasticsearch-rest
+     */
+    static org.apache.camel.builder.component.dsl.ElasticsearchComponentBuilderFactory.ElasticsearchComponentBuilder elasticsearchRest() {
+        return org.apache.camel.builder.component.dsl.ElasticsearchComponentBuilderFactory.elasticsearchRest();
+    }
+    /**
+     * Disruptor VM (camel-disruptor)
+     * The disruptor component provides asynchronous SEDA behavior using LMAX
+     * Disruptor.
+     * 
+     * Category: endpoint
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-disruptor
+     */
+    static org.apache.camel.builder.component.dsl.DisruptorVmComponentBuilderFactory.DisruptorVmComponentBuilder disruptorVm() {
+        return org.apache.camel.builder.component.dsl.DisruptorVmComponentBuilderFactory.disruptorVm();
+    }
+    /**
+     * SNMP (camel-snmp)
+     * The snmp component gives you the ability to poll SNMP capable devices or
+     * receiving traps.
+     * 
+     * Category: monitoring
+     * Since: 2.1
+     * Maven coordinates: org.apache.camel:camel-snmp
+     */
+    static org.apache.camel.builder.component.dsl.SnmpComponentBuilderFactory.SnmpComponentBuilder snmp() {
+        return org.apache.camel.builder.component.dsl.SnmpComponentBuilderFactory.snmp();
+    }
+    /**
+     * IronMQ (camel-ironmq)
+     * The ironmq provides integration with IronMQ an elastic and durable hosted
+     * message queue as a service.
+     * 
+     * Category: cloud,messaging
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-ironmq
+     */
+    static org.apache.camel.builder.component.dsl.IronMQComponentBuilderFactory.IronMQComponentBuilder ironmq() {
+        return org.apache.camel.builder.component.dsl.IronMQComponentBuilderFactory.ironmq();
+    }
+    /**
+     * REST (camel-rest)
+     * The rest component is used for either hosting REST services (consumer) or
+     * calling external REST services (producer).
+     * 
+     * Category: core,rest
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-rest
+     */
+    static org.apache.camel.builder.component.dsl.RestComponentBuilderFactory.RestComponentBuilder restEndpoint() {
+        return org.apache.camel.builder.component.dsl.RestComponentBuilderFactory.restEndpoint();
+    }
+    /**
+     * HTTPS (Secure) (camel-http)
+     * For calling out to external HTTP servers using Apache HTTP Client 4.x.
+     * 
+     * Category: http
+     * Since: 2.3
+     * Maven coordinates: org.apache.camel:camel-http
+     */
+    static org.apache.camel.builder.component.dsl.HttpsHttpComponentBuilderFactory.HttpsHttpComponentBuilder https() {
+        return org.apache.camel.builder.component.dsl.HttpsHttpComponentBuilderFactory.https();
+    }
+    /**
+     * Twitter Timeline (camel-twitter)
+     * The Twitter Timeline component consumes twitter timeline or update the
+     * status of specific user.
+     * 
+     * Category: api,social
+     * Since: 2.10
+     * Maven coordinates: org.apache.camel:camel-twitter
+     */
+    static org.apache.camel.builder.component.dsl.TwitterTimelineComponentBuilderFactory.TwitterTimelineComponentBuilder twitterTimeline() {
+        return org.apache.camel.builder.component.dsl.TwitterTimelineComponentBuilderFactory.twitterTimeline();
+    }
+    /**
+     * AWS CloudWatch (camel-aws-cw)
+     * The aws-cw component is used for sending metrics to an Amazon CloudWatch.
+     * 
+     * Category: cloud,monitoring
+     * Since: 2.11
+     * Maven coordinates: org.apache.camel:camel-aws-cw
+     */
+    static org.apache.camel.builder.component.dsl.CwComponentBuilderFactory.CwComponentBuilder awsCw() {
+        return org.apache.camel.builder.component.dsl.CwComponentBuilderFactory.awsCw();
+    }
+    /**
+     * MicroProfile Metrics (camel-microprofile-metrics)
+     * Camel metrics exposed with Eclipse MicroProfile Metrics
+     * 
+     * Category: monitoring
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-microprofile-metrics
+     */
+    static org.apache.camel.builder.component.dsl.MicroProfileMetricsComponentBuilderFactory.MicroProfileMetricsComponentBuilder microprofileMetrics() {
+        return org.apache.camel.builder.component.dsl.MicroProfileMetricsComponentBuilderFactory.microprofileMetrics();
+    }
+    /**
+     * XChange (camel-xchange)
+     * The camel-xchange component provide access to many bitcoin and altcoin
+     * exchanges for trading and accessing market data.
+     * 
+     * Category: bitcoin,blockchain
+     * Since: 2.21
+     * Maven coordinates: org.apache.camel:camel-xchange
+     */
+    static org.apache.camel.builder.component.dsl.XChangeComponentBuilderFactory.XChangeComponentBuilder xchange() {
+        return org.apache.camel.builder.component.dsl.XChangeComponentBuilderFactory.xchange();
+    }
+    /**
+     * AWS DynamoDB Streams (camel-aws-ddb)
+     * The aws-ddbstream component is used for working with Amazon DynamoDB
+     * Streams.
+     * 
+     * Category: cloud,messaging,streams
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-aws-ddb
+     */
+    static org.apache.camel.builder.component.dsl.DdbStreamComponentBuilderFactory.DdbStreamComponentBuilder awsDdbstream() {
+        return org.apache.camel.builder.component.dsl.DdbStreamComponentBuilderFactory.awsDdbstream();
+    }
+    /**
+     * Web3j Ethereum Blockchain (camel-web3j)
+     * The web3j component uses the Web3j client API and allows you to add/read
+     * nodes to/from a web3j compliant content repositories.
+     * 
+     * Category: bitcoin,blockchain
+     * Since: 2.22
+     * Maven coordinates: org.apache.camel:camel-web3j
+     */
+    static org.apache.camel.builder.component.dsl.Web3jComponentBuilderFactory.Web3jComponentBuilder web3j() {
+        return org.apache.camel.builder.component.dsl.Web3jComponentBuilderFactory.web3j();
+    }
+    /**
+     * Kubernetes Nodes (camel-kubernetes)
+     * The Kubernetes Nodes component provides a producer to execute kubernetes
+     * node operations and a consumer to consume node events.
+     * 
+     * Category: container,cloud,paas
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-kubernetes
+     */
+    static org.apache.camel.builder.component.dsl.KubernetesNodesComponentBuilderFactory.KubernetesNodesComponentBuilder kubernetesNodes() {
+        return org.apache.camel.builder.component.dsl.KubernetesNodesComponentBuilderFactory.kubernetesNodes();
+    }
+    /**
+     * AWS 2 ECS (camel-aws2-ecs)
+     * The aws2-ecs is used for managing Amazon ECS
+     * 
+     * Category: cloud,management
+     * Since: 3.1
+     * Maven coordinates: org.apache.camel:camel-aws2-ecs
+     */
+    static org.apache.camel.builder.component.dsl.ECS2ComponentBuilderFactory.ECS2ComponentBuilder aws2Ecs() {
+        return org.apache.camel.builder.component.dsl.ECS2ComponentBuilderFactory.aws2Ecs();
+    }
+    /**
+     * Spark (camel-spark)
+     * The spark component can be used to send RDD or DataFrame jobs to Apache
+     * Spark cluster.
+     * 
+     * Category: bigdata,iot
+     * Since: 2.17
+     * Maven coordinates: org.apache.camel:camel-spark
+     */
+    static org.apache.camel.builder.component.dsl.SparkComponentBuilderFactory.SparkComponentBuilder spark() {
+        return org.apache.camel.builder.component.dsl.SparkComponentBuilderFactory.spark();
+    }
+    /**
+     * Robot Framework (camel-robotframework)
+     * Represents a RobotFramework endpoint.
+     * 
+     * Category: testing
+     * Since: 3.0
+     * Maven coordinates: org.apache.camel:camel-robotframework
+     */
+    static org.apache.camel.builder.component.dsl.RobotFrameworkComponentBuilderFactory.RobotFrameworkComponentBuilder robotframework() {
+        return org.apache.camel.builder.component.dsl.RobotFrameworkComponentBuilderFactory.robotframework();
+    }
+    /**
+     * Lumberjack (camel-lumberjack)
+     * The lumberjack retrieves logs sent over the network using the Lumberjack
+     * protocol.
+     * 
+     * Category: log
+     * Since: 2.18
+     * Maven coordinates: org.apache.camel:camel-lumberjack
+     */
+    static org.apache.camel.builder.component.dsl.LumberjackComponentBuilderFactory.LumberjackComponentBuilder lumberjack() {
+        return org.apache.camel.builder.component.dsl.LumberjackComponentBuilderFactory.lumberjack();
+    }
+    /**
+     * SFTP (camel-ftp)
+     * The sftp (FTP over SSH) component is used for uploading or downloading
+     * files from SFTP servers.
+     * 
+     * Category: file
+     * Since: 1.1
+     * Maven coordinates: org.apache.camel:camel-ftp
+     */
+    static org.apache.camel.builder.component.dsl.SftpComponentBuilderFactory.SftpComponentBuilder sftp() {
+        return org.apache.camel.builder.component.dsl.SftpComponentBuilderFactory.sftp();
+    }
+    /**
+     * CoAP (Secure) (camel-coap)
+     * The coap component is used for sending and receiving messages from COAP
+     * capable devices.
+     * 
+     * Category: iot
+     * Since: 2.16
+     * Maven coordinates: org.apache.camel:camel-coap
+     */
+    static org.apache.camel.builder.component.dsl.CoapsCoAPComponentBuilderFactory.CoapsCoAPComponentBuilder coaps() {
+        return org.apache.camel.builder.component.dsl.CoapsCoAPComponentBuilderFactory.coaps();
+    }
+    /**
+     * APNS (camel-apns)
+     * For sending notifications to Apple iOS devices.
+     * 
+     * Category: eventbus,mobile
+     * Since: 2.8
+     * Maven coordinates: org.apache.camel:camel-apns
+     */
+    static org.apache.camel.builder.component.dsl.ApnsComponentBuilderFactory.ApnsComponentBuilder apns() {
+        return org.apache.camel.builder.component.dsl.ApnsComponentBuilderFactory.apns();
+    }
+    /**
+     * Timer (camel-timer)
+     * The timer component is used for generating message exchanges when a timer
+     * fires.
+     * 
+     * Category: core,scheduling
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-timer
+     */
+    static org.apache.camel.builder.component.dsl.TimerComponentBuilderFactory.TimerComponentBuilder timer() {
+        return org.apache.camel.builder.component.dsl.TimerComponentBuilderFactory.timer();
+    }
+    /**
+     * CouchDB (camel-couchdb)
+     * The couchdb component is used for integrate with CouchDB databases.
+     * 
+     * Category: database,nosql
+     * Since: 2.11
+     * Maven coordinates: org.apache.camel:camel-couchdb
+     */
+    static org.apache.camel.builder.component.dsl.CouchDbComponentBuilderFactory.CouchDbComponentBuilder couchdb() {
+        return org.apache.camel.builder.component.dsl.CouchDbComponentBuilderFactory.couchdb();
+    }
+    /**
+     * Hazelcast Set (camel-hazelcast)
+     * The hazelcast-set component is used to access Hazelcast distributed set.
+     * 
+     * Category: cache,datagrid
+     * Since: 2.7
+     * Maven coordinates: org.apache.camel:camel-hazelcast
+     */
+    static org.apache.camel.builder.component.dsl.HazelcastSetComponentBuilderFactory.HazelcastSetComponentBuilder hazelcastSet() {
+        return org.apache.camel.builder.component.dsl.HazelcastSetComponentBuilderFactory.hazelcastSet();
+    }
+    /**
+     * Yammer (camel-yammer)
+     * The yammer component allows you to interact with the Yammer enterprise
+     * social network.
+     * 
+     * Category: social
+     * Since: 2.12
+     * Maven coordinates: org.apache.camel:camel-yammer
+     */
+    static org.apache.camel.builder.component.dsl.YammerComponentBuilderFactory.YammerComponentBuilder yammer() {
+        return org.apache.camel.builder.component.dsl.YammerComponentBuilderFactory.yammer();
+    }
+    /**
+     * MyBatis Bean (camel-mybatis)
+     * Performs a query, insert, update or delete in a relational database using
+     * MyBatis.
+     * 
+     * Category: database,sql
+     * Since: 2.22
+     * Maven coordinates: org.apache.camel:camel-mybatis
+     */
+    static org.apache.camel.builder.component.dsl.MyBatisBeanComponentBuilderFactory.MyBatisBeanComponentBuilder mybatisBean() {
+        return org.apache.camel.builder.component.dsl.MyBatisBeanComponentBuilderFactory.mybatisBean();
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AMQPComponentBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AMQPComponentBuilderFactory.java
new file mode 100644
index 0000000..29cabcc
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AMQPComponentBuilderFactory.java
@@ -0,0 +1,1505 @@
+/*
+ * 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.builder.component.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.amqp.AMQPComponent;
+
+/**
+ * Messaging with AMQP protocol using Apache QPid Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface AMQPComponentBuilderFactory {
+
+    /**
+     * AMQP (camel-amqp)
+     * Messaging with AMQP protocol using Apache QPid Client.
+     * 
+     * Category: messaging
+     * Since: 1.2
+     * Maven coordinates: org.apache.camel:camel-amqp
+     */
+    static AMQPComponentBuilder amqp() {
+        return new AMQPComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the AMQP component.
+     */
+    interface AMQPComponentBuilder extends ComponentBuilder<AMQPComponent> {
+        /**
+         * Whether to include AMQP annotations when mapping from AMQP to Camel
+         * Message. Setting this to true will map AMQP message annotations to
+         * message headers. Due to limitations in Apache Qpid JMS API, currently
+         * delivery annotations are ignored.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: common
+         */
+        default AMQPComponentBuilder includeAmqpAnnotations(
+                boolean includeAmqpAnnotations) {
+            doSetProperty("includeAmqpAnnotations", includeAmqpAnnotations);
+            return this;
+        }
+        /**
+         * Whether to auto-discover ConnectionFactory from the registry, if no
+         * connection factory has been configured. If only one instance of
+         * ConnectionFactory is found then it will be used. This is enabled by
+         * default.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder allowAutoWiredConnectionFactory(
+                boolean allowAutoWiredConnectionFactory) {
+            doSetProperty("allowAutoWiredConnectionFactory", allowAutoWiredConnectionFactory);
+            return this;
+        }
+        /**
+         * Whether to auto-discover DestinationResolver from the registry, if no
+         * destination resolver has been configured. If only one instance of
+         * DestinationResolver is found then it will be used. This is enabled by
+         * default.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder allowAutoWiredDestinationResolver(
+                boolean allowAutoWiredDestinationResolver) {
+            doSetProperty("allowAutoWiredDestinationResolver", allowAutoWiredDestinationResolver);
+            return this;
+        }
+        /**
+         * To use a shared JMS configuration.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.JmsConfiguration</code> type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder configuration(
+                org.apache.camel.component.jms.JmsConfiguration configuration) {
+            doSetProperty("configuration", configuration);
+            return this;
+        }
+        /**
+         * Specifies whether the consumer accept messages while it is stopping.
+         * You may consider enabling this option, if you start and stop JMS
+         * routes at runtime, while there are still messages enqueued on the
+         * queue. If this option is false, and you stop the JMS route, then
+         * messages may be rejected, and the JMS broker would have to attempt
+         * redeliveries, which yet again may be rejected, and eventually the
+         * message may be moved at a dead letter queue on the JMS broker. To
+         * avoid this its recommended to enable this option.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default AMQPComponentBuilder acceptMessagesWhileStopping(
+                boolean acceptMessagesWhileStopping) {
+            doSetProperty("acceptMessagesWhileStopping", acceptMessagesWhileStopping);
+            return this;
+        }
+        /**
+         * Whether the DefaultMessageListenerContainer used in the reply
+         * managers for request-reply messaging allow the
+         * DefaultMessageListenerContainer.runningAllowed flag to quick stop in
+         * case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and
+         * org.apache.camel.CamelContext is currently being stopped. This quick
+         * stop ability is enabled by default in the regular JMS consumers but
+         * to enable for reply managers you must enable this flag.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default AMQPComponentBuilder allowReplyManagerQuickStop(
+                boolean allowReplyManagerQuickStop) {
+            doSetProperty("allowReplyManagerQuickStop", allowReplyManagerQuickStop);
+            return this;
+        }
+        /**
+         * The JMS acknowledgement mode defined as an Integer. Allows you to set
+         * vendor-specific extensions to the acknowledgment mode. For the
+         * regular modes, it is preferable to use the acknowledgementModeName
+         * instead.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: consumer
+         */
+        default AMQPComponentBuilder acknowledgementMode(int acknowledgementMode) {
+            doSetProperty("acknowledgementMode", acknowledgementMode);
+            return this;
+        }
+        /**
+         * If eagerLoadingOfProperties is enabled and the JMS message payload
+         * (JMS body or JMS properties) (cannot be read/mapped), then set this
+         * text as the message body instead so the message can be processed (the
+         * cause of the poison are already stored as exception on the Exchange).
+         * This can be turned off by setting eagerPoisonBody=false. See also the
+         * option eagerLoadingOfProperties.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: Poison JMS message due to ${exception.message}
+         * Group: consumer (advanced)
+         */
+        default AMQPComponentBuilder eagerPoisonBody(
+                java.lang.String eagerPoisonBody) {
+            doSetProperty("eagerPoisonBody", eagerPoisonBody);
+            return this;
+        }
+        /**
+         * Enables eager loading of JMS properties as soon as a message is
+         * loaded which generally is inefficient as the JMS properties may not
+         * be required but sometimes can catch early any issues with the
+         * underlying JMS provider and the use of JMS properties. See also the
+         * option eagerLoadingOfBody.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default AMQPComponentBuilder eagerLoadingOfProperties(
+                boolean eagerLoadingOfProperties) {
+            doSetProperty("eagerLoadingOfProperties", eagerLoadingOfProperties);
+            return this;
+        }
+        /**
+         * The JMS acknowledgement name, which is one of: SESSION_TRANSACTED,
+         * CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: AUTO_ACKNOWLEDGE
+         * Group: consumer
+         */
+        default AMQPComponentBuilder acknowledgementModeName(
+                java.lang.String acknowledgementModeName) {
+            doSetProperty("acknowledgementModeName", acknowledgementModeName);
+            return this;
+        }
+        /**
+         * Specifies whether the consumer container should auto-startup.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: consumer
+         */
+        default AMQPComponentBuilder autoStartup(boolean autoStartup) {
+            doSetProperty("autoStartup", autoStartup);
+            return this;
+        }
+        /**
+         * Sets the cache level by ID for the underlying JMS resources. See
+         * cacheLevelName option for more details.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: consumer
+         */
+        default AMQPComponentBuilder cacheLevel(int cacheLevel) {
+            doSetProperty("cacheLevel", cacheLevel);
+            return this;
+        }
+        /**
+         * Sets the cache level by name for the underlying JMS resources.
+         * Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER,
+         * CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See
+         * the Spring documentation and Transactions Cache Levels for more
+         * information.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: CACHE_AUTO
+         * Group: consumer
+         */
+        default AMQPComponentBuilder cacheLevelName(
+                java.lang.String cacheLevelName) {
+            doSetProperty("cacheLevelName", cacheLevelName);
+            return this;
+        }
+        /**
+         * Sets the cache level by name for the reply consumer when doing
+         * request/reply over JMS. This option only applies when using fixed
+         * reply queues (not temporary). Camel will by default use:
+         * CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And
+         * CACHE_SESSION for shared without replyToSelectorName. Some JMS
+         * brokers such as IBM WebSphere may require to set the
+         * replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary
+         * queues then CACHE_NONE is not allowed, and you must use a higher
+         * value such as CACHE_CONSUMER or CACHE_SESSION.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder replyToCacheLevelName(
+                java.lang.String replyToCacheLevelName) {
+            doSetProperty("replyToCacheLevelName", replyToCacheLevelName);
+            return this;
+        }
+        /**
+         * Sets the JMS client ID to use. Note that this value, if specified,
+         * must be unique and can only be used by a single JMS connection
+         * instance. It is typically only required for durable topic
+         * subscriptions. If using Apache ActiveMQ you may prefer to use Virtual
+         * Topics instead.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: common
+         */
+        default AMQPComponentBuilder clientId(java.lang.String clientId) {
+            doSetProperty("clientId", clientId);
+            return this;
+        }
+        /**
+         * Specifies the default number of concurrent consumers when consuming
+         * from JMS (not for request/reply over JMS). See also the
+         * maxMessagesPerTask option to control dynamic scaling up/down of
+         * threads. When doing request/reply over JMS then the option
+         * replyToConcurrentConsumers is used to control number of concurrent
+         * consumers on the reply message listener.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: consumer
+         */
+        default AMQPComponentBuilder concurrentConsumers(int concurrentConsumers) {
+            doSetProperty("concurrentConsumers", concurrentConsumers);
+            return this;
+        }
+        /**
+         * Specifies the default number of concurrent consumers when doing
+         * request/reply over JMS. See also the maxMessagesPerTask option to
+         * control dynamic scaling up/down of threads.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: producer
+         */
+        default AMQPComponentBuilder replyToConcurrentConsumers(
+                int replyToConcurrentConsumers) {
+            doSetProperty("replyToConcurrentConsumers", replyToConcurrentConsumers);
+            return this;
+        }
+        /**
+         * The connection factory to be use. A connection factory must be
+         * configured either on the component or endpoint.
+         * 
+         * The option is a: <code>javax.jms.ConnectionFactory</code> type.
+         * 
+         * Group: common
+         */
+        default AMQPComponentBuilder connectionFactory(
+                javax.jms.ConnectionFactory connectionFactory) {
+            doSetProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Username to use with the ConnectionFactory. You can also configure
+         * username/password directly on the ConnectionFactory.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default AMQPComponentBuilder username(java.lang.String username) {
+            doSetProperty("username", username);
+            return this;
+        }
+        /**
+         * Password to use with the ConnectionFactory. You can also configure
+         * username/password directly on the ConnectionFactory.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default AMQPComponentBuilder password(java.lang.String password) {
+            doSetProperty("password", password);
+            return this;
+        }
+        /**
+         * Specifies whether persistent delivery is used by default.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: producer
+         */
+        default AMQPComponentBuilder deliveryPersistent(
+                boolean deliveryPersistent) {
+            doSetProperty("deliveryPersistent", deliveryPersistent);
+            return this;
+        }
+        /**
+         * Specifies the delivery mode to be used. Possibles values are those
+         * defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT
+         * = 2.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: producer
+         */
+        default AMQPComponentBuilder deliveryMode(java.lang.Integer deliveryMode) {
+            doSetProperty("deliveryMode", deliveryMode);
+            return this;
+        }
+        /**
+         * The durable subscriber name for specifying durable topic
+         * subscriptions. The clientId option must be configured as well.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: common
+         */
+        default AMQPComponentBuilder durableSubscriptionName(
+                java.lang.String durableSubscriptionName) {
+            doSetProperty("durableSubscriptionName", durableSubscriptionName);
+            return this;
+        }
+        /**
+         * Specifies the JMS Exception Listener that is to be notified of any
+         * underlying JMS exceptions.
+         * 
+         * The option is a: <code>javax.jms.ExceptionListener</code> type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder exceptionListener(
+                javax.jms.ExceptionListener exceptionListener) {
+            doSetProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * Specifies a org.springframework.util.ErrorHandler to be invoked in
+         * case of any uncaught exceptions thrown while processing a Message. By
+         * default these exceptions will be logged at the WARN level, if no
+         * errorHandler has been configured. You can configure logging level and
+         * whether stack traces should be logged using errorHandlerLoggingLevel
+         * and errorHandlerLogStackTrace options. This makes it much easier to
+         * configure, than having to code a custom errorHandler.
+         * 
+         * The option is a: <code>org.springframework.util.ErrorHandler</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder errorHandler(
+                org.springframework.util.ErrorHandler errorHandler) {
+            doSetProperty("errorHandler", errorHandler);
+            return this;
+        }
+        /**
+         * Allows to configure the default errorHandler logging level for
+         * logging uncaught exceptions.
+         * 
+         * The option is a: <code>org.apache.camel.LoggingLevel</code> type.
+         * 
+         * Default: WARN
+         * Group: logging
+         */
+        default AMQPComponentBuilder errorHandlerLoggingLevel(
+                org.apache.camel.LoggingLevel errorHandlerLoggingLevel) {
+            doSetProperty("errorHandlerLoggingLevel", errorHandlerLoggingLevel);
+            return this;
+        }
+        /**
+         * Allows to control whether stacktraces should be logged or not, by the
+         * default errorHandler.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: logging
+         */
+        default AMQPComponentBuilder errorHandlerLogStackTrace(
+                boolean errorHandlerLogStackTrace) {
+            doSetProperty("errorHandlerLogStackTrace", errorHandlerLogStackTrace);
+            return this;
+        }
+        /**
+         * Set if the deliveryMode, priority or timeToLive qualities of service
+         * should be used when sending messages. This option is based on
+         * Spring's JmsTemplate. The deliveryMode, priority and timeToLive
+         * options are applied to the current endpoint. This contrasts with the
+         * preserveMessageQos option, which operates at message granularity,
+         * reading QoS properties exclusively from the Camel In message headers.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AMQPComponentBuilder explicitQosEnabled(
+                boolean explicitQosEnabled) {
+            doSetProperty("explicitQosEnabled", explicitQosEnabled);
+            return this;
+        }
+        /**
+         * Specifies whether the listener session should be exposed when
+         * consuming messages.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default AMQPComponentBuilder exposeListenerSession(
+                boolean exposeListenerSession) {
+            doSetProperty("exposeListenerSession", exposeListenerSession);
+            return this;
+        }
+        /**
+         * Specifies the limit for idle executions of a receive task, not having
+         * received any message within its execution. If this limit is reached,
+         * the task will shut down and leave receiving to other executing tasks
+         * (in the case of dynamic scheduling; see the maxConcurrentConsumers
+         * setting). There is additional doc available from Spring.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: advanced
+         */
+        default AMQPComponentBuilder idleTaskExecutionLimit(
+                int idleTaskExecutionLimit) {
+            doSetProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            return this;
+        }
+        /**
+         * Specify the limit for the number of consumers that are allowed to be
+         * idle at any given time.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: advanced
+         */
+        default AMQPComponentBuilder idleConsumerLimit(int idleConsumerLimit) {
+            doSetProperty("idleConsumerLimit", idleConsumerLimit);
+            return this;
+        }
+        /**
+         * Specifies the maximum number of concurrent consumers when consuming
+         * from JMS (not for request/reply over JMS). See also the
+         * maxMessagesPerTask option to control dynamic scaling up/down of
+         * threads. When doing request/reply over JMS then the option
+         * replyToMaxConcurrentConsumers is used to control number of concurrent
+         * consumers on the reply message listener.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: consumer
+         */
+        default AMQPComponentBuilder maxConcurrentConsumers(
+                int maxConcurrentConsumers) {
+            doSetProperty("maxConcurrentConsumers", maxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * Specifies the maximum number of concurrent consumers when using
+         * request/reply over JMS. See also the maxMessagesPerTask option to
+         * control dynamic scaling up/down of threads.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: producer
+         */
+        default AMQPComponentBuilder replyToMaxConcurrentConsumers(
+                int replyToMaxConcurrentConsumers) {
+            doSetProperty("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * Specifies the maximum number of concurrent consumers for continue
+         * routing when timeout occurred when using request/reply over JMS.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: producer
+         */
+        default AMQPComponentBuilder replyOnTimeoutToMaxConcurrentConsumers(
+                int replyOnTimeoutToMaxConcurrentConsumers) {
+            doSetProperty("replyOnTimeoutToMaxConcurrentConsumers", replyOnTimeoutToMaxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * The number of messages per task. -1 is unlimited. If you use a range
+         * for concurrent consumers (eg min max), then this option can be used
+         * to set a value to eg 100 to control how fast the consumers will
+         * shrink when less work is required.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: -1
+         * Group: advanced
+         */
+        default AMQPComponentBuilder maxMessagesPerTask(int maxMessagesPerTask) {
+            doSetProperty("maxMessagesPerTask", maxMessagesPerTask);
+            return this;
+        }
+        /**
+         * To use a custom Spring
+         * org.springframework.jms.support.converter.MessageConverter so you can
+         * be in control how to map to/from a javax.jms.Message.
+         * 
+         * The option is a:
+         * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder messageConverter(
+                org.springframework.jms.support.converter.MessageConverter messageConverter) {
+            doSetProperty("messageConverter", messageConverter);
+            return this;
+        }
+        /**
+         * Specifies whether Camel should auto map the received JMS message to a
+         * suited payload type, such as javax.jms.TextMessage to a String etc.
+         * See section about how mapping works below for more details.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: advanced
+         */
+        default AMQPComponentBuilder mapJmsMessage(boolean mapJmsMessage) {
+            doSetProperty("mapJmsMessage", mapJmsMessage);
+            return this;
+        }
+        /**
+         * When sending, specifies whether message IDs should be added. This is
+         * just an hint to the JMS Broker. If the JMS provider accepts this
+         * hint, these messages must have the message ID set to null; if the
+         * provider ignores the hint, the message ID must be set to its normal
+         * unique value.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: advanced
+         */
+        default AMQPComponentBuilder messageIdEnabled(boolean messageIdEnabled) {
+            doSetProperty("messageIdEnabled", messageIdEnabled);
+            return this;
+        }
+        /**
+         * Specifies whether timestamps should be enabled by default on sending
+         * messages. This is just an hint to the JMS broker. If the JMS provider
+         * accepts this hint, these messages must have the timestamp set to
+         * zero; if the provider ignores the hint the timestamp must be set to
+         * its normal value.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: advanced
+         */
+        default AMQPComponentBuilder messageTimestampEnabled(
+                boolean messageTimestampEnabled) {
+            doSetProperty("messageTimestampEnabled", messageTimestampEnabled);
+            return this;
+        }
+        /**
+         * If true, Camel will always make a JMS message copy of the message
+         * when it is passed to the producer for sending. Copying the message is
+         * needed in some situations, such as when a
+         * replyToDestinationSelectorName is set (incidentally, Camel will set
+         * the alwaysCopyMessage option to true, if a
+         * replyToDestinationSelectorName is set).
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder alwaysCopyMessage(boolean alwaysCopyMessage) {
+            doSetProperty("alwaysCopyMessage", alwaysCopyMessage);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder useMessageIDAsCorrelationID(
+                boolean useMessageIDAsCorrelationID) {
+            doSetProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            return this;
+        }
+        /**
+         * Values greater than 1 specify the message priority when sending
+         * (where 0 is the lowest priority and 9 is the highest). The
+         * explicitQosEnabled option must also be enabled in order for this
+         * option to have any effect.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 4
+         * Group: producer
+         */
+        default AMQPComponentBuilder priority(int priority) {
+            doSetProperty("priority", priority);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder pubSubNoLocal(boolean pubSubNoLocal) {
+            doSetProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 1000
+         * Group: advanced
+         */
+        default AMQPComponentBuilder receiveTimeout(long receiveTimeout) {
+            doSetProperty("receiveTimeout", receiveTimeout);
+            return this;
+        }
+        /**
+         * Specifies the interval between recovery attempts, i.e. when a
+         * connection is being refreshed, in milliseconds. The default is 5000
+         * ms, that is, 5 seconds.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 5000
+         * Group: advanced
+         */
+        default AMQPComponentBuilder recoveryInterval(long recoveryInterval) {
+            doSetProperty("recoveryInterval", recoveryInterval);
+            return this;
+        }
+        /**
+         * Allows you to specify a custom task executor for consuming messages.
+         * 
+         * The option is a:
+         * <code>org.springframework.core.task.TaskExecutor</code> type.
+         * 
+         * Group: consumer (advanced)
+         */
+        default AMQPComponentBuilder taskExecutor(
+                org.springframework.core.task.TaskExecutor taskExecutor) {
+            doSetProperty("taskExecutor", taskExecutor);
+            return this;
+        }
+        /**
+         * When sending messages, specifies the time-to-live of the message (in
+         * milliseconds).
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: -1
+         * Group: producer
+         */
+        default AMQPComponentBuilder timeToLive(long timeToLive) {
+            doSetProperty("timeToLive", timeToLive);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default AMQPComponentBuilder transacted(boolean transacted) {
+            doSetProperty("transacted", transacted);
+            return this;
+        }
+        /**
+         * If true, Camel will create a JmsTransactionManager, if there is no
+         * transactionManager injected when option transacted=true.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: transaction (advanced)
+         */
+        default AMQPComponentBuilder lazyCreateTransactionManager(
+                boolean lazyCreateTransactionManager) {
+            doSetProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * 
+         * The option is a:
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * 
+         * Group: transaction (advanced)
+         */
+        default AMQPComponentBuilder transactionManager(
+                org.springframework.transaction.PlatformTransactionManager transactionManager) {
+            doSetProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The name of the transaction to use.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: transaction (advanced)
+         */
+        default AMQPComponentBuilder transactionName(
+                java.lang.String transactionName) {
+            doSetProperty("transactionName", transactionName);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: -1
+         * Group: transaction (advanced)
+         */
+        default AMQPComponentBuilder transactionTimeout(int transactionTimeout) {
+            doSetProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+        /**
+         * Specifies whether to test the connection on startup. This ensures
+         * that when Camel starts that all the JMS consumers have a valid
+         * connection to the JMS broker. If a connection cannot be granted then
+         * Camel throws an exception on startup. This ensures that Camel is not
+         * started with failed connections. The JMS producers is tested as well.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: common
+         */
+        default AMQPComponentBuilder testConnectionOnStartup(
+                boolean testConnectionOnStartup) {
+            doSetProperty("testConnectionOnStartup", testConnectionOnStartup);
+            return this;
+        }
+        /**
+         * Whether to startup the JmsConsumer message listener asynchronously,
+         * when starting a route. For example if a JmsConsumer cannot get a
+         * connection to a remote JMS broker, then it may block while retrying
+         * and/or failover. This will cause Camel to block while starting
+         * routes. By setting this option to true, you will let routes startup,
+         * while the JmsConsumer connects to the JMS broker using a dedicated
+         * thread in asynchronous mode. If this option is used, then beware that
+         * if the connection could not be established, then an exception is
+         * logged at WARN level, and the consumer will not be able to receive
+         * messages; You can then restart the route to retry.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder asyncStartListener(
+                boolean asyncStartListener) {
+            doSetProperty("asyncStartListener", asyncStartListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder asyncStopListener(boolean asyncStopListener) {
+            doSetProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * When using mapJmsMessage=false Camel will create a new JMS message to
+         * send to a new JMS destination if you touch the headers (get or set)
+         * during the route. Set this option to true to force Camel to send the
+         * original JMS message that was received.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder forceSendOriginalMessage(
+                boolean forceSendOriginalMessage) {
+            doSetProperty("forceSendOriginalMessage", forceSendOriginalMessage);
+            return this;
+        }
+        /**
+         * The timeout for waiting for a reply when using the InOut Exchange
+         * Pattern (in milliseconds). The default is 20 seconds. You can include
+         * the header CamelJmsRequestTimeout to override this endpoint
+         * configured timeout value, and thus have per message individual
+         * timeout values. See also the requestTimeoutCheckerInterval option.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 20000
+         * Group: producer
+         */
+        default AMQPComponentBuilder requestTimeout(long requestTimeout) {
+            doSetProperty("requestTimeout", requestTimeout);
+            return this;
+        }
+        /**
+         * Configures how often Camel should check for timed out Exchanges when
+         * doing request/reply over JMS. By default Camel checks once per
+         * second. But if you must react faster when a timeout occurs, then you
+         * can lower this interval, to check more frequently. The timeout is
+         * determined by the option requestTimeout.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 1000
+         * Group: advanced
+         */
+        default AMQPComponentBuilder requestTimeoutCheckerInterval(
+                long requestTimeoutCheckerInterval) {
+            doSetProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            return this;
+        }
+        /**
+         * You can transfer the exchange over the wire instead of just the body
+         * and headers. The following fields are transferred: In body, Out body,
+         * Fault body, In headers, Out headers, Fault headers, exchange
+         * properties, exchange exception. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level. You must enable this option on both the producer
+         * and consumer side, so Camel knows the payloads is an Exchange and not
+         * a regular payload.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder transferExchange(boolean transferExchange) {
+            doSetProperty("transferExchange", transferExchange);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed on the consumer side, then the caused Exception will
+         * be send back in response as a javax.jms.ObjectMessage. If the client
+         * is Camel, the returned Exception is rethrown. This allows you to use
+         * Camel JMS as a bridge in your routing - for example, using persistent
+         * queues to enable robust routing. Notice that if you also have
+         * transferExchange enabled, this option takes precedence. The caught
+         * exception is required to be serializable. The original Exception on
+         * the consumer side can be wrapped in an outer exception such as
+         * org.apache.camel.RuntimeCamelException when returned to the producer.
+         * Use this with caution as the data is using Java Object serialization
+         * and requires the received to be able to deserialize the data at Class
+         * level, which forces a strong coupling between the producers and
+         * consumer!.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder transferException(boolean transferException) {
+            doSetProperty("transferException", transferException);
+            return this;
+        }
+        /**
+         * Allows you to use your own implementation of the
+         * org.springframework.jms.core.JmsOperations interface. Camel uses
+         * JmsTemplate as default. Can be used for testing purpose, but not used
+         * much as stated in the spring API docs.
+         * 
+         * The option is a:
+         * <code>org.springframework.jms.core.JmsOperations</code> type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder jmsOperations(
+                org.springframework.jms.core.JmsOperations jmsOperations) {
+            doSetProperty("jmsOperations", jmsOperations);
+            return this;
+        }
+        /**
+         * A pluggable
+         * org.springframework.jms.support.destination.DestinationResolver that
+         * allows you to use your own resolver (for example, to lookup the real
+         * destination in a JNDI registry).
+         * 
+         * The option is a:
+         * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder destinationResolver(
+                org.springframework.jms.support.destination.DestinationResolver destinationResolver) {
+            doSetProperty("destinationResolver", destinationResolver);
+            return this;
+        }
+        /**
+         * Allows for explicitly specifying which kind of strategy to use for
+         * replyTo queues when doing request/reply over JMS. Possible values
+         * are: Temporary, Shared, or Exclusive. By default Camel will use
+         * temporary queues. However if replyTo has been configured, then Shared
+         * is used by default. This option allows you to use exclusive queues
+         * instead of shared ones. See Camel JMS documentation for more details,
+         * and especially the notes about the implications if running in a
+         * clustered environment, and the fact that Shared reply queues has
+         * lower performance than its alternatives Temporary and Exclusive.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.ReplyToType</code> type.
+         * 
+         * Group: producer
+         */
+        default AMQPComponentBuilder replyToType(
+                org.apache.camel.component.jms.ReplyToType replyToType) {
+            doSetProperty("replyToType", replyToType);
+            return this;
+        }
+        /**
+         * Set to true, if you want to send message using the QoS settings
+         * specified on the message, instead of the QoS settings on the JMS
+         * endpoint. The following three headers are considered JMSPriority,
+         * JMSDeliveryMode, and JMSExpiration. You can provide all or only some
+         * of them. If not provided, Camel will fall back to use the values from
+         * the endpoint instead. So, when using this option, the headers
+         * override the values from the endpoint. The explicitQosEnabled option,
+         * by contrast, will only use options set on the endpoint, and not
+         * values from the message header.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AMQPComponentBuilder preserveMessageQos(
+                boolean preserveMessageQos) {
+            doSetProperty("preserveMessageQos", preserveMessageQos);
+            return this;
+        }
+        /**
+         * Whether the JmsConsumer processes the Exchange asynchronously. If
+         * enabled then the JmsConsumer may pickup the next message from the JMS
+         * queue, while the previous message is being processed asynchronously
+         * (by the Asynchronous Routing Engine). This means that messages may be
+         * processed not 100% strictly in order. If disabled (as default) then
+         * the Exchange is fully processed before the JmsConsumer will pickup
+         * the next message from the JMS queue. Note if transacted has been
+         * enabled, then asyncConsumer=true does not run asynchronously, as
+         * transaction must be executed synchronously (Camel 3.0 may support
+         * async transactions).
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default AMQPComponentBuilder asyncConsumer(boolean asyncConsumer) {
+            doSetProperty("asyncConsumer", asyncConsumer);
+            return this;
+        }
+        /**
+         * Whether to allow sending messages with no body. If this option is
+         * false and the message body is null, then an JMSException is thrown.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder allowNullBody(boolean allowNullBody) {
+            doSetProperty("allowNullBody", allowNullBody);
+            return this;
+        }
+        /**
+         * Only applicable when sending to JMS destination using InOnly (eg fire
+         * and forget). Enabling this option will enrich the Camel Exchange with
+         * the actual JMSMessageID that was used by the JMS client when the
+         * message was sent to the JMS destination.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder includeSentJMSMessageID(
+                boolean includeSentJMSMessageID) {
+            doSetProperty("includeSentJMSMessageID", includeSentJMSMessageID);
+            return this;
+        }
+        /**
+         * Whether to include all JMSXxxx properties when mapping from JMS to
+         * Camel Message. Setting this to true will include properties such as
+         * JMSXAppID, and JMSXUserID etc. Note: If you are using a custom
+         * headerFilterStrategy then this option does not apply.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder includeAllJMSXProperties(
+                boolean includeAllJMSXProperties) {
+            doSetProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            return this;
+        }
+        /**
+         * Specifies what default TaskExecutor type to use in the
+         * DefaultMessageListenerContainer, for both consumer endpoints and the
+         * ReplyTo consumer of producer endpoints. Possible values: SimpleAsync
+         * (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's
+         * ThreadPoolTaskExecutor with optimal values - cached threadpool-like).
+         * If not set, it defaults to the previous behaviour, which uses a
+         * cached thread pool for consumer endpoints and SimpleAsync for reply
+         * consumers. The use of ThreadPool is recommended to reduce thread
+         * trash in elastic configurations with dynamically increasing and
+         * decreasing concurrent consumers.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
+         * type.
+         * 
+         * Group: consumer (advanced)
+         */
+        default AMQPComponentBuilder defaultTaskExecutorType(
+                org.apache.camel.component.jms.DefaultTaskExecutorType defaultTaskExecutorType) {
+            doSetProperty("defaultTaskExecutorType", defaultTaskExecutorType);
+            return this;
+        }
+        /**
+         * Pluggable strategy for encoding and decoding JMS keys so they can be
+         * compliant with the JMS specification. Camel provides two
+         * implementations out of the box: default and passthrough. The default
+         * strategy will safely marshal dots and hyphens (. and -). The
+         * passthrough strategy leaves the key as is. Can be used for JMS
+         * brokers which do not care whether JMS header keys contain illegal
+         * characters. You can provide your own implementation of the
+         * org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it
+         * using the # notation.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder jmsKeyFormatStrategy(
+                org.apache.camel.component.jms.JmsKeyFormatStrategy jmsKeyFormatStrategy) {
+            doSetProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            return this;
+        }
+        /**
+         * This option is used to allow additional headers which may have values
+         * that are invalid according to JMS specification. For example some
+         * message systems such as WMQ do this with header names using prefix
+         * JMS_IBM_MQMD_ containing values with byte array or other invalid
+         * types. You can specify multiple header names separated by comma, and
+         * use as suffix for wildcard matching.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder allowAdditionalHeaders(
+                java.lang.String allowAdditionalHeaders) {
+            doSetProperty("allowAdditionalHeaders", allowAdditionalHeaders);
+            return this;
+        }
+        /**
+         * To use a custom QueueBrowseStrategy when browsing queues.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.QueueBrowseStrategy</code> type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder queueBrowseStrategy(
+                org.apache.camel.component.jms.QueueBrowseStrategy queueBrowseStrategy) {
+            doSetProperty("queueBrowseStrategy", queueBrowseStrategy);
+            return this;
+        }
+        /**
+         * To use the given MessageCreatedStrategy which are invoked when Camel
+         * creates new instances of javax.jms.Message objects when Camel is
+         * sending a JMS message.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default AMQPComponentBuilder messageCreatedStrategy(
+                org.apache.camel.component.jms.MessageCreatedStrategy messageCreatedStrategy) {
+            doSetProperty("messageCreatedStrategy", messageCreatedStrategy);
+            return this;
+        }
+        /**
+         * Number of times to wait for provisional correlation id to be updated
+         * to the actual correlation id when doing request/reply over JMS and
+         * when the option useMessageIDAsCorrelationID is enabled.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 50
+         * Group: advanced
+         */
+        default AMQPComponentBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                int waitForProvisionCorrelationToBeUpdatedCounter) {
+            doSetProperty("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
+            return this;
+        }
+        /**
+         * Interval in millis to sleep each time while waiting for provisional
+         * correlation id to be updated.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 100
+         * Group: advanced
+         */
+        default AMQPComponentBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            doSetProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            return this;
+        }
+        /**
+         * Use this JMS property to correlate messages in InOut exchange pattern
+         * (request-reply) instead of JMSCorrelationID property. This allows you
+         * to exchange messages with systems that do not correlate messages
+         * using JMSCorrelationID JMS property. If used JMSCorrelationID will
+         * not be used or set by Camel. The value of here named property will be
+         * generated if not supplied in the header of the message under the same
+         * name.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder correlationProperty(
+                java.lang.String correlationProperty) {
+            doSetProperty("correlationProperty", correlationProperty);
+            return this;
+        }
+        /**
+         * Set whether to make the subscription durable. The durable
+         * subscription name to be used can be specified through the
+         * subscriptionName property. Default is false. Set this to true to
+         * register a durable subscription, typically in combination with a
+         * subscriptionName value (unless your message listener class name is
+         * good enough as subscription name). Only makes sense when listening to
+         * a topic (pub-sub domain), therefore this method switches the
+         * pubSubDomain flag as well.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default AMQPComponentBuilder subscriptionDurable(
+                boolean subscriptionDurable) {
+            doSetProperty("subscriptionDurable", subscriptionDurable);
+            return this;
+        }
+        /**
+         * Set whether to make the subscription shared. The shared subscription
+         * name to be used can be specified through the subscriptionName
+         * property. Default is false. Set this to true to register a shared
+         * subscription, typically in combination with a subscriptionName value
+         * (unless your message listener class name is good enough as
+         * subscription name). Note that shared subscriptions may also be
+         * durable, so this flag can (and often will) be combined with
+         * subscriptionDurable as well. Only makes sense when listening to a
+         * topic (pub-sub domain), therefore this method switches the
+         * pubSubDomain flag as well. Requires a JMS 2.0 compatible message
+         * broker.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default AMQPComponentBuilder subscriptionShared(
+                boolean subscriptionShared) {
+            doSetProperty("subscriptionShared", subscriptionShared);
+            return this;
+        }
+        /**
+         * Set the name of a subscription to create. To be applied in case of a
+         * topic (pub-sub domain) with a shared or durable subscription. The
+         * subscription name needs to be unique within this client's JMS client
+         * id. Default is the class name of the specified message listener.
+         * Note: Only 1 concurrent consumer (which is the default of this
+         * message listener container) is allowed for each subscription, except
+         * for a shared subscription (which requires JMS 2.0).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: consumer
+         */
+        default AMQPComponentBuilder subscriptionName(
+                java.lang.String subscriptionName) {
+            doSetProperty("subscriptionName", subscriptionName);
+            return this;
+        }
+        /**
+         * Sets whether StreamMessage type is enabled or not. Message payloads
+         * of streaming kind such as files, InputStream, etc will either by sent
+         * as BytesMessage or StreamMessage. This option controls which kind
+         * will be used. By default BytesMessage is used which enforces the
+         * entire message payload to be read into memory. By enabling this
+         * option the message payload is read into memory in chunks and each
+         * chunk is then written to the StreamMessage until no more data.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default AMQPComponentBuilder streamMessageTypeEnabled(
+                boolean streamMessageTypeEnabled) {
+            doSetProperty("streamMessageTypeEnabled", streamMessageTypeEnabled);
+            return this;
+        }
+        /**
+         * Sets whether date headers should be formatted according to the ISO
+         * 8601 standard.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AMQPComponentBuilder formatDateHeadersToIso8601(
+                boolean formatDateHeadersToIso8601) {
+            doSetProperty("formatDateHeadersToIso8601", formatDateHeadersToIso8601);
+            return this;
+        }
+        /**
+         * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+         * header to and from Camel message.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * 
+         * Group: filter
+         */
+        default AMQPComponentBuilder headerFilterStrategy(
+                org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy) {
+            doSetProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * Whether the component should use basic property binding (Camel 2.x)
+         * or the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AMQPComponentBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AMQPComponentBuilder lazyStartProducer(boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error 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.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default AMQPComponentBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+    }
+
+    class AMQPComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<AMQPComponent>
+            implements
+                AMQPComponentBuilder {
+        @Override
+        protected AMQPComponent buildConcreteComponent() {
+            return new AMQPComponent();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "includeAmqpAnnotations": ((AMQPComponent) component).setIncludeAmqpAnnotations((boolean) value); return true;
+            case "allowAutoWiredConnectionFactory": ((AMQPComponent) component).setAllowAutoWiredConnectionFactory((boolean) value); return true;
+            case "allowAutoWiredDestinationResolver": ((AMQPComponent) component).setAllowAutoWiredDestinationResolver((boolean) value); return true;
+            case "configuration": ((AMQPComponent) component).setConfiguration((org.apache.camel.component.jms.JmsConfiguration) value); return true;
+            case "acceptMessagesWhileStopping": ((AMQPComponent) component).setAcceptMessagesWhileStopping((boolean) value); return true;
+            case "allowReplyManagerQuickStop": ((AMQPComponent) component).setAllowReplyManagerQuickStop((boolean) value); return true;
+            case "acknowledgementMode": ((AMQPComponent) component).setAcknowledgementMode((int) value); return true;
+            case "eagerPoisonBody": ((AMQPComponent) component).setEagerPoisonBody((java.lang.String) value); return true;
+            case "eagerLoadingOfProperties": ((AMQPComponent) component).setEagerLoadingOfProperties((boolean) value); return true;
+            case "acknowledgementModeName": ((AMQPComponent) component).setAcknowledgementModeName((java.lang.String) value); return true;
+            case "autoStartup": ((AMQPComponent) component).setAutoStartup((boolean) value); return true;
+            case "cacheLevel": ((AMQPComponent) component).setCacheLevel((int) value); return true;
+            case "cacheLevelName": ((AMQPComponent) component).setCacheLevelName((java.lang.String) value); return true;
+            case "replyToCacheLevelName": ((AMQPComponent) component).setReplyToCacheLevelName((java.lang.String) value); return true;
+            case "clientId": ((AMQPComponent) component).setClientId((java.lang.String) value); return true;
+            case "concurrentConsumers": ((AMQPComponent) component).setConcurrentConsumers((int) value); return true;
+            case "replyToConcurrentConsumers": ((AMQPComponent) component).setReplyToConcurrentConsumers((int) value); return true;
+            case "connectionFactory": ((AMQPComponent) component).setConnectionFactory((javax.jms.ConnectionFactory) value); return true;
+            case "username": ((AMQPComponent) component).setUsername((java.lang.String) value); return true;
+            case "password": ((AMQPComponent) component).setPassword((java.lang.String) value); return true;
+            case "deliveryPersistent": ((AMQPComponent) component).setDeliveryPersistent((boolean) value); return true;
+            case "deliveryMode": ((AMQPComponent) component).setDeliveryMode((java.lang.Integer) value); return true;
+            case "durableSubscriptionName": ((AMQPComponent) component).setDurableSubscriptionName((java.lang.String) value); return true;
+            case "exceptionListener": ((AMQPComponent) component).setExceptionListener((javax.jms.ExceptionListener) value); return true;
+            case "errorHandler": ((AMQPComponent) component).setErrorHandler((org.springframework.util.ErrorHandler) value); return true;
+            case "errorHandlerLoggingLevel": ((AMQPComponent) component).setErrorHandlerLoggingLevel((org.apache.camel.LoggingLevel) value); return true;
+            case "errorHandlerLogStackTrace": ((AMQPComponent) component).setErrorHandlerLogStackTrace((boolean) value); return true;
+            case "explicitQosEnabled": ((AMQPComponent) component).setExplicitQosEnabled((boolean) value); return true;
+            case "exposeListenerSession": ((AMQPComponent) component).setExposeListenerSession((boolean) value); return true;
+            case "idleTaskExecutionLimit": ((AMQPComponent) component).setIdleTaskExecutionLimit((int) value); return true;
+            case "idleConsumerLimit": ((AMQPComponent) component).setIdleConsumerLimit((int) value); return true;
+            case "maxConcurrentConsumers": ((AMQPComponent) component).setMaxConcurrentConsumers((int) value); return true;
+            case "replyToMaxConcurrentConsumers": ((AMQPComponent) component).setReplyToMaxConcurrentConsumers((int) value); return true;
+            case "replyOnTimeoutToMaxConcurrentConsumers": ((AMQPComponent) component).setReplyOnTimeoutToMaxConcurrentConsumers((int) value); return true;
+            case "maxMessagesPerTask": ((AMQPComponent) component).setMaxMessagesPerTask((int) value); return true;
+            case "messageConverter": ((AMQPComponent) component).setMessageConverter((org.springframework.jms.support.converter.MessageConverter) value); return true;
+            case "mapJmsMessage": ((AMQPComponent) component).setMapJmsMessage((boolean) value); return true;
+            case "messageIdEnabled": ((AMQPComponent) component).setMessageIdEnabled((boolean) value); return true;
+            case "messageTimestampEnabled": ((AMQPComponent) component).setMessageTimestampEnabled((boolean) value); return true;
+            case "alwaysCopyMessage": ((AMQPComponent) component).setAlwaysCopyMessage((boolean) value); return true;
+            case "useMessageIDAsCorrelationID": ((AMQPComponent) component).setUseMessageIDAsCorrelationID((boolean) value); return true;
+            case "priority": ((AMQPComponent) component).setPriority((int) value); return true;
+            case "pubSubNoLocal": ((AMQPComponent) component).setPubSubNoLocal((boolean) value); return true;
+            case "receiveTimeout": ((AMQPComponent) component).setReceiveTimeout((long) value); return true;
+            case "recoveryInterval": ((AMQPComponent) component).setRecoveryInterval((long) value); return true;
+            case "taskExecutor": ((AMQPComponent) component).setTaskExecutor((org.springframework.core.task.TaskExecutor) value); return true;
+            case "timeToLive": ((AMQPComponent) component).setTimeToLive((long) value); return true;
+            case "transacted": ((AMQPComponent) component).setTransacted((boolean) value); return true;
+            case "lazyCreateTransactionManager": ((AMQPComponent) component).setLazyCreateTransactionManager((boolean) value); return true;
+            case "transactionManager": ((AMQPComponent) component).setTransactionManager((org.springframework.transaction.PlatformTransactionManager) value); return true;
+            case "transactionName": ((AMQPComponent) component).setTransactionName((java.lang.String) value); return true;
+            case "transactionTimeout": ((AMQPComponent) component).setTransactionTimeout((int) value); return true;
+            case "testConnectionOnStartup": ((AMQPComponent) component).setTestConnectionOnStartup((boolean) value); return true;
+            case "asyncStartListener": ((AMQPComponent) component).setAsyncStartListener((boolean) value); return true;
+            case "asyncStopListener": ((AMQPComponent) component).setAsyncStopListener((boolean) value); return true;
+            case "forceSendOriginalMessage": ((AMQPComponent) component).setForceSendOriginalMessage((boolean) value); return true;
+            case "requestTimeout": ((AMQPComponent) component).setRequestTimeout((long) value); return true;
+            case "requestTimeoutCheckerInterval": ((AMQPComponent) component).setRequestTimeoutCheckerInterval((long) value); return true;
+            case "transferExchange": ((AMQPComponent) component).setTransferExchange((boolean) value); return true;
+            case "transferException": ((AMQPComponent) component).setTransferException((boolean) value); return true;
+            case "jmsOperations": ((AMQPComponent) component).setJmsOperations((org.springframework.jms.core.JmsOperations) value); return true;
+            case "destinationResolver": ((AMQPComponent) component).setDestinationResolver((org.springframework.jms.support.destination.DestinationResolver) value); return true;
+            case "replyToType": ((AMQPComponent) component).setReplyToType((org.apache.camel.component.jms.ReplyToType) value); return true;
+            case "preserveMessageQos": ((AMQPComponent) component).setPreserveMessageQos((boolean) value); return true;
+            case "asyncConsumer": ((AMQPComponent) component).setAsyncConsumer((boolean) value); return true;
+            case "allowNullBody": ((AMQPComponent) component).setAllowNullBody((boolean) value); return true;
+            case "includeSentJMSMessageID": ((AMQPComponent) component).setIncludeSentJMSMessageID((boolean) value); return true;
+            case "includeAllJMSXProperties": ((AMQPComponent) component).setIncludeAllJMSXProperties((boolean) value); return true;
+            case "defaultTaskExecutorType": ((AMQPComponent) component).setDefaultTaskExecutorType((org.apache.camel.component.jms.DefaultTaskExecutorType) value); return true;
+            case "jmsKeyFormatStrategy": ((AMQPComponent) component).setJmsKeyFormatStrategy((org.apache.camel.component.jms.JmsKeyFormatStrategy) value); return true;
+            case "allowAdditionalHeaders": ((AMQPComponent) component).setAllowAdditionalHeaders((java.lang.String) value); return true;
+            case "queueBrowseStrategy": ((AMQPComponent) component).setQueueBrowseStrategy((org.apache.camel.component.jms.QueueBrowseStrategy) value); return true;
+            case "messageCreatedStrategy": ((AMQPComponent) component).setMessageCreatedStrategy((org.apache.camel.component.jms.MessageCreatedStrategy) value); return true;
+            case "waitForProvisionCorrelationToBeUpdatedCounter": ((AMQPComponent) component).setWaitForProvisionCorrelationToBeUpdatedCounter((int) value); return true;
+            case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": ((AMQPComponent) component).setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime((long) value); return true;
+            case "correlationProperty": ((AMQPComponent) component).setCorrelationProperty((java.lang.String) value); return true;
+            case "subscriptionDurable": ((AMQPComponent) component).setSubscriptionDurable((boolean) value); return true;
+            case "subscriptionShared": ((AMQPComponent) component).setSubscriptionShared((boolean) value); return true;
+            case "subscriptionName": ((AMQPComponent) component).setSubscriptionName((java.lang.String) value); return true;
+            case "streamMessageTypeEnabled": ((AMQPComponent) component).setStreamMessageTypeEnabled((boolean) value); return true;
+            case "formatDateHeadersToIso8601": ((AMQPComponent) component).setFormatDateHeadersToIso8601((boolean) value); return true;
+            case "headerFilterStrategy": ((AMQPComponent) component).setHeaderFilterStrategy((org.apache.camel.spi.HeaderFilterStrategy) value); return true;
+            case "basicPropertyBinding": ((AMQPComponent) component).setBasicPropertyBinding((boolean) value); return true;
+            case "lazyStartProducer": ((AMQPComponent) component).setLazyStartProducer((boolean) value); return true;
+            case "bridgeErrorHandler": ((AMQPComponent) component).setBridgeErrorHandler((boolean) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AS2ComponentBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AS2ComponentBuilderFactory.java
new file mode 100644
index 0000000..8d267f9
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AS2ComponentBuilderFactory.java
@@ -0,0 +1,142 @@
+/*
+ * 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.builder.component.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.as2.AS2Component;
+
+/**
+ * Component used for transferring data secure and reliable over the internet
+ * using the AS2 protocol.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface AS2ComponentBuilderFactory {
+
+    /**
+     * AS2 (camel-as2)
+     * Component used for transferring data secure and reliable over the
+     * internet using the AS2 protocol.
+     * 
+     * Category: file
+     * Since: 2.22
+     * Maven coordinates: org.apache.camel:camel-as2
+     */
+    static AS2ComponentBuilder as2() {
+        return new AS2ComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the AS2 component.
+     */
+    interface AS2ComponentBuilder extends ComponentBuilder<AS2Component> {
+        /**
+         * To use the shared configuration.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.as2.AS2Configuration</code> type.
+         * 
+         * Group: common
+         */
+        default AS2ComponentBuilder configuration(
+                org.apache.camel.component.as2.AS2Configuration configuration) {
+            doSetProperty("configuration", configuration);
+            return this;
+        }
+        /**
+         * Whether the component should use basic property binding (Camel 2.x)
+         * or the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AS2ComponentBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AS2ComponentBuilder lazyStartProducer(boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error 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.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default AS2ComponentBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+    }
+
+    class AS2ComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<AS2Component>
+            implements
+                AS2ComponentBuilder {
+        @Override
+        protected AS2Component buildConcreteComponent() {
+            return new AS2Component();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "configuration": ((AS2Component) component).setConfiguration((org.apache.camel.component.as2.AS2Configuration) value); return true;
+            case "basicPropertyBinding": ((AS2Component) component).setBasicPropertyBinding((boolean) value); return true;
+            case "lazyStartProducer": ((AS2Component) component).setLazyStartProducer((boolean) value); return true;
+            case "bridgeErrorHandler": ((AS2Component) component).setBridgeErrorHandler((boolean) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/ActiveMQComponentBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/ActiveMQComponentBuilderFactory.java
new file mode 100644
index 0000000..c65eed8
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/ActiveMQComponentBuilderFactory.java
@@ -0,0 +1,1571 @@
+/*
+ * 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.builder.component.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.activemq.ActiveMQComponent;
+
+/**
+ * The activemq component allows messages to be sent to (or consumed from)
+ * Apache ActiveMQ. This component extends the Camel JMS component.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface ActiveMQComponentBuilderFactory {
+
+    /**
+     * ActiveMQ (camel-activemq)
+     * The activemq component allows messages to be sent to (or consumed from)
+     * Apache ActiveMQ. This component extends the Camel JMS component.
+     * 
+     * Category: messaging
+     * Since: 1.0
+     * Maven coordinates: org.apache.camel:camel-activemq
+     */
+    static ActiveMQComponentBuilder activemq() {
+        return new ActiveMQComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the ActiveMQ component.
+     */
+    interface ActiveMQComponentBuilder
+            extends
+                ComponentBuilder<ActiveMQComponent> {
+        /**
+         * Sets the broker URL to use to connect to ActiveMQ.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: common
+         */
+        default ActiveMQComponentBuilder brokerURL(java.lang.String brokerURL) {
+            doSetProperty("brokerURL", brokerURL);
+            return this;
+        }
+        /**
+         * Define if all Java packages are trusted or not (for Java object JMS
+         * message types). Notice its not recommended practice to send Java
+         * serialized objects over network. Setting this to true can expose
+         * security risks, so use this with care.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: common
+         */
+        default ActiveMQComponentBuilder trustAllPackages(
+                boolean trustAllPackages) {
+            doSetProperty("trustAllPackages", trustAllPackages);
+            return this;
+        }
+        /**
+         * Enables or disables whether a PooledConnectionFactory will be used so
+         * that when messages are sent to ActiveMQ from outside of a message
+         * consuming thread, pooling will be used rather than the default with
+         * the Spring JmsTemplate which will create a new connection, session,
+         * producer for each message then close them all down again. The default
+         * value is true.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: common
+         */
+        default ActiveMQComponentBuilder usePooledConnection(
+                boolean usePooledConnection) {
+            doSetProperty("usePooledConnection", usePooledConnection);
+            return this;
+        }
+        /**
+         * Enables or disables whether a Spring SingleConnectionFactory will be
+         * used so that when messages are sent to ActiveMQ from outside of a
+         * message consuming thread, pooling will be used rather than the
+         * default with the Spring JmsTemplate which will create a new
+         * connection, session, producer for each message then close them all
+         * down again. The default value is false and a pooled connection is
+         * used by default.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: common
+         */
+        default ActiveMQComponentBuilder useSingleConnection(
+                boolean useSingleConnection) {
+            doSetProperty("useSingleConnection", useSingleConnection);
+            return this;
+        }
+        /**
+         * Configuration of ActiveMQ.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.JmsConfiguration</code> type.
+         * 
+         * Group: common
+         */
+        default ActiveMQComponentBuilder configuration(
+                org.apache.camel.component.jms.JmsConfiguration configuration) {
+            doSetProperty("configuration", configuration);
+            return this;
+        }
+        /**
+         * Whether to auto-discover ConnectionFactory from the registry, if no
+         * connection factory has been configured. If only one instance of
+         * ConnectionFactory is found then it will be used. This is enabled by
+         * default.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder allowAutoWiredConnectionFactory(
+                boolean allowAutoWiredConnectionFactory) {
+            doSetProperty("allowAutoWiredConnectionFactory", allowAutoWiredConnectionFactory);
+            return this;
+        }
+        /**
+         * Whether to auto-discover DestinationResolver from the registry, if no
+         * destination resolver has been configured. If only one instance of
+         * DestinationResolver is found then it will be used. This is enabled by
+         * default.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder allowAutoWiredDestinationResolver(
+                boolean allowAutoWiredDestinationResolver) {
+            doSetProperty("allowAutoWiredDestinationResolver", allowAutoWiredDestinationResolver);
+            return this;
+        }
+        /**
+         * Specifies whether the consumer accept messages while it is stopping.
+         * You may consider enabling this option, if you start and stop JMS
+         * routes at runtime, while there are still messages enqueued on the
+         * queue. If this option is false, and you stop the JMS route, then
+         * messages may be rejected, and the JMS broker would have to attempt
+         * redeliveries, which yet again may be rejected, and eventually the
+         * message may be moved at a dead letter queue on the JMS broker. To
+         * avoid this its recommended to enable this option.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default ActiveMQComponentBuilder acceptMessagesWhileStopping(
+                boolean acceptMessagesWhileStopping) {
+            doSetProperty("acceptMessagesWhileStopping", acceptMessagesWhileStopping);
+            return this;
+        }
+        /**
+         * Whether the DefaultMessageListenerContainer used in the reply
+         * managers for request-reply messaging allow the
+         * DefaultMessageListenerContainer.runningAllowed flag to quick stop in
+         * case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and
+         * org.apache.camel.CamelContext is currently being stopped. This quick
+         * stop ability is enabled by default in the regular JMS consumers but
+         * to enable for reply managers you must enable this flag.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default ActiveMQComponentBuilder allowReplyManagerQuickStop(
+                boolean allowReplyManagerQuickStop) {
+            doSetProperty("allowReplyManagerQuickStop", allowReplyManagerQuickStop);
+            return this;
+        }
+        /**
+         * The JMS acknowledgement mode defined as an Integer. Allows you to set
+         * vendor-specific extensions to the acknowledgment mode. For the
+         * regular modes, it is preferable to use the acknowledgementModeName
+         * instead.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder acknowledgementMode(
+                int acknowledgementMode) {
+            doSetProperty("acknowledgementMode", acknowledgementMode);
+            return this;
+        }
+        /**
+         * If eagerLoadingOfProperties is enabled and the JMS message payload
+         * (JMS body or JMS properties) (cannot be read/mapped), then set this
+         * text as the message body instead so the message can be processed (the
+         * cause of the poison are already stored as exception on the Exchange).
+         * This can be turned off by setting eagerPoisonBody=false. See also the
+         * option eagerLoadingOfProperties.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: Poison JMS message due to ${exception.message}
+         * Group: consumer (advanced)
+         */
+        default ActiveMQComponentBuilder eagerPoisonBody(
+                java.lang.String eagerPoisonBody) {
+            doSetProperty("eagerPoisonBody", eagerPoisonBody);
+            return this;
+        }
+        /**
+         * Enables eager loading of JMS properties as soon as a message is
+         * loaded which generally is inefficient as the JMS properties may not
+         * be required but sometimes can catch early any issues with the
+         * underlying JMS provider and the use of JMS properties. See also the
+         * option eagerLoadingOfBody.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default ActiveMQComponentBuilder eagerLoadingOfProperties(
+                boolean eagerLoadingOfProperties) {
+            doSetProperty("eagerLoadingOfProperties", eagerLoadingOfProperties);
+            return this;
+        }
+        /**
+         * The JMS acknowledgement name, which is one of: SESSION_TRANSACTED,
+         * CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: AUTO_ACKNOWLEDGE
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder acknowledgementModeName(
+                java.lang.String acknowledgementModeName) {
+            doSetProperty("acknowledgementModeName", acknowledgementModeName);
+            return this;
+        }
+        /**
+         * Specifies whether the consumer container should auto-startup.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder autoStartup(boolean autoStartup) {
+            doSetProperty("autoStartup", autoStartup);
+            return this;
+        }
+        /**
+         * Sets the cache level by ID for the underlying JMS resources. See
+         * cacheLevelName option for more details.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder cacheLevel(int cacheLevel) {
+            doSetProperty("cacheLevel", cacheLevel);
+            return this;
+        }
+        /**
+         * Sets the cache level by name for the underlying JMS resources.
+         * Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER,
+         * CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See
+         * the Spring documentation and Transactions Cache Levels for more
+         * information.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: CACHE_AUTO
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder cacheLevelName(
+                java.lang.String cacheLevelName) {
+            doSetProperty("cacheLevelName", cacheLevelName);
+            return this;
+        }
+        /**
+         * Sets the cache level by name for the reply consumer when doing
+         * request/reply over JMS. This option only applies when using fixed
+         * reply queues (not temporary). Camel will by default use:
+         * CACHE_CONSUMER for exclusive or shared w/ replyToSelectorName. And
+         * CACHE_SESSION for shared without replyToSelectorName. Some JMS
+         * brokers such as IBM WebSphere may require to set the
+         * replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary
+         * queues then CACHE_NONE is not allowed, and you must use a higher
+         * value such as CACHE_CONSUMER or CACHE_SESSION.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder replyToCacheLevelName(
+                java.lang.String replyToCacheLevelName) {
+            doSetProperty("replyToCacheLevelName", replyToCacheLevelName);
+            return this;
+        }
+        /**
+         * Sets the JMS client ID to use. Note that this value, if specified,
+         * must be unique and can only be used by a single JMS connection
+         * instance. It is typically only required for durable topic
+         * subscriptions. If using Apache ActiveMQ you may prefer to use Virtual
+         * Topics instead.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: common
+         */
+        default ActiveMQComponentBuilder clientId(java.lang.String clientId) {
+            doSetProperty("clientId", clientId);
+            return this;
+        }
+        /**
+         * Specifies the default number of concurrent consumers when consuming
+         * from JMS (not for request/reply over JMS). See also the
+         * maxMessagesPerTask option to control dynamic scaling up/down of
+         * threads. When doing request/reply over JMS then the option
+         * replyToConcurrentConsumers is used to control number of concurrent
+         * consumers on the reply message listener.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder concurrentConsumers(
+                int concurrentConsumers) {
+            doSetProperty("concurrentConsumers", concurrentConsumers);
+            return this;
+        }
+        /**
+         * Specifies the default number of concurrent consumers when doing
+         * request/reply over JMS. See also the maxMessagesPerTask option to
+         * control dynamic scaling up/down of threads.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder replyToConcurrentConsumers(
+                int replyToConcurrentConsumers) {
+            doSetProperty("replyToConcurrentConsumers", replyToConcurrentConsumers);
+            return this;
+        }
+        /**
+         * The connection factory to be use. A connection factory must be
+         * configured either on the component or endpoint.
+         * 
+         * The option is a: <code>javax.jms.ConnectionFactory</code> type.
+         * 
+         * Group: common
+         */
+        default ActiveMQComponentBuilder connectionFactory(
+                javax.jms.ConnectionFactory connectionFactory) {
+            doSetProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Username to use with the ConnectionFactory. You can also configure
+         * username/password directly on the ConnectionFactory.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default ActiveMQComponentBuilder username(java.lang.String username) {
+            doSetProperty("username", username);
+            return this;
+        }
+        /**
+         * Password to use with the ConnectionFactory. You can also configure
+         * username/password directly on the ConnectionFactory.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default ActiveMQComponentBuilder password(java.lang.String password) {
+            doSetProperty("password", password);
+            return this;
+        }
+        /**
+         * Specifies whether persistent delivery is used by default.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder deliveryPersistent(
+                boolean deliveryPersistent) {
+            doSetProperty("deliveryPersistent", deliveryPersistent);
+            return this;
+        }
+        /**
+         * Specifies the delivery mode to be used. Possibles values are those
+         * defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT
+         * = 2.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder deliveryMode(
+                java.lang.Integer deliveryMode) {
+            doSetProperty("deliveryMode", deliveryMode);
+            return this;
+        }
+        /**
+         * The durable subscriber name for specifying durable topic
+         * subscriptions. The clientId option must be configured as well.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: common
+         */
+        default ActiveMQComponentBuilder durableSubscriptionName(
+                java.lang.String durableSubscriptionName) {
+            doSetProperty("durableSubscriptionName", durableSubscriptionName);
+            return this;
+        }
+        /**
+         * Specifies the JMS Exception Listener that is to be notified of any
+         * underlying JMS exceptions.
+         * 
+         * The option is a: <code>javax.jms.ExceptionListener</code> type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder exceptionListener(
+                javax.jms.ExceptionListener exceptionListener) {
+            doSetProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * Specifies a org.springframework.util.ErrorHandler to be invoked in
+         * case of any uncaught exceptions thrown while processing a Message. By
+         * default these exceptions will be logged at the WARN level, if no
+         * errorHandler has been configured. You can configure logging level and
+         * whether stack traces should be logged using errorHandlerLoggingLevel
+         * and errorHandlerLogStackTrace options. This makes it much easier to
+         * configure, than having to code a custom errorHandler.
+         * 
+         * The option is a: <code>org.springframework.util.ErrorHandler</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder errorHandler(
+                org.springframework.util.ErrorHandler errorHandler) {
+            doSetProperty("errorHandler", errorHandler);
+            return this;
+        }
+        /**
+         * Allows to configure the default errorHandler logging level for
+         * logging uncaught exceptions.
+         * 
+         * The option is a: <code>org.apache.camel.LoggingLevel</code> type.
+         * 
+         * Default: WARN
+         * Group: logging
+         */
+        default ActiveMQComponentBuilder errorHandlerLoggingLevel(
+                org.apache.camel.LoggingLevel errorHandlerLoggingLevel) {
+            doSetProperty("errorHandlerLoggingLevel", errorHandlerLoggingLevel);
+            return this;
+        }
+        /**
+         * Allows to control whether stacktraces should be logged or not, by the
+         * default errorHandler.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: logging
+         */
+        default ActiveMQComponentBuilder errorHandlerLogStackTrace(
+                boolean errorHandlerLogStackTrace) {
+            doSetProperty("errorHandlerLogStackTrace", errorHandlerLogStackTrace);
+            return this;
+        }
+        /**
+         * Set if the deliveryMode, priority or timeToLive qualities of service
+         * should be used when sending messages. This option is based on
+         * Spring's JmsTemplate. The deliveryMode, priority and timeToLive
+         * options are applied to the current endpoint. This contrasts with the
+         * preserveMessageQos option, which operates at message granularity,
+         * reading QoS properties exclusively from the Camel In message headers.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder explicitQosEnabled(
+                boolean explicitQosEnabled) {
+            doSetProperty("explicitQosEnabled", explicitQosEnabled);
+            return this;
+        }
+        /**
+         * Specifies whether the listener session should be exposed when
+         * consuming messages.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         */
+        default ActiveMQComponentBuilder exposeListenerSession(
+                boolean exposeListenerSession) {
+            doSetProperty("exposeListenerSession", exposeListenerSession);
+            return this;
+        }
+        /**
+         * Specifies the limit for idle executions of a receive task, not having
+         * received any message within its execution. If this limit is reached,
+         * the task will shut down and leave receiving to other executing tasks
+         * (in the case of dynamic scheduling; see the maxConcurrentConsumers
+         * setting). There is additional doc available from Spring.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder idleTaskExecutionLimit(
+                int idleTaskExecutionLimit) {
+            doSetProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            return this;
+        }
+        /**
+         * Specify the limit for the number of consumers that are allowed to be
+         * idle at any given time.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder idleConsumerLimit(int idleConsumerLimit) {
+            doSetProperty("idleConsumerLimit", idleConsumerLimit);
+            return this;
+        }
+        /**
+         * Specifies the maximum number of concurrent consumers when consuming
+         * from JMS (not for request/reply over JMS). See also the
+         * maxMessagesPerTask option to control dynamic scaling up/down of
+         * threads. When doing request/reply over JMS then the option
+         * replyToMaxConcurrentConsumers is used to control number of concurrent
+         * consumers on the reply message listener.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder maxConcurrentConsumers(
+                int maxConcurrentConsumers) {
+            doSetProperty("maxConcurrentConsumers", maxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * Specifies the maximum number of concurrent consumers when using
+         * request/reply over JMS. See also the maxMessagesPerTask option to
+         * control dynamic scaling up/down of threads.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder replyToMaxConcurrentConsumers(
+                int replyToMaxConcurrentConsumers) {
+            doSetProperty("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * Specifies the maximum number of concurrent consumers for continue
+         * routing when timeout occurred when using request/reply over JMS.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 1
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder replyOnTimeoutToMaxConcurrentConsumers(
+                int replyOnTimeoutToMaxConcurrentConsumers) {
+            doSetProperty("replyOnTimeoutToMaxConcurrentConsumers", replyOnTimeoutToMaxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * The number of messages per task. -1 is unlimited. If you use a range
+         * for concurrent consumers (eg min max), then this option can be used
+         * to set a value to eg 100 to control how fast the consumers will
+         * shrink when less work is required.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: -1
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder maxMessagesPerTask(
+                int maxMessagesPerTask) {
+            doSetProperty("maxMessagesPerTask", maxMessagesPerTask);
+            return this;
+        }
+        /**
+         * To use a custom Spring
+         * org.springframework.jms.support.converter.MessageConverter so you can
+         * be in control how to map to/from a javax.jms.Message.
+         * 
+         * The option is a:
+         * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder messageConverter(
+                org.springframework.jms.support.converter.MessageConverter messageConverter) {
+            doSetProperty("messageConverter", messageConverter);
+            return this;
+        }
+        /**
+         * Specifies whether Camel should auto map the received JMS message to a
+         * suited payload type, such as javax.jms.TextMessage to a String etc.
+         * See section about how mapping works below for more details.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder mapJmsMessage(boolean mapJmsMessage) {
+            doSetProperty("mapJmsMessage", mapJmsMessage);
+            return this;
+        }
+        /**
+         * When sending, specifies whether message IDs should be added. This is
+         * just an hint to the JMS Broker. If the JMS provider accepts this
+         * hint, these messages must have the message ID set to null; if the
+         * provider ignores the hint, the message ID must be set to its normal
+         * unique value.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder messageIdEnabled(
+                boolean messageIdEnabled) {
+            doSetProperty("messageIdEnabled", messageIdEnabled);
+            return this;
+        }
+        /**
+         * Specifies whether timestamps should be enabled by default on sending
+         * messages. This is just an hint to the JMS broker. If the JMS provider
+         * accepts this hint, these messages must have the timestamp set to
+         * zero; if the provider ignores the hint the timestamp must be set to
+         * its normal value.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder messageTimestampEnabled(
+                boolean messageTimestampEnabled) {
+            doSetProperty("messageTimestampEnabled", messageTimestampEnabled);
+            return this;
+        }
+        /**
+         * If true, Camel will always make a JMS message copy of the message
+         * when it is passed to the producer for sending. Copying the message is
+         * needed in some situations, such as when a
+         * replyToDestinationSelectorName is set (incidentally, Camel will set
+         * the alwaysCopyMessage option to true, if a
+         * replyToDestinationSelectorName is set).
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder alwaysCopyMessage(
+                boolean alwaysCopyMessage) {
+            doSetProperty("alwaysCopyMessage", alwaysCopyMessage);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder useMessageIDAsCorrelationID(
+                boolean useMessageIDAsCorrelationID) {
+            doSetProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            return this;
+        }
+        /**
+         * Values greater than 1 specify the message priority when sending
+         * (where 0 is the lowest priority and 9 is the highest). The
+         * explicitQosEnabled option must also be enabled in order for this
+         * option to have any effect.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 4
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder priority(int priority) {
+            doSetProperty("priority", priority);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder pubSubNoLocal(boolean pubSubNoLocal) {
+            doSetProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 1000
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder receiveTimeout(long receiveTimeout) {
+            doSetProperty("receiveTimeout", receiveTimeout);
+            return this;
+        }
+        /**
+         * Specifies the interval between recovery attempts, i.e. when a
+         * connection is being refreshed, in milliseconds. The default is 5000
+         * ms, that is, 5 seconds.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 5000
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder recoveryInterval(long recoveryInterval) {
+            doSetProperty("recoveryInterval", recoveryInterval);
+            return this;
+        }
+        /**
+         * Allows you to specify a custom task executor for consuming messages.
+         * 
+         * The option is a:
+         * <code>org.springframework.core.task.TaskExecutor</code> type.
+         * 
+         * Group: consumer (advanced)
+         */
+        default ActiveMQComponentBuilder taskExecutor(
+                org.springframework.core.task.TaskExecutor taskExecutor) {
+            doSetProperty("taskExecutor", taskExecutor);
+            return this;
+        }
+        /**
+         * When sending messages, specifies the time-to-live of the message (in
+         * milliseconds).
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: -1
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder timeToLive(long timeToLive) {
+            doSetProperty("timeToLive", timeToLive);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: transaction
+         */
+        default ActiveMQComponentBuilder transacted(boolean transacted) {
+            doSetProperty("transacted", transacted);
+            return this;
+        }
+        /**
+         * If true, Camel will create a JmsTransactionManager, if there is no
+         * transactionManager injected when option transacted=true.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: transaction (advanced)
+         */
+        default ActiveMQComponentBuilder lazyCreateTransactionManager(
+                boolean lazyCreateTransactionManager) {
+            doSetProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * 
+         * The option is a:
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * 
+         * Group: transaction (advanced)
+         */
+        default ActiveMQComponentBuilder transactionManager(
+                org.springframework.transaction.PlatformTransactionManager transactionManager) {
+            doSetProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The name of the transaction to use.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: transaction (advanced)
+         */
+        default ActiveMQComponentBuilder transactionName(
+                java.lang.String transactionName) {
+            doSetProperty("transactionName", transactionName);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: -1
+         * Group: transaction (advanced)
+         */
+        default ActiveMQComponentBuilder transactionTimeout(
+                int transactionTimeout) {
+            doSetProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+        /**
+         * Specifies whether to test the connection on startup. This ensures
+         * that when Camel starts that all the JMS consumers have a valid
+         * connection to the JMS broker. If a connection cannot be granted then
+         * Camel throws an exception on startup. This ensures that Camel is not
+         * started with failed connections. The JMS producers is tested as well.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: common
+         */
+        default ActiveMQComponentBuilder testConnectionOnStartup(
+                boolean testConnectionOnStartup) {
+            doSetProperty("testConnectionOnStartup", testConnectionOnStartup);
+            return this;
+        }
+        /**
+         * Whether to startup the JmsConsumer message listener asynchronously,
+         * when starting a route. For example if a JmsConsumer cannot get a
+         * connection to a remote JMS broker, then it may block while retrying
+         * and/or failover. This will cause Camel to block while starting
+         * routes. By setting this option to true, you will let routes startup,
+         * while the JmsConsumer connects to the JMS broker using a dedicated
+         * thread in asynchronous mode. If this option is used, then beware that
+         * if the connection could not be established, then an exception is
+         * logged at WARN level, and the consumer will not be able to receive
+         * messages; You can then restart the route to retry.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder asyncStartListener(
+                boolean asyncStartListener) {
+            doSetProperty("asyncStartListener", asyncStartListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder asyncStopListener(
+                boolean asyncStopListener) {
+            doSetProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * When using mapJmsMessage=false Camel will create a new JMS message to
+         * send to a new JMS destination if you touch the headers (get or set)
+         * during the route. Set this option to true to force Camel to send the
+         * original JMS message that was received.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder forceSendOriginalMessage(
+                boolean forceSendOriginalMessage) {
+            doSetProperty("forceSendOriginalMessage", forceSendOriginalMessage);
+            return this;
+        }
+        /**
+         * The timeout for waiting for a reply when using the InOut Exchange
+         * Pattern (in milliseconds). The default is 20 seconds. You can include
+         * the header CamelJmsRequestTimeout to override this endpoint
+         * configured timeout value, and thus have per message individual
+         * timeout values. See also the requestTimeoutCheckerInterval option.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 20000
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder requestTimeout(long requestTimeout) {
+            doSetProperty("requestTimeout", requestTimeout);
+            return this;
+        }
+        /**
+         * Configures how often Camel should check for timed out Exchanges when
+         * doing request/reply over JMS. By default Camel checks once per
+         * second. But if you must react faster when a timeout occurs, then you
+         * can lower this interval, to check more frequently. The timeout is
+         * determined by the option requestTimeout.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 1000
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder requestTimeoutCheckerInterval(
+                long requestTimeoutCheckerInterval) {
+            doSetProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            return this;
+        }
+        /**
+         * You can transfer the exchange over the wire instead of just the body
+         * and headers. The following fields are transferred: In body, Out body,
+         * Fault body, In headers, Out headers, Fault headers, exchange
+         * properties, exchange exception. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level. You must enable this option on both the producer
+         * and consumer side, so Camel knows the payloads is an Exchange and not
+         * a regular payload.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder transferExchange(
+                boolean transferExchange) {
+            doSetProperty("transferExchange", transferExchange);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed on the consumer side, then the caused Exception will
+         * be send back in response as a javax.jms.ObjectMessage. If the client
+         * is Camel, the returned Exception is rethrown. This allows you to use
+         * Camel JMS as a bridge in your routing - for example, using persistent
+         * queues to enable robust routing. Notice that if you also have
+         * transferExchange enabled, this option takes precedence. The caught
+         * exception is required to be serializable. The original Exception on
+         * the consumer side can be wrapped in an outer exception such as
+         * org.apache.camel.RuntimeCamelException when returned to the producer.
+         * Use this with caution as the data is using Java Object serialization
+         * and requires the received to be able to deserialize the data at Class
+         * level, which forces a strong coupling between the producers and
+         * consumer!.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder transferException(
+                boolean transferException) {
+            doSetProperty("transferException", transferException);
+            return this;
+        }
+        /**
+         * Allows you to use your own implementation of the
+         * org.springframework.jms.core.JmsOperations interface. Camel uses
+         * JmsTemplate as default. Can be used for testing purpose, but not used
+         * much as stated in the spring API docs.
+         * 
+         * The option is a:
+         * <code>org.springframework.jms.core.JmsOperations</code> type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder jmsOperations(
+                org.springframework.jms.core.JmsOperations jmsOperations) {
+            doSetProperty("jmsOperations", jmsOperations);
+            return this;
+        }
+        /**
+         * A pluggable
+         * org.springframework.jms.support.destination.DestinationResolver that
+         * allows you to use your own resolver (for example, to lookup the real
+         * destination in a JNDI registry).
+         * 
+         * The option is a:
+         * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder destinationResolver(
+                org.springframework.jms.support.destination.DestinationResolver destinationResolver) {
+            doSetProperty("destinationResolver", destinationResolver);
+            return this;
+        }
+        /**
+         * Allows for explicitly specifying which kind of strategy to use for
+         * replyTo queues when doing request/reply over JMS. Possible values
+         * are: Temporary, Shared, or Exclusive. By default Camel will use
+         * temporary queues. However if replyTo has been configured, then Shared
+         * is used by default. This option allows you to use exclusive queues
+         * instead of shared ones. See Camel JMS documentation for more details,
+         * and especially the notes about the implications if running in a
+         * clustered environment, and the fact that Shared reply queues has
+         * lower performance than its alternatives Temporary and Exclusive.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.ReplyToType</code> type.
+         * 
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder replyToType(
+                org.apache.camel.component.jms.ReplyToType replyToType) {
+            doSetProperty("replyToType", replyToType);
+            return this;
+        }
+        /**
+         * Set to true, if you want to send message using the QoS settings
+         * specified on the message, instead of the QoS settings on the JMS
+         * endpoint. The following three headers are considered JMSPriority,
+         * JMSDeliveryMode, and JMSExpiration. You can provide all or only some
+         * of them. If not provided, Camel will fall back to use the values from
+         * the endpoint instead. So, when using this option, the headers
+         * override the values from the endpoint. The explicitQosEnabled option,
+         * by contrast, will only use options set on the endpoint, and not
+         * values from the message header.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder preserveMessageQos(
+                boolean preserveMessageQos) {
+            doSetProperty("preserveMessageQos", preserveMessageQos);
+            return this;
+        }
+        /**
+         * Whether the JmsConsumer processes the Exchange asynchronously. If
+         * enabled then the JmsConsumer may pickup the next message from the JMS
+         * queue, while the previous message is being processed asynchronously
+         * (by the Asynchronous Routing Engine). This means that messages may be
+         * processed not 100% strictly in order. If disabled (as default) then
+         * the Exchange is fully processed before the JmsConsumer will pickup
+         * the next message from the JMS queue. Note if transacted has been
+         * enabled, then asyncConsumer=true does not run asynchronously, as
+         * transaction must be executed synchronously (Camel 3.0 may support
+         * async transactions).
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder asyncConsumer(boolean asyncConsumer) {
+            doSetProperty("asyncConsumer", asyncConsumer);
+            return this;
+        }
+        /**
+         * Whether to allow sending messages with no body. If this option is
+         * false and the message body is null, then an JMSException is thrown.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder allowNullBody(boolean allowNullBody) {
+            doSetProperty("allowNullBody", allowNullBody);
+            return this;
+        }
+        /**
+         * Only applicable when sending to JMS destination using InOnly (eg fire
+         * and forget). Enabling this option will enrich the Camel Exchange with
+         * the actual JMSMessageID that was used by the JMS client when the
+         * message was sent to the JMS destination.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder includeSentJMSMessageID(
+                boolean includeSentJMSMessageID) {
+            doSetProperty("includeSentJMSMessageID", includeSentJMSMessageID);
+            return this;
+        }
+        /**
+         * Whether to include all JMSXxxx properties when mapping from JMS to
+         * Camel Message. Setting this to true will include properties such as
+         * JMSXAppID, and JMSXUserID etc. Note: If you are using a custom
+         * headerFilterStrategy then this option does not apply.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder includeAllJMSXProperties(
+                boolean includeAllJMSXProperties) {
+            doSetProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            return this;
+        }
+        /**
+         * Specifies what default TaskExecutor type to use in the
+         * DefaultMessageListenerContainer, for both consumer endpoints and the
+         * ReplyTo consumer of producer endpoints. Possible values: SimpleAsync
+         * (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's
+         * ThreadPoolTaskExecutor with optimal values - cached threadpool-like).
+         * If not set, it defaults to the previous behaviour, which uses a
+         * cached thread pool for consumer endpoints and SimpleAsync for reply
+         * consumers. The use of ThreadPool is recommended to reduce thread
+         * trash in elastic configurations with dynamically increasing and
+         * decreasing concurrent consumers.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
+         * type.
+         * 
+         * Group: consumer (advanced)
+         */
+        default ActiveMQComponentBuilder defaultTaskExecutorType(
+                org.apache.camel.component.jms.DefaultTaskExecutorType defaultTaskExecutorType) {
+            doSetProperty("defaultTaskExecutorType", defaultTaskExecutorType);
+            return this;
+        }
+        /**
+         * Pluggable strategy for encoding and decoding JMS keys so they can be
+         * compliant with the JMS specification. Camel provides two
+         * implementations out of the box: default and passthrough. The default
+         * strategy will safely marshal dots and hyphens (. and -). The
+         * passthrough strategy leaves the key as is. Can be used for JMS
+         * brokers which do not care whether JMS header keys contain illegal
+         * characters. You can provide your own implementation of the
+         * org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it
+         * using the # notation.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder jmsKeyFormatStrategy(
+                org.apache.camel.component.jms.JmsKeyFormatStrategy jmsKeyFormatStrategy) {
+            doSetProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            return this;
+        }
+        /**
+         * This option is used to allow additional headers which may have values
+         * that are invalid according to JMS specification. For example some
+         * message systems such as WMQ do this with header names using prefix
+         * JMS_IBM_MQMD_ containing values with byte array or other invalid
+         * types. You can specify multiple header names separated by comma, and
+         * use as suffix for wildcard matching.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder allowAdditionalHeaders(
+                java.lang.String allowAdditionalHeaders) {
+            doSetProperty("allowAdditionalHeaders", allowAdditionalHeaders);
+            return this;
+        }
+        /**
+         * To use a custom QueueBrowseStrategy when browsing queues.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.QueueBrowseStrategy</code> type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder queueBrowseStrategy(
+                org.apache.camel.component.jms.QueueBrowseStrategy queueBrowseStrategy) {
+            doSetProperty("queueBrowseStrategy", queueBrowseStrategy);
+            return this;
+        }
+        /**
+         * To use the given MessageCreatedStrategy which are invoked when Camel
+         * creates new instances of javax.jms.Message objects when Camel is
+         * sending a JMS message.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder messageCreatedStrategy(
+                org.apache.camel.component.jms.MessageCreatedStrategy messageCreatedStrategy) {
+            doSetProperty("messageCreatedStrategy", messageCreatedStrategy);
+            return this;
+        }
+        /**
+         * Number of times to wait for provisional correlation id to be updated
+         * to the actual correlation id when doing request/reply over JMS and
+         * when the option useMessageIDAsCorrelationID is enabled.
+         * 
+         * The option is a: <code>int</code> type.
+         * 
+         * Default: 50
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                int waitForProvisionCorrelationToBeUpdatedCounter) {
+            doSetProperty("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
+            return this;
+        }
+        /**
+         * Interval in millis to sleep each time while waiting for provisional
+         * correlation id to be updated.
+         * 
+         * The option is a: <code>long</code> type.
+         * 
+         * Default: 100
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            doSetProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            return this;
+        }
+        /**
+         * Use this JMS property to correlate messages in InOut exchange pattern
+         * (request-reply) instead of JMSCorrelationID property. This allows you
+         * to exchange messages with systems that do not correlate messages
+         * using JMSCorrelationID JMS property. If used JMSCorrelationID will
+         * not be used or set by Camel. The value of here named property will be
+         * generated if not supplied in the header of the message under the same
+         * name.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder correlationProperty(
+                java.lang.String correlationProperty) {
+            doSetProperty("correlationProperty", correlationProperty);
+            return this;
+        }
+        /**
+         * Set whether to make the subscription durable. The durable
+         * subscription name to be used can be specified through the
+         * subscriptionName property. Default is false. Set this to true to
+         * register a durable subscription, typically in combination with a
+         * subscriptionName value (unless your message listener class name is
+         * good enough as subscription name). Only makes sense when listening to
+         * a topic (pub-sub domain), therefore this method switches the
+         * pubSubDomain flag as well.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder subscriptionDurable(
+                boolean subscriptionDurable) {
+            doSetProperty("subscriptionDurable", subscriptionDurable);
+            return this;
+        }
+        /**
+         * Set whether to make the subscription shared. The shared subscription
+         * name to be used can be specified through the subscriptionName
+         * property. Default is false. Set this to true to register a shared
+         * subscription, typically in combination with a subscriptionName value
+         * (unless your message listener class name is good enough as
+         * subscription name). Note that shared subscriptions may also be
+         * durable, so this flag can (and often will) be combined with
+         * subscriptionDurable as well. Only makes sense when listening to a
+         * topic (pub-sub domain), therefore this method switches the
+         * pubSubDomain flag as well. Requires a JMS 2.0 compatible message
+         * broker.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder subscriptionShared(
+                boolean subscriptionShared) {
+            doSetProperty("subscriptionShared", subscriptionShared);
+            return this;
+        }
+        /**
+         * Set the name of a subscription to create. To be applied in case of a
+         * topic (pub-sub domain) with a shared or durable subscription. The
+         * subscription name needs to be unique within this client's JMS client
+         * id. Default is the class name of the specified message listener.
+         * Note: Only 1 concurrent consumer (which is the default of this
+         * message listener container) is allowed for each subscription, except
+         * for a shared subscription (which requires JMS 2.0).
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder subscriptionName(
+                java.lang.String subscriptionName) {
+            doSetProperty("subscriptionName", subscriptionName);
+            return this;
+        }
+        /**
+         * Sets whether StreamMessage type is enabled or not. Message payloads
+         * of streaming kind such as files, InputStream, etc will either by sent
+         * as BytesMessage or StreamMessage. This option controls which kind
+         * will be used. By default BytesMessage is used which enforces the
+         * entire message payload to be read into memory. By enabling this
+         * option the message payload is read into memory in chunks and each
+         * chunk is then written to the StreamMessage until no more data.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         */
+        default ActiveMQComponentBuilder streamMessageTypeEnabled(
+                boolean streamMessageTypeEnabled) {
+            doSetProperty("streamMessageTypeEnabled", streamMessageTypeEnabled);
+            return this;
+        }
+        /**
+         * Sets whether date headers should be formatted according to the ISO
+         * 8601 standard.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder formatDateHeadersToIso8601(
+                boolean formatDateHeadersToIso8601) {
+            doSetProperty("formatDateHeadersToIso8601", formatDateHeadersToIso8601);
+            return this;
+        }
+        /**
+         * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+         * header to and from Camel message.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * 
+         * Group: filter
+         */
+        default ActiveMQComponentBuilder headerFilterStrategy(
+                org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy) {
+            doSetProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * Whether the component should use basic property binding (Camel 2.x)
+         * or the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default ActiveMQComponentBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default ActiveMQComponentBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Allows for bridging the consumer to the Camel routing Error 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.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: consumer
+         */
+        default ActiveMQComponentBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+    }
+
+    class ActiveMQComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<ActiveMQComponent>
+            implements
+                ActiveMQComponentBuilder {
+        @Override
+        protected ActiveMQComponent buildConcreteComponent() {
+            return new ActiveMQComponent();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "brokerURL": ((ActiveMQComponent) component).setBrokerURL((java.lang.String) value); return true;
+            case "trustAllPackages": ((ActiveMQComponent) component).setTrustAllPackages((boolean) value); return true;
+            case "usePooledConnection": ((ActiveMQComponent) component).setUsePooledConnection((boolean) value); return true;
+            case "useSingleConnection": ((ActiveMQComponent) component).setUseSingleConnection((boolean) value); return true;
+            case "configuration": ((ActiveMQComponent) component).setConfiguration((org.apache.camel.component.jms.JmsConfiguration) value); return true;
+            case "allowAutoWiredConnectionFactory": ((ActiveMQComponent) component).setAllowAutoWiredConnectionFactory((boolean) value); return true;
+            case "allowAutoWiredDestinationResolver": ((ActiveMQComponent) component).setAllowAutoWiredDestinationResolver((boolean) value); return true;
+            case "acceptMessagesWhileStopping": ((ActiveMQComponent) component).setAcceptMessagesWhileStopping((boolean) value); return true;
+            case "allowReplyManagerQuickStop": ((ActiveMQComponent) component).setAllowReplyManagerQuickStop((boolean) value); return true;
+            case "acknowledgementMode": ((ActiveMQComponent) component).setAcknowledgementMode((int) value); return true;
+            case "eagerPoisonBody": ((ActiveMQComponent) component).setEagerPoisonBody((java.lang.String) value); return true;
+            case "eagerLoadingOfProperties": ((ActiveMQComponent) component).setEagerLoadingOfProperties((boolean) value); return true;
+            case "acknowledgementModeName": ((ActiveMQComponent) component).setAcknowledgementModeName((java.lang.String) value); return true;
+            case "autoStartup": ((ActiveMQComponent) component).setAutoStartup((boolean) value); return true;
+            case "cacheLevel": ((ActiveMQComponent) component).setCacheLevel((int) value); return true;
+            case "cacheLevelName": ((ActiveMQComponent) component).setCacheLevelName((java.lang.String) value); return true;
+            case "replyToCacheLevelName": ((ActiveMQComponent) component).setReplyToCacheLevelName((java.lang.String) value); return true;
+            case "clientId": ((ActiveMQComponent) component).setClientId((java.lang.String) value); return true;
+            case "concurrentConsumers": ((ActiveMQComponent) component).setConcurrentConsumers((int) value); return true;
+            case "replyToConcurrentConsumers": ((ActiveMQComponent) component).setReplyToConcurrentConsumers((int) value); return true;
+            case "connectionFactory": ((ActiveMQComponent) component).setConnectionFactory((javax.jms.ConnectionFactory) value); return true;
+            case "username": ((ActiveMQComponent) component).setUsername((java.lang.String) value); return true;
+            case "password": ((ActiveMQComponent) component).setPassword((java.lang.String) value); return true;
+            case "deliveryPersistent": ((ActiveMQComponent) component).setDeliveryPersistent((boolean) value); return true;
+            case "deliveryMode": ((ActiveMQComponent) component).setDeliveryMode((java.lang.Integer) value); return true;
+            case "durableSubscriptionName": ((ActiveMQComponent) component).setDurableSubscriptionName((java.lang.String) value); return true;
+            case "exceptionListener": ((ActiveMQComponent) component).setExceptionListener((javax.jms.ExceptionListener) value); return true;
+            case "errorHandler": ((ActiveMQComponent) component).setErrorHandler((org.springframework.util.ErrorHandler) value); return true;
+            case "errorHandlerLoggingLevel": ((ActiveMQComponent) component).setErrorHandlerLoggingLevel((org.apache.camel.LoggingLevel) value); return true;
+            case "errorHandlerLogStackTrace": ((ActiveMQComponent) component).setErrorHandlerLogStackTrace((boolean) value); return true;
+            case "explicitQosEnabled": ((ActiveMQComponent) component).setExplicitQosEnabled((boolean) value); return true;
+            case "exposeListenerSession": ((ActiveMQComponent) component).setExposeListenerSession((boolean) value); return true;
+            case "idleTaskExecutionLimit": ((ActiveMQComponent) component).setIdleTaskExecutionLimit((int) value); return true;
+            case "idleConsumerLimit": ((ActiveMQComponent) component).setIdleConsumerLimit((int) value); return true;
+            case "maxConcurrentConsumers": ((ActiveMQComponent) component).setMaxConcurrentConsumers((int) value); return true;
+            case "replyToMaxConcurrentConsumers": ((ActiveMQComponent) component).setReplyToMaxConcurrentConsumers((int) value); return true;
+            case "replyOnTimeoutToMaxConcurrentConsumers": ((ActiveMQComponent) component).setReplyOnTimeoutToMaxConcurrentConsumers((int) value); return true;
+            case "maxMessagesPerTask": ((ActiveMQComponent) component).setMaxMessagesPerTask((int) value); return true;
+            case "messageConverter": ((ActiveMQComponent) component).setMessageConverter((org.springframework.jms.support.converter.MessageConverter) value); return true;
+            case "mapJmsMessage": ((ActiveMQComponent) component).setMapJmsMessage((boolean) value); return true;
+            case "messageIdEnabled": ((ActiveMQComponent) component).setMessageIdEnabled((boolean) value); return true;
+            case "messageTimestampEnabled": ((ActiveMQComponent) component).setMessageTimestampEnabled((boolean) value); return true;
+            case "alwaysCopyMessage": ((ActiveMQComponent) component).setAlwaysCopyMessage((boolean) value); return true;
+            case "useMessageIDAsCorrelationID": ((ActiveMQComponent) component).setUseMessageIDAsCorrelationID((boolean) value); return true;
+            case "priority": ((ActiveMQComponent) component).setPriority((int) value); return true;
+            case "pubSubNoLocal": ((ActiveMQComponent) component).setPubSubNoLocal((boolean) value); return true;
+            case "receiveTimeout": ((ActiveMQComponent) component).setReceiveTimeout((long) value); return true;
+            case "recoveryInterval": ((ActiveMQComponent) component).setRecoveryInterval((long) value); return true;
+            case "taskExecutor": ((ActiveMQComponent) component).setTaskExecutor((org.springframework.core.task.TaskExecutor) value); return true;
+            case "timeToLive": ((ActiveMQComponent) component).setTimeToLive((long) value); return true;
+            case "transacted": ((ActiveMQComponent) component).setTransacted((boolean) value); return true;
+            case "lazyCreateTransactionManager": ((ActiveMQComponent) component).setLazyCreateTransactionManager((boolean) value); return true;
+            case "transactionManager": ((ActiveMQComponent) component).setTransactionManager((org.springframework.transaction.PlatformTransactionManager) value); return true;
+            case "transactionName": ((ActiveMQComponent) component).setTransactionName((java.lang.String) value); return true;
+            case "transactionTimeout": ((ActiveMQComponent) component).setTransactionTimeout((int) value); return true;
+            case "testConnectionOnStartup": ((ActiveMQComponent) component).setTestConnectionOnStartup((boolean) value); return true;
+            case "asyncStartListener": ((ActiveMQComponent) component).setAsyncStartListener((boolean) value); return true;
+            case "asyncStopListener": ((ActiveMQComponent) component).setAsyncStopListener((boolean) value); return true;
+            case "forceSendOriginalMessage": ((ActiveMQComponent) component).setForceSendOriginalMessage((boolean) value); return true;
+            case "requestTimeout": ((ActiveMQComponent) component).setRequestTimeout((long) value); return true;
+            case "requestTimeoutCheckerInterval": ((ActiveMQComponent) component).setRequestTimeoutCheckerInterval((long) value); return true;
+            case "transferExchange": ((ActiveMQComponent) component).setTransferExchange((boolean) value); return true;
+            case "transferException": ((ActiveMQComponent) component).setTransferException((boolean) value); return true;
+            case "jmsOperations": ((ActiveMQComponent) component).setJmsOperations((org.springframework.jms.core.JmsOperations) value); return true;
+            case "destinationResolver": ((ActiveMQComponent) component).setDestinationResolver((org.springframework.jms.support.destination.DestinationResolver) value); return true;
+            case "replyToType": ((ActiveMQComponent) component).setReplyToType((org.apache.camel.component.jms.ReplyToType) value); return true;
+            case "preserveMessageQos": ((ActiveMQComponent) component).setPreserveMessageQos((boolean) value); return true;
+            case "asyncConsumer": ((ActiveMQComponent) component).setAsyncConsumer((boolean) value); return true;
+            case "allowNullBody": ((ActiveMQComponent) component).setAllowNullBody((boolean) value); return true;
+            case "includeSentJMSMessageID": ((ActiveMQComponent) component).setIncludeSentJMSMessageID((boolean) value); return true;
+            case "includeAllJMSXProperties": ((ActiveMQComponent) component).setIncludeAllJMSXProperties((boolean) value); return true;
+            case "defaultTaskExecutorType": ((ActiveMQComponent) component).setDefaultTaskExecutorType((org.apache.camel.component.jms.DefaultTaskExecutorType) value); return true;
+            case "jmsKeyFormatStrategy": ((ActiveMQComponent) component).setJmsKeyFormatStrategy((org.apache.camel.component.jms.JmsKeyFormatStrategy) value); return true;
+            case "allowAdditionalHeaders": ((ActiveMQComponent) component).setAllowAdditionalHeaders((java.lang.String) value); return true;
+            case "queueBrowseStrategy": ((ActiveMQComponent) component).setQueueBrowseStrategy((org.apache.camel.component.jms.QueueBrowseStrategy) value); return true;
+            case "messageCreatedStrategy": ((ActiveMQComponent) component).setMessageCreatedStrategy((org.apache.camel.component.jms.MessageCreatedStrategy) value); return true;
+            case "waitForProvisionCorrelationToBeUpdatedCounter": ((ActiveMQComponent) component).setWaitForProvisionCorrelationToBeUpdatedCounter((int) value); return true;
+            case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": ((ActiveMQComponent) component).setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime((long) value); return true;
+            case "correlationProperty": ((ActiveMQComponent) component).setCorrelationProperty((java.lang.String) value); return true;
+            case "subscriptionDurable": ((ActiveMQComponent) component).setSubscriptionDurable((boolean) value); return true;
+            case "subscriptionShared": ((ActiveMQComponent) component).setSubscriptionShared((boolean) value); return true;
+            case "subscriptionName": ((ActiveMQComponent) component).setSubscriptionName((java.lang.String) value); return true;
+            case "streamMessageTypeEnabled": ((ActiveMQComponent) component).setStreamMessageTypeEnabled((boolean) value); return true;
+            case "formatDateHeadersToIso8601": ((ActiveMQComponent) component).setFormatDateHeadersToIso8601((boolean) value); return true;
+            case "headerFilterStrategy": ((ActiveMQComponent) component).setHeaderFilterStrategy((org.apache.camel.spi.HeaderFilterStrategy) value); return true;
+            case "basicPropertyBinding": ((ActiveMQComponent) component).setBasicPropertyBinding((boolean) value); return true;
+            case "lazyStartProducer": ((ActiveMQComponent) component).setLazyStartProducer((boolean) value); return true;
+            case "bridgeErrorHandler": ((ActiveMQComponent) component).setBridgeErrorHandler((boolean) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcComponentBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcComponentBuilderFactory.java
new file mode 100644
index 0000000..dc20110
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcComponentBuilderFactory.java
@@ -0,0 +1,214 @@
+/*
+ * 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.builder.component.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.ahc.AhcComponent;
+
+/**
+ * To call external HTTP services using Async Http Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface AhcComponentBuilderFactory {
+
+    /**
+     * AHC (camel-ahc)
+     * To call external HTTP services using Async Http Client.
+     * 
+     * Category: http
+     * Since: 2.8
+     * Maven coordinates: org.apache.camel:camel-ahc
+     */
+    static AhcComponentBuilder ahc() {
+        return new AhcComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the AHC component.
+     */
+    interface AhcComponentBuilder extends ComponentBuilder<AhcComponent> {
+        /**
+         * To use a custom AsyncHttpClient.
+         * 
+         * The option is a: <code>org.asynchttpclient.AsyncHttpClient</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default AhcComponentBuilder client(
+                org.asynchttpclient.AsyncHttpClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * To use a custom AhcBinding which allows to control how to bind
+         * between AHC and Camel.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.ahc.AhcBinding</code> type.
+         * 
+         * Group: advanced
+         */
+        default AhcComponentBuilder binding(
+                org.apache.camel.component.ahc.AhcBinding binding) {
+            doSetProperty("binding", binding);
+            return this;
+        }
+        /**
+         * To configure the AsyncHttpClient to use a custom
+         * com.ning.http.client.AsyncHttpClientConfig instance.
+         * 
+         * The option is a:
+         * <code>org.asynchttpclient.AsyncHttpClientConfig</code> type.
+         * 
+         * Group: advanced
+         */
+        default AhcComponentBuilder clientConfig(
+                org.asynchttpclient.AsyncHttpClientConfig clientConfig) {
+            doSetProperty("clientConfig", clientConfig);
+            return this;
+        }
+        /**
+         * 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 the clientConfig
+         * option at the endpoint or component level.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.support.jsse.SSLContextParameters</code> type.
+         * 
+         * Group: security
+         */
+        default AhcComponentBuilder sslContextParameters(
+                org.apache.camel.support.jsse.SSLContextParameters sslContextParameters) {
+            doSetProperty("sslContextParameters", sslContextParameters);
+            return this;
+        }
+        /**
+         * 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
+         * deserialize the incoming data from the request to Java and that can
+         * be a potential security risk.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AhcComponentBuilder allowJavaSerializedObject(
+                boolean allowJavaSerializedObject) {
+            doSetProperty("allowJavaSerializedObject", allowJavaSerializedObject);
+            return this;
+        }
+        /**
+         * Enable usage of global SSL context parameters.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: security
+         */
+        default AhcComponentBuilder useGlobalSslContextParameters(
+                boolean useGlobalSslContextParameters) {
+            doSetProperty("useGlobalSslContextParameters", useGlobalSslContextParameters);
+            return this;
+        }
+        /**
+         * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+         * header to and from Camel message.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * 
+         * Group: filter
+         */
+        default AhcComponentBuilder headerFilterStrategy(
+                org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy) {
+            doSetProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * Whether the component should use basic property binding (Camel 2.x)
+         * or the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AhcComponentBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AhcComponentBuilder lazyStartProducer(boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    }
+
+    class AhcComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<AhcComponent>
+            implements
+                AhcComponentBuilder {
+        @Override
+        protected AhcComponent buildConcreteComponent() {
+            return new AhcComponent();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "client": ((AhcComponent) component).setClient((org.asynchttpclient.AsyncHttpClient) value); return true;
+            case "binding": ((AhcComponent) component).setBinding((org.apache.camel.component.ahc.AhcBinding) value); return true;
+            case "clientConfig": ((AhcComponent) component).setClientConfig((org.asynchttpclient.AsyncHttpClientConfig) value); return true;
+            case "sslContextParameters": ((AhcComponent) component).setSslContextParameters((org.apache.camel.support.jsse.SSLContextParameters) value); return true;
+            case "allowJavaSerializedObject": ((AhcComponent) component).setAllowJavaSerializedObject((boolean) value); return true;
+            case "useGlobalSslContextParameters": ((AhcComponent) component).setUseGlobalSslContextParameters((boolean) value); return true;
+            case "headerFilterStrategy": ((AhcComponent) component).setHeaderFilterStrategy((org.apache.camel.spi.HeaderFilterStrategy) value); return true;
+            case "basicPropertyBinding": ((AhcComponent) component).setBasicPropertyBinding((boolean) value); return true;
+            case "lazyStartProducer": ((AhcComponent) component).setLazyStartProducer((boolean) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcWsWsComponentBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcWsWsComponentBuilderFactory.java
new file mode 100644
index 0000000..d81e6ce
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcWsWsComponentBuilderFactory.java
@@ -0,0 +1,215 @@
+/*
+ * 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.builder.component.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.ahc.ws.WsComponent;
+
+/**
+ * To exchange data with external Websocket servers using Async Http Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface AhcWsWsComponentBuilderFactory {
+
+    /**
+     * AHC Websocket (camel-ahc-ws)
+     * To exchange data with external Websocket servers using Async Http Client.
+     * 
+     * Category: websocket
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-ahc-ws
+     */
+    static AhcWsWsComponentBuilder ahcWs() {
+        return new AhcWsWsComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the AHC Websocket component.
+     */
+    interface AhcWsWsComponentBuilder extends ComponentBuilder<WsComponent> {
+        /**
+         * To use a custom AsyncHttpClient.
+         * 
+         * The option is a: <code>org.asynchttpclient.AsyncHttpClient</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default AhcWsWsComponentBuilder client(
+                org.asynchttpclient.AsyncHttpClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * To use a custom AhcBinding which allows to control how to bind
+         * between AHC and Camel.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.ahc.AhcBinding</code> type.
+         * 
+         * Group: advanced
+         */
+        default AhcWsWsComponentBuilder binding(
+                org.apache.camel.component.ahc.AhcBinding binding) {
+            doSetProperty("binding", binding);
+            return this;
+        }
+        /**
+         * To configure the AsyncHttpClient to use a custom
+         * com.ning.http.client.AsyncHttpClientConfig instance.
+         * 
+         * The option is a:
+         * <code>org.asynchttpclient.AsyncHttpClientConfig</code> type.
+         * 
+         * Group: advanced
+         */
+        default AhcWsWsComponentBuilder clientConfig(
+                org.asynchttpclient.AsyncHttpClientConfig clientConfig) {
+            doSetProperty("clientConfig", clientConfig);
+            return this;
+        }
+        /**
+         * 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 the clientConfig
+         * option at the endpoint or component level.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.support.jsse.SSLContextParameters</code> type.
+         * 
+         * Group: security
+         */
+        default AhcWsWsComponentBuilder sslContextParameters(
+                org.apache.camel.support.jsse.SSLContextParameters sslContextParameters) {
+            doSetProperty("sslContextParameters", sslContextParameters);
+            return this;
+        }
+        /**
+         * 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
+         * deserialize the incoming data from the request to Java and that can
+         * be a potential security risk.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AhcWsWsComponentBuilder allowJavaSerializedObject(
+                boolean allowJavaSerializedObject) {
+            doSetProperty("allowJavaSerializedObject", allowJavaSerializedObject);
+            return this;
+        }
+        /**
+         * Enable usage of global SSL context parameters.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: security
+         */
+        default AhcWsWsComponentBuilder useGlobalSslContextParameters(
+                boolean useGlobalSslContextParameters) {
+            doSetProperty("useGlobalSslContextParameters", useGlobalSslContextParameters);
+            return this;
+        }
+        /**
+         * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+         * header to and from Camel message.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * 
+         * Group: filter
+         */
+        default AhcWsWsComponentBuilder headerFilterStrategy(
+                org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy) {
+            doSetProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * Whether the component should use basic property binding (Camel 2.x)
+         * or the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AhcWsWsComponentBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AhcWsWsComponentBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    }
+
+    class AhcWsWsComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<WsComponent>
+            implements
+                AhcWsWsComponentBuilder {
+        @Override
+        protected WsComponent buildConcreteComponent() {
+            return new WsComponent();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "client": ((WsComponent) component).setClient((org.asynchttpclient.AsyncHttpClient) value); return true;
+            case "binding": ((WsComponent) component).setBinding((org.apache.camel.component.ahc.AhcBinding) value); return true;
+            case "clientConfig": ((WsComponent) component).setClientConfig((org.asynchttpclient.AsyncHttpClientConfig) value); return true;
+            case "sslContextParameters": ((WsComponent) component).setSslContextParameters((org.apache.camel.support.jsse.SSLContextParameters) value); return true;
+            case "allowJavaSerializedObject": ((WsComponent) component).setAllowJavaSerializedObject((boolean) value); return true;
+            case "useGlobalSslContextParameters": ((WsComponent) component).setUseGlobalSslContextParameters((boolean) value); return true;
+            case "headerFilterStrategy": ((WsComponent) component).setHeaderFilterStrategy((org.apache.camel.spi.HeaderFilterStrategy) value); return true;
+            case "basicPropertyBinding": ((WsComponent) component).setBasicPropertyBinding((boolean) value); return true;
+            case "lazyStartProducer": ((WsComponent) component).setLazyStartProducer((boolean) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcWssWsComponentBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcWssWsComponentBuilderFactory.java
new file mode 100644
index 0000000..e0583b4
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/AhcWssWsComponentBuilderFactory.java
@@ -0,0 +1,215 @@
+/*
+ * 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.builder.component.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.ahc.ws.WsComponent;
+
+/**
+ * To exchange data with external Websocket servers using Async Http Client.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface AhcWssWsComponentBuilderFactory {
+
+    /**
+     * AHC Secure Websocket (Secure) (camel-ahc-ws)
+     * To exchange data with external Websocket servers using Async Http Client.
+     * 
+     * Category: websocket
+     * Since: 2.14
+     * Maven coordinates: org.apache.camel:camel-ahc-ws
+     */
+    static AhcWssWsComponentBuilder ahcWss() {
+        return new AhcWssWsComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the AHC Secure Websocket (Secure) component.
+     */
+    interface AhcWssWsComponentBuilder extends ComponentBuilder<WsComponent> {
+        /**
+         * To use a custom AsyncHttpClient.
+         * 
+         * The option is a: <code>org.asynchttpclient.AsyncHttpClient</code>
+         * type.
+         * 
+         * Group: advanced
+         */
+        default AhcWssWsComponentBuilder client(
+                org.asynchttpclient.AsyncHttpClient client) {
+            doSetProperty("client", client);
+            return this;
+        }
+        /**
+         * To use a custom AhcBinding which allows to control how to bind
+         * between AHC and Camel.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.ahc.AhcBinding</code> type.
+         * 
+         * Group: advanced
+         */
+        default AhcWssWsComponentBuilder binding(
+                org.apache.camel.component.ahc.AhcBinding binding) {
+            doSetProperty("binding", binding);
+            return this;
+        }
+        /**
+         * To configure the AsyncHttpClient to use a custom
+         * com.ning.http.client.AsyncHttpClientConfig instance.
+         * 
+         * The option is a:
+         * <code>org.asynchttpclient.AsyncHttpClientConfig</code> type.
+         * 
+         * Group: advanced
+         */
+        default AhcWssWsComponentBuilder clientConfig(
+                org.asynchttpclient.AsyncHttpClientConfig clientConfig) {
+            doSetProperty("clientConfig", clientConfig);
+            return this;
+        }
+        /**
+         * 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 the clientConfig
+         * option at the endpoint or component level.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.support.jsse.SSLContextParameters</code> type.
+         * 
+         * Group: security
+         */
+        default AhcWssWsComponentBuilder sslContextParameters(
+                org.apache.camel.support.jsse.SSLContextParameters sslContextParameters) {
+            doSetProperty("sslContextParameters", sslContextParameters);
+            return this;
+        }
+        /**
+         * 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
+         * deserialize the incoming data from the request to Java and that can
+         * be a potential security risk.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AhcWssWsComponentBuilder allowJavaSerializedObject(
+                boolean allowJavaSerializedObject) {
+            doSetProperty("allowJavaSerializedObject", allowJavaSerializedObject);
+            return this;
+        }
+        /**
+         * Enable usage of global SSL context parameters.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: security
+         */
+        default AhcWssWsComponentBuilder useGlobalSslContextParameters(
+                boolean useGlobalSslContextParameters) {
+            doSetProperty("useGlobalSslContextParameters", useGlobalSslContextParameters);
+            return this;
+        }
+        /**
+         * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+         * header to and from Camel message.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * 
+         * Group: filter
+         */
+        default AhcWssWsComponentBuilder headerFilterStrategy(
+                org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy) {
+            doSetProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * Whether the component should use basic property binding (Camel 2.x)
+         * or the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AhcWssWsComponentBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default AhcWssWsComponentBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+    }
+
+    class AhcWssWsComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<WsComponent>
+            implements
+                AhcWssWsComponentBuilder {
+        @Override
+        protected WsComponent buildConcreteComponent() {
+            return new WsComponent();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "client": ((WsComponent) component).setClient((org.asynchttpclient.AsyncHttpClient) value); return true;
+            case "binding": ((WsComponent) component).setBinding((org.apache.camel.component.ahc.AhcBinding) value); return true;
+            case "clientConfig": ((WsComponent) component).setClientConfig((org.asynchttpclient.AsyncHttpClientConfig) value); return true;
+            case "sslContextParameters": ((WsComponent) component).setSslContextParameters((org.apache.camel.support.jsse.SSLContextParameters) value); return true;
+            case "allowJavaSerializedObject": ((WsComponent) component).setAllowJavaSerializedObject((boolean) value); return true;
+            case "useGlobalSslContextParameters": ((WsComponent) component).setUseGlobalSslContextParameters((boolean) value); return true;
+            case "headerFilterStrategy": ((WsComponent) component).setHeaderFilterStrategy((org.apache.camel.spi.HeaderFilterStrategy) value); return true;
+            case "basicPropertyBinding": ((WsComponent) component).setBasicPropertyBinding((boolean) value); return true;
+            case "lazyStartProducer": ((WsComponent) component).setLazyStartProducer((boolean) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/ApnsComponentBuilderFactory.java b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/ApnsComponentBuilderFactory.java
new file mode 100644
index 0000000..0402865
--- /dev/null
+++ b/core/camel-componentdsl/src/main/java/org/apache/camel/builder/component/dsl/ApnsComponentBuilderFactory.java
@@ -0,0 +1,141 @@
+/*
+ * 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.
... 63289 lines suppressed ...