You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2019/06/12 20:37:08 UTC

[camel] branch endpoint-dsl updated (6ec37c4 -> c19d2fe)

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

gnodet pushed a change to branch endpoint-dsl
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 6ec37c4  Add javadoc on the generated classes / methods
     new d4b20c3  Add the property's group in the javadoc
     new c19d2fe  Use a different approach to keep a single method and split advanced options in separate interfaces

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


Summary of changes:
 .../apache/camel/builder/EndpointRouteBuilder.java |    4 +-
 .../camel/model/AbstractEndpointBuilder.java       |    3 +
 .../camel/model/EndpointConsumerBuilder.java       |    2 +
 .../camel/model/EndpointProducerBuilder.java       |    2 +
 .../camel/model/endpoint/AMQPEndpointBuilder.java  | 2105 ---------
 .../model/endpoint/AMQPEndpointBuilderFactory.java | 4637 ++++++++++++++++++
 .../camel/model/endpoint/AS2EndpointBuilder.java   |  597 ---
 .../model/endpoint/AS2EndpointBuilderFactory.java  | 1700 +++++++
 .../model/endpoint/ActiveMQEndpointBuilder.java    | 2123 ---------
 .../endpoint/ActiveMQEndpointBuilderFactory.java   | 4649 +++++++++++++++++++
 .../camel/model/endpoint/AhcEndpointBuilder.java   |  367 --
 .../model/endpoint/AhcEndpointBuilderFactory.java  |  386 ++
 .../camel/model/endpoint/ApnsEndpointBuilder.java  |  509 --
 .../model/endpoint/ApnsEndpointBuilderFactory.java |  738 +++
 .../model/endpoint/AsteriskEndpointBuilder.java    |  248 -
 .../endpoint/AsteriskEndpointBuilderFactory.java   |  464 ++
 .../camel/model/endpoint/AtmosEndpointBuilder.java |  294 --
 .../endpoint/AtmosEndpointBuilderFactory.java      |  681 +++
 .../AtmosphereWebsocketEndpointBuilder.java        |  599 ---
 .../AtmosphereWebsocketEndpointBuilderFactory.java | 1358 ++++++
 .../camel/model/endpoint/AtomEndpointBuilder.java  |  602 ---
 .../model/endpoint/AtomEndpointBuilderFactory.java |  260 ++
 .../model/endpoint/AtomixMapEndpointBuilder.java   |  437 --
 .../endpoint/AtomixMapEndpointBuilderFactory.java  | 1192 +++++
 .../endpoint/AtomixMessagingEndpointBuilder.java   |  447 --
 .../AtomixMessagingEndpointBuilderFactory.java     | 1223 +++++
 .../endpoint/AtomixMultiMapEndpointBuilder.java    |  419 --
 .../AtomixMultiMapEndpointBuilderFactory.java      |  413 ++
 .../model/endpoint/AtomixQueueEndpointBuilder.java |  405 --
 .../AtomixQueueEndpointBuilderFactory.java         | 1082 +++++
 .../model/endpoint/AtomixSetEndpointBuilder.java   |  419 --
 .../endpoint/AtomixSetEndpointBuilderFactory.java  | 1132 +++++
 .../model/endpoint/AtomixValueEndpointBuilder.java |  420 --
 .../AtomixValueEndpointBuilderFactory.java         | 1136 +++++
 .../camel/model/endpoint/AvroEndpointBuilder.java  |  322 --
 .../model/endpoint/AvroEndpointBuilderFactory.java |  789 ++++
 .../camel/model/endpoint/BeanEndpointBuilder.java  |  154 -
 .../model/endpoint/BeanEndpointBuilderFactory.java |  174 +
 .../endpoint/BeanValidatorEndpointBuilder.java     |  183 -
 .../BeanValidatorEndpointBuilderFactory.java       |  218 +
 .../model/endpoint/BeanstalkEndpointBuilder.java   |  647 ---
 .../endpoint/BeanstalkEndpointBuilderFactory.java  | 1068 +++++
 .../model/endpoint/BlobServiceEndpointBuilder.java |  459 --
 .../BlobServiceEndpointBuilderFactory.java         | 1024 ++++
 .../model/endpoint/BonitaEndpointBuilder.java      |  237 -
 .../endpoint/BonitaEndpointBuilderFactory.java     |  185 +
 .../camel/model/endpoint/BoxEndpointBuilder.java   |  409 --
 .../model/endpoint/BoxEndpointBuilderFactory.java  | 1075 +++++
 .../model/endpoint/BraintreeEndpointBuilder.java   |  332 --
 .../endpoint/BraintreeEndpointBuilderFactory.java  |  822 ++++
 .../model/endpoint/BrowseEndpointBuilder.java      |  202 -
 .../endpoint/BrowseEndpointBuilderFactory.java     |  354 ++
 .../camel/model/endpoint/CMEndpointBuilder.java    |  161 -
 .../model/endpoint/CMEndpointBuilderFactory.java   |  179 +
 .../camel/model/endpoint/CMISEndpointBuilder.java  |  322 --
 .../model/endpoint/CMISEndpointBuilderFactory.java |  721 +++
 .../endpoint/CaffeineCacheEndpointBuilder.java     |  462 --
 .../CaffeineCacheEndpointBuilderFactory.java       |  804 ++++
 .../endpoint/CaffeineLoadCacheEndpointBuilder.java |  467 --
 .../CaffeineLoadCacheEndpointBuilderFactory.java   |  813 ++++
 .../model/endpoint/CassandraEndpointBuilder.java   |  672 ---
 .../endpoint/CassandraEndpointBuilderFactory.java  | 1289 ++++++
 .../model/endpoint/ChatScriptEndpointBuilder.java  |  156 -
 .../endpoint/ChatScriptEndpointBuilderFactory.java |  175 +
 .../camel/model/endpoint/ChunkEndpointBuilder.java |  168 -
 .../endpoint/ChunkEndpointBuilderFactory.java      |  187 +
 .../model/endpoint/CinderEndpointBuilder.java      |  180 -
 .../endpoint/CinderEndpointBuilderFactory.java     |  204 +
 .../camel/model/endpoint/ClassEndpointBuilder.java |  154 -
 .../endpoint/ClassEndpointBuilderFactory.java      |  174 +
 .../model/endpoint/ClientEndpointBuilder.java      |  480 --
 .../endpoint/ClientEndpointBuilderFactory.java     | 1306 ++++++
 .../camel/model/endpoint/CoAPEndpointBuilder.java  |  346 --
 .../model/endpoint/CoAPEndpointBuilderFactory.java |  846 ++++
 .../model/endpoint/CometdEndpointBuilder.java      |  415 --
 .../endpoint/CometdEndpointBuilderFactory.java     | 1024 ++++
 .../model/endpoint/ConsulEndpointBuilder.java      |  204 -
 .../endpoint/ConsulEndpointBuilderFactory.java     |  357 ++
 .../model/endpoint/ControlBusEndpointBuilder.java  |  210 -
 .../endpoint/ControlBusEndpointBuilderFactory.java |  237 +
 .../camel/model/endpoint/CordaEndpointBuilder.java |  208 -
 .../endpoint/CordaEndpointBuilderFactory.java      |  395 ++
 .../model/endpoint/CouchDbEndpointBuilder.java     |  331 --
 .../endpoint/CouchDbEndpointBuilderFactory.java    |  650 +++
 .../model/endpoint/CouchbaseEndpointBuilder.java   |  895 ----
 .../endpoint/CouchbaseEndpointBuilderFactory.java  | 1646 +++++++
 .../model/endpoint/CryptoCmsEndpointBuilder.java   |  441 --
 .../endpoint/CryptoCmsEndpointBuilderFactory.java  |  507 ++
 .../camel/model/endpoint/CwEndpointBuilder.java    |  219 -
 .../model/endpoint/CwEndpointBuilderFactory.java   |  245 +
 .../camel/model/endpoint/CxfEndpointBuilder.java   |  688 ---
 .../model/endpoint/CxfEndpointBuilderFactory.java  | 1905 ++++++++
 .../camel/model/endpoint/CxfRsEndpointBuilder.java |  716 ---
 .../endpoint/CxfRsEndpointBuilderFactory.java      | 1725 +++++++
 .../model/endpoint/DataFormatEndpointBuilder.java  |  117 -
 .../endpoint/DataFormatEndpointBuilderFactory.java |  130 +
 .../model/endpoint/DataSetEndpointBuilder.java     |  477 --
 .../endpoint/DataSetEndpointBuilderFactory.java    |  732 +++
 .../model/endpoint/DataSetTestEndpointBuilder.java |  416 --
 .../DataSetTestEndpointBuilderFactory.java         |  195 +
 .../camel/model/endpoint/DdbEndpointBuilder.java   |  265 --
 .../model/endpoint/DdbEndpointBuilderFactory.java  |  303 ++
 .../model/endpoint/DdbStreamEndpointBuilder.java   |  630 ---
 .../endpoint/DdbStreamEndpointBuilderFactory.java  |  175 +
 .../endpoint/DigitalOceanEndpointBuilder.java      |  252 -
 .../DigitalOceanEndpointBuilderFactory.java        |  292 ++
 .../endpoint/DigitalSignatureEndpointBuilder.java  |  398 --
 .../DigitalSignatureEndpointBuilderFactory.java    |  477 ++
 .../model/endpoint/DirectEndpointBuilder.java      |  255 -
 .../endpoint/DirectEndpointBuilderFactory.java     |  416 ++
 .../model/endpoint/DirectVmEndpointBuilder.java    |  298 --
 .../endpoint/DirectVmEndpointBuilderFactory.java   |  509 ++
 .../model/endpoint/DisruptorEndpointBuilder.java   |  402 --
 .../endpoint/DisruptorEndpointBuilderFactory.java  |  639 +++
 .../model/endpoint/DisruptorVmEndpointBuilder.java |  403 --
 .../DisruptorVmEndpointBuilderFactory.java         |  639 +++
 .../camel/model/endpoint/DnsEndpointBuilder.java   |  122 -
 .../model/endpoint/DnsEndpointBuilderFactory.java  |  136 +
 .../model/endpoint/DockerEndpointBuilder.java      |  411 --
 .../endpoint/DockerEndpointBuilderFactory.java     | 1125 +++++
 .../camel/model/endpoint/DozerEndpointBuilder.java |  181 -
 .../endpoint/DozerEndpointBuilderFactory.java      |  204 +
 .../camel/model/endpoint/DrillEndpointBuilder.java |  171 -
 .../endpoint/DrillEndpointBuilderFactory.java      |  191 +
 .../model/endpoint/DropboxEndpointBuilder.java     |  323 --
 .../endpoint/DropboxEndpointBuilderFactory.java    |  743 +++
 .../camel/model/endpoint/EC2EndpointBuilder.java   |  202 -
 .../model/endpoint/EC2EndpointBuilderFactory.java  |  135 +
 .../camel/model/endpoint/ECSEndpointBuilder.java   |  195 -
 .../model/endpoint/ECSEndpointBuilderFactory.java  |  135 +
 .../camel/model/endpoint/EKSEndpointBuilder.java   |  195 -
 .../model/endpoint/EKSEndpointBuilderFactory.java  |  135 +
 .../model/endpoint/EhcacheEndpointBuilder.java     |  430 --
 .../endpoint/EhcacheEndpointBuilderFactory.java    |  971 ++++
 .../camel/model/endpoint/EjbEndpointBuilder.java   |  154 -
 .../model/endpoint/EjbEndpointBuilderFactory.java  |  173 +
 .../endpoint/ElasticsearchEndpointBuilder.java     |  282 --
 .../ElasticsearchEndpointBuilderFactory.java       |  337 ++
 .../camel/model/endpoint/ElsqlEndpointBuilder.java | 1026 ----
 .../endpoint/ElsqlEndpointBuilderFactory.java      | 2006 ++++++++
 .../camel/model/endpoint/EndpointBuilder.java      |  317 --
 .../model/endpoint/EndpointBuilderFactory.java     |  317 ++
 .../camel/model/endpoint/EtcdEndpointBuilder.java  |  658 ---
 .../model/endpoint/EtcdEndpointBuilderFactory.java | 1123 +++++
 .../model/endpoint/EventAdminEndpointBuilder.java  |  220 -
 .../endpoint/EventAdminEndpointBuilderFactory.java |  416 ++
 .../camel/model/endpoint/EventEndpointBuilder.java |  199 -
 .../endpoint/EventEndpointBuilderFactory.java      |  353 ++
 .../camel/model/endpoint/ExecEndpointBuilder.java  |  216 -
 .../model/endpoint/ExecEndpointBuilderFactory.java |  246 +
 .../model/endpoint/FacebookEndpointBuilder.java    | 1312 ------
 .../endpoint/FacebookEndpointBuilderFactory.java   | 4534 ++++++++++++++++++
 .../camel/model/endpoint/FhirEndpointBuilder.java  |  540 ---
 .../model/endpoint/FhirEndpointBuilderFactory.java | 1516 ++++++
 .../camel/model/endpoint/FileEndpointBuilder.java  | 2106 ---------
 .../model/endpoint/FileEndpointBuilderFactory.java | 2925 ++++++++++++
 .../model/endpoint/FlatpackEndpointBuilder.java    |  631 ---
 .../endpoint/FlatpackEndpointBuilderFactory.java   | 1162 +++++
 .../camel/model/endpoint/FlinkEndpointBuilder.java |  211 -
 .../endpoint/FlinkEndpointBuilderFactory.java      |  245 +
 .../camel/model/endpoint/FopEndpointBuilder.java   |  154 -
 .../model/endpoint/FopEndpointBuilderFactory.java  |  172 +
 .../model/endpoint/FreemarkerEndpointBuilder.java  |  168 -
 .../endpoint/FreemarkerEndpointBuilderFactory.java |  196 +
 .../camel/model/endpoint/FtpEndpointBuilder.java   | 2473 ----------
 .../model/endpoint/FtpEndpointBuilderFactory.java  | 4298 +++++++++++++++++
 .../camel/model/endpoint/FtpsEndpointBuilder.java  | 2715 -----------
 .../model/endpoint/FtpsEndpointBuilderFactory.java | 4897 ++++++++++++++++++++
 .../model/endpoint/GangliaEndpointBuilder.java     |  315 --
 .../endpoint/GangliaEndpointBuilderFactory.java    |  354 ++
 .../model/endpoint/GeoCoderEndpointBuilder.java    |  229 -
 .../endpoint/GeoCoderEndpointBuilderFactory.java   |  264 ++
 .../camel/model/endpoint/GitEndpointBuilder.java   |  293 --
 .../model/endpoint/GitEndpointBuilderFactory.java  |  568 +++
 .../model/endpoint/GitHubEndpointBuilder.java      |  286 --
 .../endpoint/GitHubEndpointBuilderFactory.java     |  567 +++
 .../model/endpoint/GlanceEndpointBuilder.java      |  172 -
 .../endpoint/GlanceEndpointBuilderFactory.java     |  195 +
 .../endpoint/GoogleBigQueryEndpointBuilder.java    |  149 -
 .../GoogleBigQueryEndpointBuilderFactory.java      |  171 +
 .../endpoint/GoogleBigQuerySQLEndpointBuilder.java |  136 -
 .../GoogleBigQuerySQLEndpointBuilderFactory.java   |  156 +
 .../endpoint/GoogleCalendarEndpointBuilder.java    |  313 --
 .../GoogleCalendarEndpointBuilderFactory.java      |  751 +++
 .../GoogleCalendarStreamEndpointBuilder.java       |  629 ---
 ...GoogleCalendarStreamEndpointBuilderFactory.java |  283 ++
 .../model/endpoint/GoogleDriveEndpointBuilder.java |  321 --
 .../GoogleDriveEndpointBuilderFactory.java         |  761 +++
 .../model/endpoint/GoogleMailEndpointBuilder.java  |  275 --
 .../endpoint/GoogleMailEndpointBuilderFactory.java |  609 +++
 .../endpoint/GoogleMailStreamEndpointBuilder.java  |  585 ---
 .../GoogleMailStreamEndpointBuilderFactory.java    |  229 +
 .../endpoint/GooglePubsubEndpointBuilder.java      |  292 --
 .../GooglePubsubEndpointBuilderFactory.java        |  695 +++
 .../endpoint/GoogleSheetsEndpointBuilder.java      |  277 --
 .../GoogleSheetsEndpointBuilderFactory.java        |  615 +++
 .../GoogleSheetsStreamEndpointBuilder.java         |  631 ---
 .../GoogleSheetsStreamEndpointBuilderFactory.java  |  286 ++
 .../camel/model/endpoint/GoraEndpointBuilder.java  |  439 --
 .../model/endpoint/GoraEndpointBuilderFactory.java |  747 +++
 ...ilder.java => GrapeEndpointBuilderFactory.java} |  108 +-
 .../model/endpoint/GridFsEndpointBuilder.java      |  389 --
 .../endpoint/GridFsEndpointBuilderFactory.java     |  786 ++++
 .../camel/model/endpoint/GrpcEndpointBuilder.java  |  552 ---
 .../model/endpoint/GrpcEndpointBuilderFactory.java | 1200 +++++
 .../endpoint/GuavaEventBusEndpointBuilder.java     |  256 -
 .../GuavaEventBusEndpointBuilderFactory.java       |  542 +++
 .../camel/model/endpoint/HBaseEndpointBuilder.java |  405 --
 .../endpoint/HBaseEndpointBuilderFactory.java      |  898 ++++
 .../HazelcastAtomicnumberEndpointBuilder.java      |  275 --
 ...azelcastAtomicnumberEndpointBuilderFactory.java |  329 ++
 .../endpoint/HazelcastInstanceEndpointBuilder.java |  409 --
 .../HazelcastInstanceEndpointBuilderFactory.java   |  335 ++
 .../endpoint/HazelcastListEndpointBuilder.java     |  426 --
 .../HazelcastListEndpointBuilderFactory.java       | 1018 ++++
 .../endpoint/HazelcastMapEndpointBuilder.java      |  426 --
 .../HazelcastMapEndpointBuilderFactory.java        | 1014 ++++
 .../endpoint/HazelcastMultimapEndpointBuilder.java |  431 --
 .../HazelcastMultimapEndpointBuilderFactory.java   | 1026 ++++
 .../endpoint/HazelcastQueueEndpointBuilder.java    |  427 --
 .../HazelcastQueueEndpointBuilderFactory.java      | 1021 ++++
 .../HazelcastReplicatedmapEndpointBuilder.java     |  433 --
 ...zelcastReplicatedmapEndpointBuilderFactory.java | 1029 ++++
 .../HazelcastRingbufferEndpointBuilder.java        |  274 --
 .../HazelcastRingbufferEndpointBuilderFactory.java |  328 ++
 .../endpoint/HazelcastSedaEndpointBuilder.java     |  426 --
 .../HazelcastSedaEndpointBuilderFactory.java       | 1017 ++++
 .../endpoint/HazelcastSetEndpointBuilder.java      |  424 --
 .../HazelcastSetEndpointBuilderFactory.java        | 1014 ++++
 .../endpoint/HazelcastTopicEndpointBuilder.java    |  427 --
 .../HazelcastTopicEndpointBuilderFactory.java      | 1021 ++++
 .../camel/model/endpoint/HdfsEndpointBuilder.java  |  863 ----
 .../model/endpoint/HdfsEndpointBuilderFactory.java | 1834 ++++++++
 .../model/endpoint/HipchatEndpointBuilder.java     |  566 ---
 .../endpoint/HipchatEndpointBuilderFactory.java    |  923 ++++
 .../camel/model/endpoint/HttpEndpointBuilder.java  |  939 ----
 .../model/endpoint/HttpEndpointBuilderFactory.java |  599 +++
 .../camel/model/endpoint/IAMEndpointBuilder.java   |  195 -
 .../model/endpoint/IAMEndpointBuilderFactory.java  |  135 +
 .../camel/model/endpoint/IOTAEndpointBuilder.java  |  271 --
 .../model/endpoint/IOTAEndpointBuilderFactory.java |  632 +++
 .../camel/model/endpoint/IPFSEndpointBuilder.java  |  125 -
 .../model/endpoint/IPFSEndpointBuilderFactory.java |  141 +
 .../model/endpoint/IgniteCacheEndpointBuilder.java |  440 --
 .../IgniteCacheEndpointBuilderFactory.java         |  721 +++
 .../endpoint/IgniteComputeEndpointBuilder.java     |  242 -
 .../IgniteComputeEndpointBuilderFactory.java       |  177 +
 .../endpoint/IgniteEventsEndpointBuilder.java      |  264 --
 .../IgniteEventsEndpointBuilderFactory.java        |  166 +
 .../model/endpoint/IgniteIdGenEndpointBuilder.java |  212 -
 .../IgniteIdGenEndpointBuilderFactory.java         |  175 +
 .../endpoint/IgniteMessagingEndpointBuilder.java   |  307 --
 .../IgniteMessagingEndpointBuilderFactory.java     |  562 +++
 .../model/endpoint/IgniteQueueEndpointBuilder.java |  236 -
 .../IgniteQueueEndpointBuilderFactory.java         |  174 +
 .../model/endpoint/IgniteSetEndpointBuilder.java   |  204 -
 .../endpoint/IgniteSetEndpointBuilderFactory.java  |  174 +
 .../model/endpoint/InfinispanEndpointBuilder.java  |  484 --
 .../endpoint/InfinispanEndpointBuilderFactory.java | 1077 +++++
 .../model/endpoint/InfluxDbEndpointBuilder.java    |  157 -
 .../endpoint/InfluxDbEndpointBuilderFactory.java   |  178 +
 .../camel/model/endpoint/IrcEndpointBuilder.java   |  522 ---
 .../model/endpoint/IrcEndpointBuilderFactory.java  | 1494 ++++++
 .../model/endpoint/IronMQEndpointBuilder.java      |  676 ---
 .../endpoint/IronMQEndpointBuilderFactory.java     | 1060 +++++
 .../camel/model/endpoint/JBPMEndpointBuilder.java  |  568 ---
 .../model/endpoint/JBPMEndpointBuilderFactory.java | 1652 +++++++
 .../model/endpoint/JCacheEndpointBuilder.java      |  486 --
 .../endpoint/JCacheEndpointBuilderFactory.java     | 1218 +++++
 .../model/endpoint/JGroupsEndpointBuilder.java     |  232 -
 .../endpoint/JGroupsEndpointBuilderFactory.java    |  413 ++
 .../model/endpoint/JGroupsRaftEndpointBuilder.java |  225 -
 .../JGroupsRaftEndpointBuilderFactory.java         |  380 ++
 .../camel/model/endpoint/JMXEndpointBuilder.java   |  587 ---
 .../model/endpoint/JMXEndpointBuilderFactory.java  |  538 +++
 .../endpoint/JSR356WebSocketEndpointBuilder.java   |  227 -
 .../JSR356WebSocketEndpointBuilderFactory.java     |  455 ++
 .../model/endpoint/JcloudsEndpointBuilder.java     |  317 --
 .../endpoint/JcloudsEndpointBuilderFactory.java    |  551 +++
 .../camel/model/endpoint/JcrEndpointBuilder.java   |  347 --
 .../model/endpoint/JcrEndpointBuilderFactory.java  |  861 ++++
 .../camel/model/endpoint/JdbcEndpointBuilder.java  |  358 --
 .../model/endpoint/JdbcEndpointBuilderFactory.java |  413 ++
 .../camel/model/endpoint/JettyHttpEndpoint9.java   |  637 ---
 .../model/endpoint/JettyHttpEndpointBuilder9.java  | 1200 -----
 .../endpoint/JettyHttpEndpointBuilder9Factory.java | 2056 ++++++++
 .../camel/model/endpoint/JingEndpointBuilder.java  |  129 -
 .../model/endpoint/JingEndpointBuilderFactory.java |  143 +
 .../camel/model/endpoint/JiraEndpointBuilder.java  |  325 --
 .../model/endpoint/JiraEndpointBuilderFactory.java |  708 +++
 .../camel/model/endpoint/JmsEndpointBuilder.java   | 2105 ---------
 .../model/endpoint/JmsEndpointBuilderFactory.java  | 4634 ++++++++++++++++++
 .../camel/model/endpoint/JoltEndpointBuilder.java  |  203 -
 .../model/endpoint/JoltEndpointBuilderFactory.java |  229 +
 .../camel/model/endpoint/JooqEndpointBuilder.java  |  559 ---
 .../model/endpoint/JooqEndpointBuilderFactory.java |  803 ++++
 .../camel/model/endpoint/JpaEndpointBuilder.java   |  929 ----
 .../model/endpoint/JpaEndpointBuilderFactory.java  | 1632 +++++++
 .../endpoint/JsonValidatorEndpointBuilder.java     |  208 -
 .../JsonValidatorEndpointBuilderFactory.java       |  245 +
 .../camel/model/endpoint/Jt400EndpointBuilder.java |  738 ---
 .../endpoint/Jt400EndpointBuilderFactory.java      | 1436 ++++++
 .../camel/model/endpoint/KMSEndpointBuilder.java   |  194 -
 .../model/endpoint/KMSEndpointBuilderFactory.java  |  135 +
 .../camel/model/endpoint/KafkaEndpointBuilder.java | 1786 -------
 .../endpoint/KafkaEndpointBuilderFactory.java      | 2985 ++++++++++++
 .../model/endpoint/KeystoneEndpointBuilder.java    |  172 -
 .../endpoint/KeystoneEndpointBuilderFactory.java   |  195 +
 .../model/endpoint/KinesisEndpointBuilder.java     |  672 ---
 .../endpoint/KinesisEndpointBuilderFactory.java    | 1057 +++++
 .../endpoint/KinesisFirehoseEndpointBuilder.java   |  175 -
 .../KinesisFirehoseEndpointBuilderFactory.java     |  202 +
 .../KubernetesConfigMapsEndpointBuilder.java       |  286 --
 ...KubernetesConfigMapsEndpointBuilderFactory.java |  339 ++
 .../KubernetesDeploymentsEndpointBuilder.java      |  429 --
 ...ubernetesDeploymentsEndpointBuilderFactory.java | 1078 +++++
 .../endpoint/KubernetesHPAEndpointBuilder.java     |  426 --
 .../KubernetesHPAEndpointBuilderFactory.java       | 1065 +++++
 .../endpoint/KubernetesJobEndpointBuilder.java     |  426 --
 .../KubernetesJobEndpointBuilderFactory.java       | 1065 +++++
 .../KubernetesNamespacesEndpointBuilder.java       |  431 --
 ...KubernetesNamespacesEndpointBuilderFactory.java | 1079 +++++
 .../endpoint/KubernetesNodesEndpointBuilder.java   |  427 --
 .../KubernetesNodesEndpointBuilderFactory.java     | 1072 +++++
 ...etesPersistentVolumesClaimsEndpointBuilder.java |  289 --
 ...sistentVolumesClaimsEndpointBuilderFactory.java |  341 ++
 ...KubernetesPersistentVolumesEndpointBuilder.java |  288 --
 ...tesPersistentVolumesEndpointBuilderFactory.java |  340 ++
 .../endpoint/KubernetesPodsEndpointBuilder.java    |  426 --
 .../KubernetesPodsEndpointBuilderFactory.java      | 1072 +++++
 ...netesReplicationControllersEndpointBuilder.java |  440 --
 ...plicationControllersEndpointBuilderFactory.java | 1083 +++++
 .../KubernetesResourcesQuotaEndpointBuilder.java   |  288 --
 ...rnetesResourcesQuotaEndpointBuilderFactory.java |  340 ++
 .../endpoint/KubernetesSecretsEndpointBuilder.java |  286 --
 .../KubernetesSecretsEndpointBuilderFactory.java   |  336 ++
 .../KubernetesServiceAccountsEndpointBuilder.java  |  288 --
 ...netesServiceAccountsEndpointBuilderFactory.java |  340 ++
 .../KubernetesServicesEndpointBuilder.java         |  431 --
 .../KubernetesServicesEndpointBuilderFactory.java  | 1078 +++++
 .../model/endpoint/LambdaEndpointBuilder.java      |  203 -
 .../endpoint/LambdaEndpointBuilderFactory.java     |  222 +
 .../model/endpoint/LanguageEndpointBuilder.java    |  198 -
 .../endpoint/LanguageEndpointBuilderFactory.java   |  220 +
 ...uilder.java => LdapEndpointBuilderFactory.java} |  162 +-
 .../camel/model/endpoint/LdifEndpointBuilder.java  |  111 -
 .../model/endpoint/LdifEndpointBuilderFactory.java |  124 +
 .../model/endpoint/LinkedInEndpointBuilder.java    |  415 --
 .../endpoint/LinkedInEndpointBuilderFactory.java   | 1064 +++++
 .../camel/model/endpoint/LogEndpointBuilder.java   |  527 ---
 .../model/endpoint/LogEndpointBuilderFactory.java  |  604 +++
 .../model/endpoint/LuceneEndpointBuilder.java      |  209 -
 .../endpoint/LuceneEndpointBuilderFactory.java     |  234 +
 .../model/endpoint/LumberjackEndpointBuilder.java  |  214 -
 .../endpoint/LumberjackEndpointBuilderFactory.java |  161 +
 .../camel/model/endpoint/MQEndpointBuilder.java    |  198 -
 .../model/endpoint/MQEndpointBuilderFactory.java   |  132 +
 .../camel/model/endpoint/MQTTEndpointBuilder.java  |  750 ---
 .../model/endpoint/MQTTEndpointBuilderFactory.java | 2286 +++++++++
 .../camel/model/endpoint/MSKEndpointBuilder.java   |  195 -
 .../model/endpoint/MSKEndpointBuilderFactory.java  |  135 +
 .../camel/model/endpoint/MailEndpointBuilder.java  | 1267 -----
 .../model/endpoint/MailEndpointBuilderFactory.java | 2356 ++++++++++
 .../model/endpoint/MasterEndpointBuilder.java      |  189 -
 .../endpoint/MasterEndpointBuilderFactory.java     |  130 +
 .../model/endpoint/MetricsEndpointBuilder.java     |  238 -
 .../endpoint/MetricsEndpointBuilderFactory.java    |  270 ++
 .../model/endpoint/MicrometerEndpointBuilder.java  |  180 -
 .../endpoint/MicrometerEndpointBuilderFactory.java |  205 +
 .../model/endpoint/MiloClientEndpointBuilder.java  |  486 --
 .../endpoint/MiloClientEndpointBuilderFactory.java | 1422 ++++++
 .../model/endpoint/MiloServerEndpointBuilder.java  |  199 -
 .../endpoint/MiloServerEndpointBuilderFactory.java |  352 ++
 .../camel/model/endpoint/Mina2EndpointBuilder.java |  654 ---
 .../endpoint/Mina2EndpointBuilderFactory.java      | 1733 +++++++
 .../camel/model/endpoint/MllpEndpointBuilder.java  |  635 ---
 .../model/endpoint/MllpEndpointBuilderFactory.java | 1479 ++++++
 .../camel/model/endpoint/MockEndpointBuilder.java  |  349 --
 .../model/endpoint/MockEndpointBuilderFactory.java |  120 +
 .../model/endpoint/MongoDbEndpointBuilder.java     |  446 --
 .../endpoint/MongoDbEndpointBuilderFactory.java    | 1216 +++++
 .../camel/model/endpoint/MsvEndpointBuilder.java   |  257 -
 .../model/endpoint/MsvEndpointBuilderFactory.java  |  299 ++
 .../model/endpoint/MustacheEndpointBuilder.java    |  152 -
 .../endpoint/MustacheEndpointBuilderFactory.java   |  170 +
 .../camel/model/endpoint/MvelEndpointBuilder.java  |  136 -
 .../model/endpoint/MvelEndpointBuilderFactory.java |  151 +
 .../model/endpoint/MyBatisBeanEndpointBuilder.java |  172 -
 .../MyBatisBeanEndpointBuilderFactory.java         |  138 +
 .../model/endpoint/MyBatisEndpointBuilder.java     |  696 ---
 .../endpoint/MyBatisEndpointBuilderFactory.java    |  934 ++++
 .../model/endpoint/NagiosEndpointBuilder.java      |  233 -
 .../endpoint/NagiosEndpointBuilderFactory.java     |  269 ++
 .../camel/model/endpoint/NatsEndpointBuilder.java  |  508 --
 .../model/endpoint/NatsEndpointBuilderFactory.java | 1387 ++++++
 .../model/endpoint/NetWeaverEndpointBuilder.java   |  177 -
 .../endpoint/NetWeaverEndpointBuilderFactory.java  |  197 +
 .../camel/model/endpoint/NettyEndpointBuilder.java | 1511 ------
 .../endpoint/NettyEndpointBuilderFactory.java      | 3648 +++++++++++++++
 .../model/endpoint/NettyHttpEndpointBuilder.java   | 1713 -------
 .../endpoint/NettyHttpEndpointBuilderFactory.java  | 4014 ++++++++++++++++
 .../model/endpoint/NeutronEndpointBuilder.java     |  180 -
 .../endpoint/NeutronEndpointBuilderFactory.java    |  204 +
 .../camel/model/endpoint/NovaEndpointBuilder.java  |  180 -
 .../model/endpoint/NovaEndpointBuilderFactory.java |  204 +
 .../camel/model/endpoint/NsqEndpointBuilder.java   |  365 --
 .../model/endpoint/NsqEndpointBuilderFactory.java  |  674 +++
 .../model/endpoint/Olingo2EndpointBuilder.java     |  405 --
 .../endpoint/Olingo2EndpointBuilderFactory.java    | 1083 +++++
 .../model/endpoint/Olingo4EndpointBuilder.java     |  405 --
 .../endpoint/Olingo4EndpointBuilderFactory.java    | 1083 +++++
 .../OpenshiftBuildConfigsEndpointBuilder.java      |  286 --
 ...penshiftBuildConfigsEndpointBuilderFactory.java |  339 ++
 .../endpoint/OpenshiftBuildsEndpointBuilder.java   |  285 --
 .../OpenshiftBuildsEndpointBuilderFactory.java     |  333 ++
 .../model/endpoint/OptaPlannerEndpointBuilder.java |  242 -
 .../OptaPlannerEndpointBuilderFactory.java         |  421 ++
 .../camel/model/endpoint/PahoEndpointBuilder.java  |  346 --
 .../model/endpoint/PahoEndpointBuilderFactory.java |  867 ++++
 .../model/endpoint/PaxLoggingEndpointBuilder.java  |  183 -
 .../endpoint/PaxLoggingEndpointBuilderFactory.java |  122 +
 .../camel/model/endpoint/PdfEndpointBuilder.java   |  271 --
 .../model/endpoint/PdfEndpointBuilderFactory.java  |  313 ++
 .../model/endpoint/PgEventEndpointBuilder.java     |  267 --
 .../endpoint/PgEventEndpointBuilderFactory.java    |  588 +++
 .../model/endpoint/PrinterEndpointBuilder.java     |  240 -
 .../endpoint/PrinterEndpointBuilderFactory.java    |  273 ++
 .../model/endpoint/PropertiesEndpointBuilder.java  |  242 -
 .../endpoint/PropertiesEndpointBuilderFactory.java |  498 ++
 .../model/endpoint/PubNubEndpointBuilder.java      |  320 --
 .../endpoint/PubNubEndpointBuilderFactory.java     |  689 +++
 .../model/endpoint/PulsarEndpointBuilder.java      |  292 --
 .../endpoint/PulsarEndpointBuilderFactory.java     |  447 ++
 .../model/endpoint/QuartzEndpointBuilder.java      |  455 --
 .../endpoint/QuartzEndpointBuilderFactory.java     |  451 ++
 .../endpoint/QueueServiceEndpointBuilder.java      |  309 --
 .../QueueServiceEndpointBuilderFactory.java        |  574 +++
 .../model/endpoint/QuickfixjEndpointBuilder.java   |  246 -
 .../endpoint/QuickfixjEndpointBuilderFactory.java  |  523 +++
 .../model/endpoint/RabbitMQEndpointBuilder.java    | 1066 -----
 .../endpoint/RabbitMQEndpointBuilderFactory.java   | 2704 +++++++++++
 .../endpoint/ReactiveStreamsEndpointBuilder.java   |  341 --
 .../ReactiveStreamsEndpointBuilderFactory.java     |  511 ++
 .../camel/model/endpoint/RedisEndpointBuilder.java |  325 --
 .../endpoint/RedisEndpointBuilderFactory.java      |  734 +++
 .../camel/model/endpoint/RefEndpointBuilder.java   |  200 -
 .../model/endpoint/RefEndpointBuilderFactory.java  |  352 ++
 .../model/endpoint/RestApiEndpointBuilder.java     |  210 -
 .../endpoint/RestApiEndpointBuilderFactory.java    |  157 +
 .../camel/model/endpoint/RestEndpointBuilder.java  |  332 --
 .../model/endpoint/RestEndpointBuilderFactory.java |  673 +++
 .../model/endpoint/RestSwaggerEndpointBuilder.java |  208 -
 .../RestSwaggerEndpointBuilderFactory.java         |  110 +
 .../model/endpoint/RestletEndpointBuilder.java     |  518 ---
 .../endpoint/RestletEndpointBuilderFactory.java    | 1039 +++++
 .../camel/model/endpoint/RssEndpointBuilder.java   |  601 ---
 .../model/endpoint/RssEndpointBuilderFactory.java  |  258 ++
 .../camel/model/endpoint/S3EndpointBuilder.java    | 1008 ----
 .../model/endpoint/S3EndpointBuilderFactory.java   | 1905 ++++++++
 .../camel/model/endpoint/SWFEndpointBuilder.java   |  522 ---
 .../model/endpoint/SWFEndpointBuilderFactory.java  | 1094 +++++
 ...uilder.java => SagaEndpointBuilderFactory.java} |  118 +-
 .../model/endpoint/SalesforceEndpointBuilder.java  |  816 ----
 .../endpoint/SalesforceEndpointBuilderFactory.java | 2399 ++++++++++
 .../model/endpoint/SchedulerEndpointBuilder.java   |  504 --
 .../endpoint/SchedulerEndpointBuilderFactory.java  |  143 +
 .../model/endpoint/SchematronEndpointBuilder.java  |  159 -
 .../endpoint/SchematronEndpointBuilderFactory.java |  180 +
 .../camel/model/endpoint/ScpEndpointBuilder.java   |  502 --
 .../model/endpoint/ScpEndpointBuilderFactory.java  |  426 ++
 .../camel/model/endpoint/SdbEndpointBuilder.java   |  232 -
 .../model/endpoint/SdbEndpointBuilderFactory.java  |  266 ++
 .../camel/model/endpoint/SedaEndpointBuilder.java  |  473 --
 .../model/endpoint/SedaEndpointBuilderFactory.java |  773 +++
 .../model/endpoint/ServerEndpointBuilder.java      |  496 --
 .../endpoint/ServerEndpointBuilderFactory.java     | 1366 ++++++
 .../model/endpoint/ServiceEndpointBuilder.java     |  181 -
 .../endpoint/ServiceEndpointBuilderFactory.java    |  121 +
 .../model/endpoint/ServiceNowEndpointBuilder.java  |  716 ---
 .../endpoint/ServiceNowEndpointBuilderFactory.java |  870 ++++
 .../model/endpoint/ServletEndpointBuilder.java     |  537 ---
 .../endpoint/ServletEndpointBuilderFactory.java    |  339 ++
 .../camel/model/endpoint/SesEndpointBuilder.java   |  228 -
 .../model/endpoint/SesEndpointBuilderFactory.java  |  261 ++
 .../camel/model/endpoint/SftpEndpointBuilder.java  | 2583 -----------
 .../model/endpoint/SftpEndpointBuilderFactory.java | 4584 ++++++++++++++++++
 .../camel/model/endpoint/SipEndpointBuilder.java   |  801 ----
 .../model/endpoint/SipEndpointBuilderFactory.java  | 2464 ++++++++++
 .../camel/model/endpoint/Sjms2EndpointBuilder.java |  811 ----
 .../endpoint/Sjms2EndpointBuilderFactory.java      | 1846 ++++++++
 ...r.java => SjmsBatchEndpointBuilderFactory.java} |  600 +--
 .../camel/model/endpoint/SjmsEndpointBuilder.java  |  770 ---
 .../model/endpoint/SjmsEndpointBuilderFactory.java | 1798 +++++++
 .../camel/model/endpoint/SlackEndpointBuilder.java |  559 ---
 .../endpoint/SlackEndpointBuilderFactory.java      |  776 ++++
 .../camel/model/endpoint/SmppEndpointBuilder.java  |  816 ----
 .../model/endpoint/SmppEndpointBuilderFactory.java | 1846 ++++++++
 .../camel/model/endpoint/SnmpEndpointBuilder.java  |  724 ---
 .../model/endpoint/SnmpEndpointBuilderFactory.java |  386 ++
 .../camel/model/endpoint/SnsEndpointBuilder.java   |  298 --
 .../model/endpoint/SnsEndpointBuilderFactory.java  |  348 ++
 .../camel/model/endpoint/SolrEndpointBuilder.java  |  283 --
 .../model/endpoint/SolrEndpointBuilderFactory.java |  334 ++
 .../model/endpoint/SoroushBotEndpointBuilder.java  |  533 ---
 .../endpoint/SoroushBotEndpointBuilderFactory.java | 1420 ++++++
 .../camel/model/endpoint/SparkEndpointBuilder.java |  338 --
 .../endpoint/SparkEndpointBuilderFactory.java      |  306 ++
 .../model/endpoint/SplunkEndpointBuilder.java      |  758 ---
 .../endpoint/SplunkEndpointBuilderFactory.java     | 1288 +++++
 .../model/endpoint/SpringBatchEndpointBuilder.java |  162 -
 .../SpringBatchEndpointBuilderFactory.java         |  185 +
 .../endpoint/SpringIntegrationEndpointBuilder.java |  245 -
 .../SpringIntegrationEndpointBuilderFactory.java   |  459 ++
 .../model/endpoint/SpringLdapEndpointBuilder.java  |  143 -
 .../endpoint/SpringLdapEndpointBuilderFactory.java |  162 +
 .../endpoint/SpringWebserviceEndpointBuilder.java  |  647 ---
 .../SpringWebserviceEndpointBuilderFactory.java    |  937 ++++
 .../camel/model/endpoint/SqlEndpointBuilder.java   |  959 ----
 .../model/endpoint/SqlEndpointBuilderFactory.java  | 1793 +++++++
 .../model/endpoint/SqlStoredEndpointBuilder.java   |  206 -
 .../endpoint/SqlStoredEndpointBuilderFactory.java  |  234 +
 .../camel/model/endpoint/SqsEndpointBuilder.java   | 1042 -----
 .../model/endpoint/SqsEndpointBuilderFactory.java  | 1889 ++++++++
 .../camel/model/endpoint/SshEndpointBuilder.java   |  665 ---
 .../model/endpoint/SshEndpointBuilderFactory.java  | 1255 +++++
 .../camel/model/endpoint/StAXEndpointBuilder.java  |  109 -
 .../model/endpoint/StAXEndpointBuilderFactory.java |  122 +
 .../camel/model/endpoint/StompEndpointBuilder.java |  267 --
 .../endpoint/StompEndpointBuilderFactory.java      |  603 +++
 .../model/endpoint/StreamEndpointBuilder.java      |  513 --
 .../endpoint/StreamEndpointBuilderFactory.java     |  951 ++++
 .../endpoint/StringTemplateEndpointBuilder.java    |  158 -
 .../StringTemplateEndpointBuilderFactory.java      |  185 +
 .../camel/model/endpoint/StubEndpointBuilder.java  |  473 --
 .../model/endpoint/StubEndpointBuilderFactory.java |  773 +++
 .../camel/model/endpoint/SwiftEndpointBuilder.java |  180 -
 .../endpoint/SwiftEndpointBuilderFactory.java      |  204 +
 .../model/endpoint/TelegramEndpointBuilder.java    |  586 ---
 .../endpoint/TelegramEndpointBuilderFactory.java   |  888 ++++
 .../model/endpoint/ThriftEndpointBuilder.java      |  383 --
 .../endpoint/ThriftEndpointBuilderFactory.java     |  817 ++++
 .../camel/model/endpoint/TikaEndpointBuilder.java  |  192 -
 .../model/endpoint/TikaEndpointBuilderFactory.java |  217 +
 .../camel/model/endpoint/TimerEndpointBuilder.java |  326 --
 .../endpoint/TimerEndpointBuilderFactory.java      |  284 ++
 .../model/endpoint/TwilioEndpointBuilder.java      |  237 -
 .../endpoint/TwilioEndpointBuilderFactory.java     |  460 ++
 .../TwitterDirectMessageEndpointBuilder.java       |  847 ----
 ...TwitterDirectMessageEndpointBuilderFactory.java | 1320 ++++++
 .../endpoint/TwitterSearchEndpointBuilder.java     |  829 ----
 .../TwitterSearchEndpointBuilderFactory.java       | 1304 ++++++
 .../endpoint/TwitterStreamingEndpointBuilder.java  |  846 ----
 .../TwitterStreamingEndpointBuilderFactory.java    |  252 +
 .../endpoint/TwitterTimelineEndpointBuilder.java   |  863 ----
 .../TwitterTimelineEndpointBuilderFactory.java     | 1389 ++++++
 .../model/endpoint/UndertowEndpointBuilder.java    |  540 ---
 .../endpoint/UndertowEndpointBuilderFactory.java   |  928 ++++
 .../model/endpoint/ValidatorEndpointBuilder.java   |  258 --
 .../endpoint/ValidatorEndpointBuilderFactory.java  |  302 ++
 .../model/endpoint/VelocityEndpointBuilder.java    |  161 -
 .../endpoint/VelocityEndpointBuilderFactory.java   |  182 +
 .../camel/model/endpoint/VertxEndpointBuilder.java |  219 -
 .../endpoint/VertxEndpointBuilderFactory.java      |  416 ++
 .../camel/model/endpoint/VmEndpointBuilder.java    |  471 --
 .../model/endpoint/VmEndpointBuilderFactory.java   |  770 +++
 .../model/endpoint/WeatherEndpointBuilder.java     |  845 ----
 .../endpoint/WeatherEndpointBuilderFactory.java    | 1839 ++++++++
 .../camel/model/endpoint/Web3jEndpointBuilder.java |  631 ---
 .../endpoint/Web3jEndpointBuilderFactory.java      | 1275 +++++
 .../model/endpoint/WebhookEndpointBuilder.java     |  235 -
 .../endpoint/WebhookEndpointBuilderFactory.java    |  188 +
 .../model/endpoint/WebsocketEndpointBuilder.java   |  454 --
 .../endpoint/WebsocketEndpointBuilderFactory.java  | 1136 +++++
 .../model/endpoint/WordpressEndpointBuilder.java   |  310 --
 .../endpoint/WordpressEndpointBuilderFactory.java  |  753 +++
 .../camel/model/endpoint/WsEndpointBuilder.java    |  421 --
 .../model/endpoint/WsEndpointBuilderFactory.java   | 1155 +++++
 .../model/endpoint/XChangeEndpointBuilder.java     |  189 -
 .../endpoint/XChangeEndpointBuilderFactory.java    |  217 +
 .../model/endpoint/XQueryEndpointBuilder.java      |  708 ---
 .../endpoint/XQueryEndpointBuilderFactory.java     | 1462 ++++++
 ...ava => XmlSignatureEndpointBuilderFactory.java} |  794 ++--
 .../camel/model/endpoint/XmppEndpointBuilder.java  |  435 --
 .../model/endpoint/XmppEndpointBuilderFactory.java | 1103 +++++
 .../camel/model/endpoint/XsltEndpointBuilder.java  |  412 --
 .../model/endpoint/XsltEndpointBuilderFactory.java |  480 ++
 .../model/endpoint/YammerEndpointBuilder.java      |  644 ---
 .../endpoint/YammerEndpointBuilderFactory.java     | 1001 ++++
 .../model/endpoint/ZendeskEndpointBuilder.java     |  246 -
 .../endpoint/ZendeskEndpointBuilderFactory.java    |  518 +++
 .../model/endpoint/ZooKeeperEndpointBuilder.java   |  333 --
 .../endpoint/ZooKeeperEndpointBuilderFactory.java  |  649 +++
 .../endpoint/ZooKeeperMasterEndpointBuilder.java   |  192 -
 .../ZooKeeperMasterEndpointBuilderFactory.java     |  131 +
 .../component/file/FileAbsolutePathIssueTest.java  |    4 +-
 .../file/FileBatchConsumerMemoryLeakTest.java      |    4 +-
 .../component/file/FileConsumeCharsetTest.java     |    5 +-
 .../camel/maven/packaging/EndpointDslMojo.java     |  254 +-
 598 files changed, 240768 insertions(+), 134571 deletions(-)
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AhcEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AhcEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ApnsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ApnsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AsteriskEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AsteriskEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosphereWebsocketEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosphereWebsocketEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMapEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMapEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMessagingEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMessagingEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMultiMapEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMultiMapEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixQueueEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixQueueEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixSetEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixSetEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixValueEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixValueEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AvroEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/AvroEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BeanEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BeanEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BeanValidatorEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BeanValidatorEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BeanstalkEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BeanstalkEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BlobServiceEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BlobServiceEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BonitaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BonitaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BoxEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BoxEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BraintreeEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BraintreeEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BrowseEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/BrowseEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CMEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CMEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CMISEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CMISEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CaffeineCacheEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CaffeineCacheEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CaffeineLoadCacheEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CaffeineLoadCacheEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CassandraEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CassandraEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ChatScriptEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ChatScriptEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ChunkEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ChunkEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CinderEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CinderEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ClassEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ClassEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ClientEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ClientEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CoAPEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CoAPEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CometdEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CometdEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ConsulEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ConsulEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ControlBusEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ControlBusEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CordaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CordaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CouchDbEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CouchDbEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CouchbaseEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CouchbaseEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CryptoCmsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CryptoCmsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CwEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CwEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CxfEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CxfEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CxfRsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/CxfRsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DataFormatEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DataFormatEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DataSetEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DataSetEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DataSetTestEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DataSetTestEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DdbEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DdbEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DdbStreamEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DdbStreamEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DigitalOceanEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DigitalOceanEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DigitalSignatureEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DigitalSignatureEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DirectEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DirectEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DirectVmEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DirectVmEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DisruptorEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DisruptorEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DisruptorVmEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DisruptorVmEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DnsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DnsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DockerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DockerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DozerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DozerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DrillEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DrillEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DropboxEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/DropboxEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EC2EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EC2EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ECSEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ECSEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EKSEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EKSEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EhcacheEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EhcacheEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EjbEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EjbEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ElasticsearchEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ElasticsearchEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ElsqlEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ElsqlEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EtcdEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EtcdEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EventAdminEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EventAdminEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EventEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/EventEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ExecEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ExecEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FacebookEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FacebookEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FhirEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FhirEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FileEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FileEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FlatpackEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FlatpackEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FlinkEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FlinkEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FopEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FopEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FreemarkerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FreemarkerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FtpEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FtpEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FtpsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/FtpsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GangliaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GangliaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GeoCoderEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GeoCoderEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GitEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GitEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GitHubEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GitHubEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GlanceEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GlanceEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleBigQueryEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleBigQueryEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleBigQuerySQLEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleBigQuerySQLEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleCalendarEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleCalendarEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleCalendarStreamEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleCalendarStreamEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleDriveEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleDriveEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleMailEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleMailEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleMailStreamEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleMailStreamEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GooglePubsubEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GooglePubsubEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleSheetsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleSheetsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleSheetsStreamEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoogleSheetsStreamEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoraEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GoraEndpointBuilderFactory.java
 rename core/camel-core/src/main/java/org/apache/camel/model/endpoint/{GrapeEndpointBuilder.java => GrapeEndpointBuilderFactory.java} (50%)
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GridFsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GridFsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GrpcEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GrpcEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GuavaEventBusEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/GuavaEventBusEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HBaseEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HBaseEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastAtomicnumberEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastAtomicnumberEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastInstanceEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastInstanceEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastListEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastListEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastMapEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastMapEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastMultimapEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastMultimapEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastQueueEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastQueueEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastReplicatedmapEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastReplicatedmapEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastRingbufferEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastRingbufferEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastSedaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastSedaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastSetEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastSetEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastTopicEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HazelcastTopicEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HdfsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HdfsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HipchatEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HipchatEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HttpEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/HttpEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IAMEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IAMEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IOTAEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IOTAEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IPFSEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IPFSEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteCacheEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteCacheEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteComputeEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteComputeEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteEventsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteEventsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteIdGenEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteIdGenEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteMessagingEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteMessagingEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteQueueEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteQueueEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteSetEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IgniteSetEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/InfinispanEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/InfinispanEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/InfluxDbEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/InfluxDbEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IrcEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IrcEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IronMQEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/IronMQEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JBPMEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JBPMEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JCacheEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JCacheEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JGroupsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JGroupsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JGroupsRaftEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JGroupsRaftEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JMXEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JMXEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JSR356WebSocketEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JSR356WebSocketEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JcloudsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JcloudsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JcrEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JcrEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JdbcEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JdbcEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JettyHttpEndpoint9.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JettyHttpEndpointBuilder9.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JettyHttpEndpointBuilder9Factory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JingEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JingEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JiraEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JiraEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JmsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JmsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JoltEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JoltEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JooqEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JooqEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JpaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JpaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JsonValidatorEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/JsonValidatorEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Jt400EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Jt400EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KMSEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KMSEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KafkaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KafkaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KeystoneEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KeystoneEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KinesisEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KinesisEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KinesisFirehoseEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KinesisFirehoseEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesConfigMapsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesConfigMapsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesDeploymentsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesDeploymentsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesHPAEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesHPAEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesJobEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesJobEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesNamespacesEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesNamespacesEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesNodesEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesNodesEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesPersistentVolumesClaimsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesPersistentVolumesClaimsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesPersistentVolumesEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesPersistentVolumesEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesPodsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesPodsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesReplicationControllersEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesReplicationControllersEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesResourcesQuotaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesResourcesQuotaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesSecretsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesSecretsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesServiceAccountsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesServiceAccountsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesServicesEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/KubernetesServicesEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LambdaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LambdaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LanguageEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LanguageEndpointBuilderFactory.java
 rename core/camel-core/src/main/java/org/apache/camel/model/endpoint/{LdapEndpointBuilder.java => LdapEndpointBuilderFactory.java} (51%)
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LdifEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LdifEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LinkedInEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LinkedInEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LogEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LogEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LuceneEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LuceneEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LumberjackEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/LumberjackEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MQEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MQEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MQTTEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MQTTEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MSKEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MSKEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MailEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MailEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MasterEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MasterEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MetricsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MetricsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MicrometerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MicrometerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MiloClientEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MiloClientEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MiloServerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MiloServerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Mina2EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Mina2EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MllpEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MllpEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MockEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MockEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MongoDbEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MongoDbEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MsvEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MsvEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MustacheEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MustacheEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MvelEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MvelEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MyBatisBeanEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MyBatisBeanEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MyBatisEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/MyBatisEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NagiosEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NagiosEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NatsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NatsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NetWeaverEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NetWeaverEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NettyEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NettyEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NettyHttpEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NettyHttpEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NeutronEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NeutronEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NovaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NovaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NsqEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/NsqEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Olingo2EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Olingo2EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Olingo4EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Olingo4EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/OpenshiftBuildConfigsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/OpenshiftBuildConfigsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/OpenshiftBuildsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/OpenshiftBuildsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/OptaPlannerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/OptaPlannerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PahoEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PahoEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PaxLoggingEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PaxLoggingEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PdfEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PdfEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PgEventEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PgEventEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PrinterEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PrinterEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PropertiesEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PropertiesEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PubNubEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PubNubEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PulsarEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/PulsarEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/QuartzEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/QuartzEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/QueueServiceEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/QueueServiceEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/QuickfixjEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/QuickfixjEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RabbitMQEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RabbitMQEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ReactiveStreamsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ReactiveStreamsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RedisEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RedisEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RefEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RefEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestApiEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestApiEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestSwaggerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestSwaggerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestletEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RestletEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RssEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/RssEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/S3EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/S3EndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SWFEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SWFEndpointBuilderFactory.java
 rename core/camel-core/src/main/java/org/apache/camel/model/endpoint/{SagaEndpointBuilder.java => SagaEndpointBuilderFactory.java} (50%)
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SalesforceEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SalesforceEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SchedulerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SchedulerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SchematronEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SchematronEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ScpEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ScpEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SdbEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SdbEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SedaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SedaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServiceEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServiceEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServiceNowEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServiceNowEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServletEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ServletEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SesEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SesEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SftpEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SftpEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SipEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SipEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Sjms2EndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Sjms2EndpointBuilderFactory.java
 rename core/camel-core/src/main/java/org/apache/camel/model/endpoint/{SjmsBatchEndpointBuilder.java => SjmsBatchEndpointBuilderFactory.java} (50%)
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SjmsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SjmsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SlackEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SlackEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SmppEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SmppEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SnmpEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SnmpEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SnsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SnsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SolrEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SolrEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SoroushBotEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SoroushBotEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SparkEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SparkEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SplunkEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SplunkEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringBatchEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringBatchEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringIntegrationEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringIntegrationEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringLdapEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringLdapEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringWebserviceEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SpringWebserviceEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SqlEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SqlEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SqlStoredEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SqlStoredEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SqsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SqsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SshEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SshEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StAXEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StAXEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StompEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StompEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StreamEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StreamEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StringTemplateEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StringTemplateEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StubEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/StubEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SwiftEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/SwiftEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TelegramEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TelegramEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ThriftEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ThriftEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TikaEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TikaEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TimerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TimerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwilioEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwilioEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterDirectMessageEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterDirectMessageEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterSearchEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterSearchEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterStreamingEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterStreamingEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterTimelineEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/TwitterTimelineEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/UndertowEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/UndertowEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ValidatorEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ValidatorEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/VelocityEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/VelocityEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/VertxEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/VertxEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/VmEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/VmEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WeatherEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WeatherEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Web3jEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/Web3jEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WebhookEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WebhookEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WebsocketEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WebsocketEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WordpressEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WordpressEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WsEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/WsEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XChangeEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XChangeEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XQueryEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XQueryEndpointBuilderFactory.java
 rename core/camel-core/src/main/java/org/apache/camel/model/endpoint/{XmlSignatureEndpointBuilder.java => XmlSignatureEndpointBuilderFactory.java} (56%)
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XmppEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XmppEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XsltEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/XsltEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/YammerEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/YammerEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ZendeskEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ZendeskEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ZooKeeperEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ZooKeeperEndpointBuilderFactory.java
 delete mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ZooKeeperMasterEndpointBuilder.java
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/endpoint/ZooKeeperMasterEndpointBuilderFactory.java


[camel] 02/02: Use a different approach to keep a single method and split advanced options in separate interfaces

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

gnodet pushed a commit to branch endpoint-dsl
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c19d2fee312045fa066ee18f3511f8f98921260f
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed Jun 12 22:36:35 2019 +0200

    Use a different approach to keep a single method and split advanced options in separate interfaces
---
 .../apache/camel/builder/EndpointRouteBuilder.java |    4 +-
 .../camel/model/AbstractEndpointBuilder.java       |    3 +
 .../camel/model/EndpointConsumerBuilder.java       |    2 +
 .../camel/model/EndpointProducerBuilder.java       |    2 +
 .../camel/model/endpoint/AMQPEndpointBuilder.java  | 2329 ----------
 .../model/endpoint/AMQPEndpointBuilderFactory.java | 4637 ++++++++++++++++++
 .../camel/model/endpoint/AS2EndpointBuilder.java   |  668 ---
 .../model/endpoint/AS2EndpointBuilderFactory.java  | 1700 +++++++
 .../model/endpoint/ActiveMQEndpointBuilder.java    | 2347 ----------
 .../endpoint/ActiveMQEndpointBuilderFactory.java   | 4649 +++++++++++++++++++
 ...Builder.java => AhcEndpointBuilderFactory.java} |  307 +-
 .../camel/model/endpoint/ApnsEndpointBuilder.java  |  565 ---
 ...uilder.java => ApnsEndpointBuilderFactory.java} |  802 ++--
 .../model/endpoint/AsteriskEndpointBuilder.java    |  272 --
 .../endpoint/AsteriskEndpointBuilderFactory.java   |  464 ++
 .../camel/model/endpoint/AtmosEndpointBuilder.java |  323 --
 .../endpoint/AtmosEndpointBuilderFactory.java      |  681 +++
 .../AtmosphereWebsocketEndpointBuilder.java        |  662 ---
 .../AtmosphereWebsocketEndpointBuilderFactory.java | 1358 ++++++
 .../camel/model/endpoint/AtomEndpointBuilder.java  |  674 ---
 .../model/endpoint/AtomEndpointBuilderFactory.java |  260 ++
 .../model/endpoint/AtomixMapEndpointBuilder.java   |  489 --
 .../endpoint/AtomixMapEndpointBuilderFactory.java  | 1192 +++++
 .../endpoint/AtomixMessagingEndpointBuilder.java   |  500 --
 .../AtomixMessagingEndpointBuilderFactory.java     | 1223 +++++
 .../endpoint/AtomixMultiMapEndpointBuilder.java    |  471 --
 .../AtomixMultiMapEndpointBuilderFactory.java      |  413 ++
 .../model/endpoint/AtomixQueueEndpointBuilder.java |  452 --
 .../AtomixQueueEndpointBuilderFactory.java         | 1082 +++++
 .../model/endpoint/AtomixSetEndpointBuilder.java   |  469 --
 .../endpoint/AtomixSetEndpointBuilderFactory.java  | 1132 +++++
 .../model/endpoint/AtomixValueEndpointBuilder.java |  470 --
 .../AtomixValueEndpointBuilderFactory.java         | 1136 +++++
 .../camel/model/endpoint/AvroEndpointBuilder.java  |  354 --
 .../model/endpoint/AvroEndpointBuilderFactory.java |  789 ++++
 ...uilder.java => BeanEndpointBuilderFactory.java} |  112 +-
 ...va => BeanValidatorEndpointBuilderFactory.java} |  145 +-
 .../model/endpoint/BeanstalkEndpointBuilder.java   |  721 ---
 .../endpoint/BeanstalkEndpointBuilderFactory.java  | 1068 +++++
 .../model/endpoint/BlobServiceEndpointBuilder.java |  508 --
 .../BlobServiceEndpointBuilderFactory.java         | 1024 ++++
 .../model/endpoint/BonitaEndpointBuilder.java      |  259 --
 .../endpoint/BonitaEndpointBuilderFactory.java     |  185 +
 .../camel/model/endpoint/BoxEndpointBuilder.java   |  451 --
 .../model/endpoint/BoxEndpointBuilderFactory.java  | 1075 +++++
 .../model/endpoint/BraintreeEndpointBuilder.java   |  367 --
 .../endpoint/BraintreeEndpointBuilderFactory.java  |  822 ++++
 .../model/endpoint/BrowseEndpointBuilder.java      |  216 -
 .../endpoint/BrowseEndpointBuilderFactory.java     |  354 ++
 ...tBuilder.java => CMEndpointBuilderFactory.java} |  119 +-
 .../camel/model/endpoint/CMISEndpointBuilder.java  |  353 --
 .../model/endpoint/CMISEndpointBuilderFactory.java |  721 +++
 .../endpoint/CaffeineCacheEndpointBuilder.java     |  519 ---
 .../CaffeineCacheEndpointBuilderFactory.java       |  804 ++++
 .../endpoint/CaffeineLoadCacheEndpointBuilder.java |  524 ---
 .../CaffeineLoadCacheEndpointBuilderFactory.java   |  813 ++++
 .../model/endpoint/CassandraEndpointBuilder.java   |  753 ---
 .../endpoint/CassandraEndpointBuilderFactory.java  | 1289 ++++++
 ....java => ChatScriptEndpointBuilderFactory.java} |  156 +-
 ...ilder.java => ChunkEndpointBuilderFactory.java} |  123 +-
 ...lder.java => CinderEndpointBuilderFactory.java} |  137 +-
 ...ilder.java => ClassEndpointBuilderFactory.java} |  112 +-
 .../model/endpoint/ClientEndpointBuilder.java      |  534 ---
 .../endpoint/ClientEndpointBuilderFactory.java     | 1306 ++++++
 .../camel/model/endpoint/CoAPEndpointBuilder.java  |  380 --
 .../model/endpoint/CoAPEndpointBuilderFactory.java |  846 ++++
 .../model/endpoint/CometdEndpointBuilder.java      |  461 --
 .../endpoint/CometdEndpointBuilderFactory.java     | 1024 ++++
 .../model/endpoint/ConsulEndpointBuilder.java      |  219 -
 .../endpoint/ConsulEndpointBuilderFactory.java     |  357 ++
 ....java => ControlBusEndpointBuilderFactory.java} |  146 +-
 .../camel/model/endpoint/CordaEndpointBuilder.java |  225 -
 .../endpoint/CordaEndpointBuilderFactory.java      |  395 ++
 .../model/endpoint/CouchDbEndpointBuilder.java     |  361 --
 .../endpoint/CouchDbEndpointBuilderFactory.java    |  650 +++
 .../model/endpoint/CouchbaseEndpointBuilder.java   | 1007 ----
 .../endpoint/CouchbaseEndpointBuilderFactory.java  | 1646 +++++++
 ...r.java => CryptoCmsEndpointBuilderFactory.java} |  310 +-
 ...tBuilder.java => CwEndpointBuilderFactory.java} |  188 +-
 .../camel/model/endpoint/CxfEndpointBuilder.java   |  776 ----
 .../model/endpoint/CxfEndpointBuilderFactory.java  | 1905 ++++++++
 .../camel/model/endpoint/CxfRsEndpointBuilder.java |  804 ----
 .../endpoint/CxfRsEndpointBuilderFactory.java      | 1725 +++++++
 ....java => DataFormatEndpointBuilderFactory.java} |   87 +-
 ...der.java => DataSetEndpointBuilderFactory.java} |  545 ++-
 .../model/endpoint/DataSetTestEndpointBuilder.java |  453 --
 .../DataSetTestEndpointBuilderFactory.java         |  195 +
 ...Builder.java => DdbEndpointBuilderFactory.java} |  216 +-
 .../model/endpoint/DdbStreamEndpointBuilder.java   |  702 ---
 .../endpoint/DdbStreamEndpointBuilderFactory.java  |  175 +
 ...ava => DigitalOceanEndpointBuilderFactory.java} |  252 +-
 ...=> DigitalSignatureEndpointBuilderFactory.java} |  309 +-
 .../model/endpoint/DirectEndpointBuilder.java      |  276 --
 .../endpoint/DirectEndpointBuilderFactory.java     |  416 ++
 .../model/endpoint/DirectVmEndpointBuilder.java    |  325 --
 .../endpoint/DirectVmEndpointBuilderFactory.java   |  509 ++
 .../model/endpoint/DisruptorEndpointBuilder.java   |  441 --
 .../endpoint/DisruptorEndpointBuilderFactory.java  |  639 +++
 .../model/endpoint/DisruptorVmEndpointBuilder.java |  442 --
 .../DisruptorVmEndpointBuilderFactory.java         |  639 +++
 ...Builder.java => DnsEndpointBuilderFactory.java} |   86 +-
 .../model/endpoint/DockerEndpointBuilder.java      |  462 --
 .../endpoint/DockerEndpointBuilderFactory.java     | 1125 +++++
 ...ilder.java => DozerEndpointBuilderFactory.java} |  127 +-
 ...ilder.java => DrillEndpointBuilderFactory.java} |  118 +-
 .../model/endpoint/DropboxEndpointBuilder.java     |  352 --
 .../endpoint/DropboxEndpointBuilderFactory.java    |  743 +++
 .../camel/model/endpoint/EC2EndpointBuilder.java   |  221 -
 ...Builder.java => EC2EndpointBuilderFactory.java} |   96 +-
 .../camel/model/endpoint/ECSEndpointBuilder.java   |  215 -
 ...Builder.java => ECSEndpointBuilderFactory.java} |   96 +-
 .../camel/model/endpoint/EKSEndpointBuilder.java   |  215 -
 ...Builder.java => EKSEndpointBuilderFactory.java} |   96 +-
 .../model/endpoint/EhcacheEndpointBuilder.java     |  480 --
 .../endpoint/EhcacheEndpointBuilderFactory.java    |  971 ++++
 ...Builder.java => EjbEndpointBuilderFactory.java} |  111 +-
 ...va => ElasticsearchEndpointBuilderFactory.java} |  223 +-
 .../camel/model/endpoint/ElsqlEndpointBuilder.java | 1141 -----
 .../endpoint/ElsqlEndpointBuilderFactory.java      | 2006 ++++++++
 .../camel/model/endpoint/EndpointBuilder.java      |  317 --
 .../model/endpoint/EndpointBuilderFactory.java     |  317 ++
 .../camel/model/endpoint/EtcdEndpointBuilder.java  |  735 ---
 .../model/endpoint/EtcdEndpointBuilderFactory.java | 1123 +++++
 .../model/endpoint/EventAdminEndpointBuilder.java  |  237 -
 .../endpoint/EventAdminEndpointBuilderFactory.java |  416 ++
 .../camel/model/endpoint/EventEndpointBuilder.java |  214 -
 .../endpoint/EventEndpointBuilderFactory.java      |  353 ++
 ...uilder.java => ExecEndpointBuilderFactory.java} |  151 +-
 .../model/endpoint/FacebookEndpointBuilder.java    | 1541 ------
 .../endpoint/FacebookEndpointBuilderFactory.java   | 4534 ++++++++++++++++++
 .../camel/model/endpoint/FhirEndpointBuilder.java  |  605 ---
 .../model/endpoint/FhirEndpointBuilderFactory.java | 1516 ++++++
 ...uilder.java => FileEndpointBuilderFactory.java} | 2845 +++++++-----
 .../model/endpoint/FlatpackEndpointBuilder.java    |  708 ---
 .../endpoint/FlatpackEndpointBuilderFactory.java   | 1162 +++++
 ...ilder.java => FlinkEndpointBuilderFactory.java} |  154 +-
 ...Builder.java => FopEndpointBuilderFactory.java} |  106 +-
 ....java => FreemarkerEndpointBuilderFactory.java} |  129 +-
 .../camel/model/endpoint/FtpEndpointBuilder.java   | 2759 -----------
 .../model/endpoint/FtpEndpointBuilderFactory.java  | 4298 +++++++++++++++++
 .../camel/model/endpoint/FtpsEndpointBuilder.java  | 3030 ------------
 .../model/endpoint/FtpsEndpointBuilderFactory.java | 4897 ++++++++++++++++++++
 ...der.java => GangliaEndpointBuilderFactory.java} |  210 +-
 ...er.java => GeoCoderEndpointBuilderFactory.java} |  218 +-
 .../camel/model/endpoint/GitEndpointBuilder.java   |  320 --
 .../model/endpoint/GitEndpointBuilderFactory.java  |  568 +++
 .../model/endpoint/GitHubEndpointBuilder.java      |  313 --
 .../endpoint/GitHubEndpointBuilderFactory.java     |  567 +++
 ...lder.java => GlanceEndpointBuilderFactory.java} |  131 +-
 ...a => GoogleBigQueryEndpointBuilderFactory.java} |  114 +-
 ...> GoogleBigQuerySQLEndpointBuilderFactory.java} |  106 +-
 .../endpoint/GoogleCalendarEndpointBuilder.java    |  342 --
 .../GoogleCalendarEndpointBuilderFactory.java      |  751 +++
 ...GoogleCalendarStreamEndpointBuilderFactory.java |  283 ++
 .../model/endpoint/GoogleDriveEndpointBuilder.java |  350 --
 .../GoogleDriveEndpointBuilderFactory.java         |  761 +++
 .../model/endpoint/GoogleMailEndpointBuilder.java  |  299 --
 .../endpoint/GoogleMailEndpointBuilderFactory.java |  609 +++
 .../endpoint/GoogleMailStreamEndpointBuilder.java  |  652 ---
 .../GoogleMailStreamEndpointBuilderFactory.java    |  229 +
 .../endpoint/GooglePubsubEndpointBuilder.java      |  325 --
 .../GooglePubsubEndpointBuilderFactory.java        |  695 +++
 .../endpoint/GoogleSheetsEndpointBuilder.java      |  301 --
 .../GoogleSheetsEndpointBuilderFactory.java        |  615 +++
 .../GoogleSheetsStreamEndpointBuilderFactory.java  |  286 ++
 .../camel/model/endpoint/GoraEndpointBuilder.java  |  499 --
 .../model/endpoint/GoraEndpointBuilderFactory.java |  747 +++
 ...ilder.java => GrapeEndpointBuilderFactory.java} |   84 +-
 .../model/endpoint/GridFsEndpointBuilder.java      |  431 --
 .../endpoint/GridFsEndpointBuilderFactory.java     |  786 ++++
 .../camel/model/endpoint/GrpcEndpointBuilder.java  |  609 ---
 .../model/endpoint/GrpcEndpointBuilderFactory.java | 1200 +++++
 .../endpoint/GuavaEventBusEndpointBuilder.java     |  276 --
 .../GuavaEventBusEndpointBuilderFactory.java       |  542 +++
 .../camel/model/endpoint/HBaseEndpointBuilder.java |  449 --
 .../endpoint/HBaseEndpointBuilderFactory.java      |  898 ++++
 ...zelcastAtomicnumberEndpointBuilderFactory.java} |  245 +-
 .../endpoint/HazelcastInstanceEndpointBuilder.java |  454 --
 ...> HazelcastInstanceEndpointBuilderFactory.java} |  272 +-
 .../endpoint/HazelcastListEndpointBuilder.java     |  471 --
 .../HazelcastListEndpointBuilderFactory.java       | 1018 ++++
 .../endpoint/HazelcastMapEndpointBuilder.java      |  471 --
 .../HazelcastMapEndpointBuilderFactory.java        | 1014 ++++
 .../endpoint/HazelcastMultimapEndpointBuilder.java |  476 --
 .../HazelcastMultimapEndpointBuilderFactory.java   | 1026 ++++
 .../endpoint/HazelcastQueueEndpointBuilder.java    |  472 --
 .../HazelcastQueueEndpointBuilderFactory.java      | 1021 ++++
 .../HazelcastReplicatedmapEndpointBuilder.java     |  478 --
 ...zelcastReplicatedmapEndpointBuilderFactory.java | 1029 ++++
 ...HazelcastRingbufferEndpointBuilderFactory.java} |  245 +-
 .../endpoint/HazelcastSedaEndpointBuilder.java     |  471 --
 .../HazelcastSedaEndpointBuilderFactory.java       | 1017 ++++
 .../endpoint/HazelcastSetEndpointBuilder.java      |  469 --
 .../HazelcastSetEndpointBuilderFactory.java        | 1014 ++++
 .../endpoint/HazelcastTopicEndpointBuilder.java    |  472 --
 .../HazelcastTopicEndpointBuilderFactory.java      | 1021 ++++
 .../camel/model/endpoint/HdfsEndpointBuilder.java  |  969 ----
 .../model/endpoint/HdfsEndpointBuilderFactory.java | 1834 ++++++++
 .../model/endpoint/HipchatEndpointBuilder.java     |  631 ---
 .../endpoint/HipchatEndpointBuilderFactory.java    |  923 ++++
 .../camel/model/endpoint/HttpEndpointBuilder.java  | 1053 -----
 .../model/endpoint/HttpEndpointBuilderFactory.java |  599 +++
 .../camel/model/endpoint/IAMEndpointBuilder.java   |  215 -
 ...Builder.java => IAMEndpointBuilderFactory.java} |   96 +-
 .../camel/model/endpoint/IOTAEndpointBuilder.java  |  301 --
 .../model/endpoint/IOTAEndpointBuilderFactory.java |  632 +++
 ...uilder.java => IPFSEndpointBuilderFactory.java} |   95 +-
 .../model/endpoint/IgniteCacheEndpointBuilder.java |  486 --
 .../IgniteCacheEndpointBuilderFactory.java         |  721 +++
 .../endpoint/IgniteComputeEndpointBuilder.java     |  261 --
 .../IgniteComputeEndpointBuilderFactory.java       |  177 +
 .../endpoint/IgniteEventsEndpointBuilder.java      |  289 --
 .../IgniteEventsEndpointBuilderFactory.java        |  166 +
 .../model/endpoint/IgniteIdGenEndpointBuilder.java |  232 -
 .../IgniteIdGenEndpointBuilderFactory.java         |  175 +
 .../endpoint/IgniteMessagingEndpointBuilder.java   |  334 --
 .../IgniteMessagingEndpointBuilderFactory.java     |  562 +++
 .../model/endpoint/IgniteQueueEndpointBuilder.java |  256 -
 .../IgniteQueueEndpointBuilderFactory.java         |  174 +
 .../model/endpoint/IgniteSetEndpointBuilder.java   |  221 -
 .../endpoint/IgniteSetEndpointBuilderFactory.java  |  174 +
 .../model/endpoint/InfinispanEndpointBuilder.java  |  536 ---
 .../endpoint/InfinispanEndpointBuilderFactory.java | 1077 +++++
 ...er.java => InfluxDbEndpointBuilderFactory.java} |  121 +-
 .../camel/model/endpoint/IrcEndpointBuilder.java   |  586 ---
 .../model/endpoint/IrcEndpointBuilderFactory.java  | 1494 ++++++
 .../model/endpoint/IronMQEndpointBuilder.java      |  754 ---
 .../endpoint/IronMQEndpointBuilderFactory.java     | 1060 +++++
 .../camel/model/endpoint/JBPMEndpointBuilder.java  |  640 ---
 .../model/endpoint/JBPMEndpointBuilderFactory.java | 1652 +++++++
 .../model/endpoint/JCacheEndpointBuilder.java      |  549 ---
 .../endpoint/JCacheEndpointBuilderFactory.java     | 1218 +++++
 .../model/endpoint/JGroupsEndpointBuilder.java     |  250 -
 .../endpoint/JGroupsEndpointBuilderFactory.java    |  413 ++
 .../model/endpoint/JGroupsRaftEndpointBuilder.java |  241 -
 .../JGroupsRaftEndpointBuilderFactory.java         |  380 ++
 .../camel/model/endpoint/JMXEndpointBuilder.java   |  657 ---
 .../model/endpoint/JMXEndpointBuilderFactory.java  |  538 +++
 .../endpoint/JSR356WebSocketEndpointBuilder.java   |  246 -
 .../JSR356WebSocketEndpointBuilderFactory.java     |  455 ++
 .../model/endpoint/JcloudsEndpointBuilder.java     |  346 --
 .../endpoint/JcloudsEndpointBuilderFactory.java    |  551 +++
 .../camel/model/endpoint/JcrEndpointBuilder.java   |  380 --
 .../model/endpoint/JcrEndpointBuilderFactory.java  |  861 ++++
 ...uilder.java => JdbcEndpointBuilderFactory.java} |  234 +-
 .../camel/model/endpoint/JettyHttpEndpoint9.java   |  637 ---
 .../model/endpoint/JettyHttpEndpointBuilder9.java  | 1334 ------
 .../endpoint/JettyHttpEndpointBuilder9Factory.java | 2056 ++++++++
 ...uilder.java => JingEndpointBuilderFactory.java} |   94 +-
 .../camel/model/endpoint/JiraEndpointBuilder.java  |  354 --
 .../model/endpoint/JiraEndpointBuilderFactory.java |  708 +++
 .../camel/model/endpoint/JmsEndpointBuilder.java   | 2329 ----------
 .../model/endpoint/JmsEndpointBuilderFactory.java  | 4634 ++++++++++++++++++
 ...uilder.java => JoltEndpointBuilderFactory.java} |  132 +-
 .../camel/model/endpoint/JooqEndpointBuilder.java  |  624 ---
 ...uilder.java => JooqEndpointBuilderFactory.java} |  944 ++--
 .../camel/model/endpoint/JpaEndpointBuilder.java   | 1043 -----
 .../model/endpoint/JpaEndpointBuilderFactory.java  | 1632 +++++++
 ...va => JsonValidatorEndpointBuilderFactory.java} |  160 +-
 .../camel/model/endpoint/Jt400EndpointBuilder.java |  825 ----
 .../endpoint/Jt400EndpointBuilderFactory.java      | 1436 ++++++
 .../camel/model/endpoint/KMSEndpointBuilder.java   |  214 -
 ...Builder.java => KMSEndpointBuilderFactory.java} |   96 +-
 .../camel/model/endpoint/KafkaEndpointBuilder.java | 2001 --------
 .../endpoint/KafkaEndpointBuilderFactory.java      | 2985 ++++++++++++
 ...er.java => KeystoneEndpointBuilderFactory.java} |  131 +-
 .../model/endpoint/KinesisEndpointBuilder.java     |  746 ---
 .../endpoint/KinesisEndpointBuilderFactory.java    | 1057 +++++
 ... => KinesisFirehoseEndpointBuilderFactory.java} |  159 +-
 ...ubernetesConfigMapsEndpointBuilderFactory.java} |  306 +-
 .../KubernetesDeploymentsEndpointBuilder.java      |  479 --
 ...ubernetesDeploymentsEndpointBuilderFactory.java | 1078 +++++
 .../endpoint/KubernetesHPAEndpointBuilder.java     |  476 --
 .../KubernetesHPAEndpointBuilderFactory.java       | 1065 +++++
 .../endpoint/KubernetesJobEndpointBuilder.java     |  476 --
 .../KubernetesJobEndpointBuilderFactory.java       | 1065 +++++
 .../KubernetesNamespacesEndpointBuilder.java       |  481 --
 ...KubernetesNamespacesEndpointBuilderFactory.java | 1079 +++++
 .../endpoint/KubernetesNodesEndpointBuilder.java   |  477 --
 .../KubernetesNodesEndpointBuilderFactory.java     | 1072 +++++
 ...istentVolumesClaimsEndpointBuilderFactory.java} |  307 +-
 ...esPersistentVolumesEndpointBuilderFactory.java} |  305 +-
 .../endpoint/KubernetesPodsEndpointBuilder.java    |  476 --
 .../KubernetesPodsEndpointBuilderFactory.java      | 1072 +++++
 ...netesReplicationControllersEndpointBuilder.java |  490 --
 ...plicationControllersEndpointBuilderFactory.java | 1083 +++++
 ...netesResourcesQuotaEndpointBuilderFactory.java} |  307 +-
 ...> KubernetesSecretsEndpointBuilderFactory.java} |  303 +-
 ...etesServiceAccountsEndpointBuilderFactory.java} |  307 +-
 .../KubernetesServicesEndpointBuilder.java         |  481 --
 .../KubernetesServicesEndpointBuilderFactory.java  | 1078 +++++
 ...lder.java => LambdaEndpointBuilderFactory.java} |  209 +-
 ...er.java => LanguageEndpointBuilderFactory.java} |  141 +-
 ...uilder.java => LdapEndpointBuilderFactory.java} |  114 +-
 ...uilder.java => LdifEndpointBuilderFactory.java} |   82 +-
 .../model/endpoint/LinkedInEndpointBuilder.java    |  455 --
 .../endpoint/LinkedInEndpointBuilderFactory.java   | 1064 +++++
 ...Builder.java => LogEndpointBuilderFactory.java} |  418 +-
 ...lder.java => LuceneEndpointBuilderFactory.java} |  141 +-
 .../model/endpoint/LumberjackEndpointBuilder.java  |  234 -
 .../endpoint/LumberjackEndpointBuilderFactory.java |  161 +
 .../camel/model/endpoint/MQEndpointBuilder.java    |  216 -
 ...tBuilder.java => MQEndpointBuilderFactory.java} |   95 +-
 .../camel/model/endpoint/MQTTEndpointBuilder.java  |  843 ----
 .../model/endpoint/MQTTEndpointBuilderFactory.java | 2286 +++++++++
 .../camel/model/endpoint/MSKEndpointBuilder.java   |  215 -
 ...Builder.java => MSKEndpointBuilderFactory.java} |   96 +-
 .../camel/model/endpoint/MailEndpointBuilder.java  | 1426 ------
 .../model/endpoint/MailEndpointBuilderFactory.java | 2356 ++++++++++
 .../model/endpoint/MasterEndpointBuilder.java      |  204 -
 ...lder.java => MasterEndpointBuilderFactory.java} |  101 +-
 ...der.java => MetricsEndpointBuilderFactory.java} |  168 +-
 ....java => MicrometerEndpointBuilderFactory.java} |  131 +-
 .../model/endpoint/MiloClientEndpointBuilder.java  |  545 ---
 .../endpoint/MiloClientEndpointBuilderFactory.java | 1422 ++++++
 .../model/endpoint/MiloServerEndpointBuilder.java  |  214 -
 .../endpoint/MiloServerEndpointBuilderFactory.java |  352 ++
 .../camel/model/endpoint/Mina2EndpointBuilder.java |  730 ---
 .../endpoint/Mina2EndpointBuilderFactory.java      | 1733 +++++++
 .../camel/model/endpoint/MllpEndpointBuilder.java  |  718 ---
 .../model/endpoint/MllpEndpointBuilderFactory.java | 1479 ++++++
 .../camel/model/endpoint/MockEndpointBuilder.java  |  376 --
 ...uilder.java => MockEndpointBuilderFactory.java} |   90 +-
 .../model/endpoint/MongoDbEndpointBuilder.java     |  492 --
 .../endpoint/MongoDbEndpointBuilderFactory.java    | 1216 +++++
 ...Builder.java => MsvEndpointBuilderFactory.java} |  189 +-
 ...er.java => MustacheEndpointBuilderFactory.java} |  112 +-
 ...uilder.java => MvelEndpointBuilderFactory.java} |   99 +-
 .../model/endpoint/MyBatisBeanEndpointBuilder.java |  184 -
 .../MyBatisBeanEndpointBuilderFactory.java         |  138 +
 ...der.java => MyBatisEndpointBuilderFactory.java} |  781 ++--
 ...lder.java => NagiosEndpointBuilderFactory.java} |  205 +-
 .../camel/model/endpoint/NatsEndpointBuilder.java  |  570 ---
 .../model/endpoint/NatsEndpointBuilderFactory.java | 1387 ++++++
 ...r.java => NetWeaverEndpointBuilderFactory.java} |  131 +-
 .../camel/model/endpoint/NettyEndpointBuilder.java | 1692 -------
 .../endpoint/NettyEndpointBuilderFactory.java      | 3648 +++++++++++++++
 .../model/endpoint/NettyHttpEndpointBuilder.java   | 1917 --------
 .../endpoint/NettyHttpEndpointBuilderFactory.java  | 4014 ++++++++++++++++
 ...der.java => NeutronEndpointBuilderFactory.java} |  137 +-
 ...uilder.java => NovaEndpointBuilderFactory.java} |  137 +-
 .../camel/model/endpoint/NsqEndpointBuilder.java   |  406 --
 .../model/endpoint/NsqEndpointBuilderFactory.java  |  674 +++
 .../model/endpoint/Olingo2EndpointBuilder.java     |  448 --
 .../endpoint/Olingo2EndpointBuilderFactory.java    | 1083 +++++
 .../model/endpoint/Olingo4EndpointBuilder.java     |  448 --
 .../endpoint/Olingo4EndpointBuilderFactory.java    | 1083 +++++
 ...enshiftBuildConfigsEndpointBuilderFactory.java} |  306 +-
 ... => OpenshiftBuildsEndpointBuilderFactory.java} |  301 +-
 .../model/endpoint/OptaPlannerEndpointBuilder.java |  261 --
 .../OptaPlannerEndpointBuilderFactory.java         |  421 ++
 .../camel/model/endpoint/PahoEndpointBuilder.java  |  383 --
 .../model/endpoint/PahoEndpointBuilderFactory.java |  867 ++++
 .../model/endpoint/PaxLoggingEndpointBuilder.java  |  197 -
 ....java => PaxLoggingEndpointBuilderFactory.java} |   99 +-
 ...Builder.java => PdfEndpointBuilderFactory.java} |  185 +-
 .../model/endpoint/PgEventEndpointBuilder.java     |  292 --
 .../endpoint/PgEventEndpointBuilderFactory.java    |  588 +++
 ...der.java => PrinterEndpointBuilderFactory.java} |  179 +-
 .../model/endpoint/PropertiesEndpointBuilder.java  |  262 --
 .../endpoint/PropertiesEndpointBuilderFactory.java |  498 ++
 .../model/endpoint/PubNubEndpointBuilder.java      |  350 --
 .../endpoint/PubNubEndpointBuilderFactory.java     |  689 +++
 .../model/endpoint/PulsarEndpointBuilder.java      |  318 --
 .../endpoint/PulsarEndpointBuilderFactory.java     |  447 ++
 ...lder.java => QuartzEndpointBuilderFactory.java} |  468 +-
 .../endpoint/QueueServiceEndpointBuilder.java      |  338 --
 .../QueueServiceEndpointBuilderFactory.java        |  574 +++
 .../model/endpoint/QuickfixjEndpointBuilder.java   |  268 --
 .../endpoint/QuickfixjEndpointBuilderFactory.java  |  523 +++
 .../model/endpoint/RabbitMQEndpointBuilder.java    | 1202 -----
 .../endpoint/RabbitMQEndpointBuilderFactory.java   | 2704 +++++++++++
 .../endpoint/ReactiveStreamsEndpointBuilder.java   |  371 --
 .../ReactiveStreamsEndpointBuilderFactory.java     |  511 ++
 .../camel/model/endpoint/RedisEndpointBuilder.java |  357 --
 .../endpoint/RedisEndpointBuilderFactory.java      |  734 +++
 .../camel/model/endpoint/RefEndpointBuilder.java   |  214 -
 .../model/endpoint/RefEndpointBuilderFactory.java  |  352 ++
 .../model/endpoint/RestApiEndpointBuilder.java     |  229 -
 .../endpoint/RestApiEndpointBuilderFactory.java    |  157 +
 .../camel/model/endpoint/RestEndpointBuilder.java  |  367 --
 .../model/endpoint/RestEndpointBuilderFactory.java |  673 +++
 .../model/endpoint/RestSwaggerEndpointBuilder.java |  222 -
 ...java => RestSwaggerEndpointBuilderFactory.java} |   87 +-
 .../model/endpoint/RestletEndpointBuilder.java     |  571 ---
 .../endpoint/RestletEndpointBuilderFactory.java    | 1039 +++++
 .../camel/model/endpoint/RssEndpointBuilder.java   |  673 ---
 .../model/endpoint/RssEndpointBuilderFactory.java  |  258 ++
 .../camel/model/endpoint/S3EndpointBuilder.java    | 1124 -----
 .../model/endpoint/S3EndpointBuilderFactory.java   | 1905 ++++++++
 .../camel/model/endpoint/SWFEndpointBuilder.java   |  588 ---
 .../model/endpoint/SWFEndpointBuilderFactory.java  | 1094 +++++
 ...uilder.java => SagaEndpointBuilderFactory.java} |   89 +-
 .../model/endpoint/SalesforceEndpointBuilder.java  |  915 ----
 .../endpoint/SalesforceEndpointBuilderFactory.java | 2399 ++++++++++
 .../model/endpoint/SchedulerEndpointBuilder.java   |  562 ---
 .../endpoint/SchedulerEndpointBuilderFactory.java  |  143 +
 ....java => SchematronEndpointBuilderFactory.java} |  119 +-
 ...Builder.java => ScpEndpointBuilderFactory.java} |  465 +-
 ...Builder.java => SdbEndpointBuilderFactory.java} |  168 +-
 .../camel/model/endpoint/SedaEndpointBuilder.java  |  528 ---
 .../model/endpoint/SedaEndpointBuilderFactory.java |  773 +++
 .../model/endpoint/ServerEndpointBuilder.java      |  552 ---
 .../endpoint/ServerEndpointBuilderFactory.java     | 1366 ++++++
 .../model/endpoint/ServiceEndpointBuilder.java     |  195 -
 ...der.java => ServiceEndpointBuilderFactory.java} |   93 +-
 ....java => ServiceNowEndpointBuilderFactory.java} |  694 +--
 .../model/endpoint/ServletEndpointBuilder.java     |  596 ---
 .../endpoint/ServletEndpointBuilderFactory.java    |  339 ++
 ...Builder.java => SesEndpointBuilderFactory.java} |  193 +-
 .../camel/model/endpoint/SftpEndpointBuilder.java  | 2879 ------------
 .../model/endpoint/SftpEndpointBuilderFactory.java | 4584 ++++++++++++++++++
 .../camel/model/endpoint/SipEndpointBuilder.java   |  906 ----
 .../model/endpoint/SipEndpointBuilderFactory.java  | 2464 ++++++++++
 .../camel/model/endpoint/Sjms2EndpointBuilder.java |  907 ----
 .../endpoint/Sjms2EndpointBuilderFactory.java      | 1846 ++++++++
 ...r.java => SjmsBatchEndpointBuilderFactory.java} |  424 +-
 .../camel/model/endpoint/SjmsEndpointBuilder.java  |  861 ----
 .../model/endpoint/SjmsEndpointBuilderFactory.java | 1798 +++++++
 .../camel/model/endpoint/SlackEndpointBuilder.java |  623 ---
 ...ilder.java => SlackEndpointBuilderFactory.java} |  841 ++--
 .../camel/model/endpoint/SmppEndpointBuilder.java  |  912 ----
 .../model/endpoint/SmppEndpointBuilderFactory.java | 1846 ++++++++
 .../camel/model/endpoint/SnmpEndpointBuilder.java  |  812 ----
 .../model/endpoint/SnmpEndpointBuilderFactory.java |  386 ++
 ...Builder.java => SnsEndpointBuilderFactory.java} |  254 +-
 ...uilder.java => SolrEndpointBuilderFactory.java} |  246 +-
 .../model/endpoint/SoroushBotEndpointBuilder.java  |  592 ---
 .../endpoint/SoroushBotEndpointBuilderFactory.java | 1420 ++++++
 ...ilder.java => SparkEndpointBuilderFactory.java} |  257 +-
 .../model/endpoint/SplunkEndpointBuilder.java      |  853 ----
 .../endpoint/SplunkEndpointBuilderFactory.java     | 1288 +++++
 ...java => SpringBatchEndpointBuilderFactory.java} |  121 +-
 .../endpoint/SpringIntegrationEndpointBuilder.java |  263 --
 .../SpringIntegrationEndpointBuilderFactory.java   |  459 ++
 ....java => SpringLdapEndpointBuilderFactory.java} |  103 +-
 ...=> SpringWebserviceEndpointBuilderFactory.java} |  704 ++-
 .../camel/model/endpoint/SqlEndpointBuilder.java   | 1066 -----
 .../model/endpoint/SqlEndpointBuilderFactory.java  | 1793 +++++++
 ...r.java => SqlStoredEndpointBuilderFactory.java} |  151 +-
 .../camel/model/endpoint/SqsEndpointBuilder.java   | 1175 -----
 .../model/endpoint/SqsEndpointBuilderFactory.java  | 1889 ++++++++
 .../camel/model/endpoint/SshEndpointBuilder.java   |  739 ---
 .../model/endpoint/SshEndpointBuilderFactory.java  | 1255 +++++
 ...uilder.java => StAXEndpointBuilderFactory.java} |   84 +-
 .../camel/model/endpoint/StompEndpointBuilder.java |  294 --
 .../endpoint/StompEndpointBuilderFactory.java      |  603 +++
 .../model/endpoint/StreamEndpointBuilder.java      |  565 ---
 .../endpoint/StreamEndpointBuilderFactory.java     |  951 ++++
 ...a => StringTemplateEndpointBuilderFactory.java} |  124 +-
 .../camel/model/endpoint/StubEndpointBuilder.java  |  528 ---
 .../model/endpoint/StubEndpointBuilderFactory.java |  773 +++
 ...ilder.java => SwiftEndpointBuilderFactory.java} |  137 +-
 ...er.java => TelegramEndpointBuilderFactory.java} |  801 ++--
 .../model/endpoint/ThriftEndpointBuilder.java      |  422 --
 .../endpoint/ThriftEndpointBuilderFactory.java     |  817 ++++
 ...uilder.java => TikaEndpointBuilderFactory.java} |  127 +-
 ...ilder.java => TimerEndpointBuilderFactory.java} |  252 +-
 .../model/endpoint/TwilioEndpointBuilder.java      |  256 -
 .../endpoint/TwilioEndpointBuilderFactory.java     |  460 ++
 .../TwitterDirectMessageEndpointBuilder.java       |  944 ----
 ...TwitterDirectMessageEndpointBuilderFactory.java | 1320 ++++++
 .../endpoint/TwitterSearchEndpointBuilder.java     |  925 ----
 .../TwitterSearchEndpointBuilderFactory.java       | 1304 ++++++
 .../endpoint/TwitterStreamingEndpointBuilder.java  |  947 ----
 .../TwitterStreamingEndpointBuilderFactory.java    |  252 +
 .../endpoint/TwitterTimelineEndpointBuilder.java   |  963 ----
 .../TwitterTimelineEndpointBuilderFactory.java     | 1389 ++++++
 .../model/endpoint/UndertowEndpointBuilder.java    |  603 ---
 .../endpoint/UndertowEndpointBuilderFactory.java   |  928 ++++
 ...r.java => ValidatorEndpointBuilderFactory.java} |  193 +-
 ...er.java => VelocityEndpointBuilderFactory.java} |  118 +-
 .../camel/model/endpoint/VertxEndpointBuilder.java |  236 -
 .../endpoint/VertxEndpointBuilderFactory.java      |  416 ++
 .../camel/model/endpoint/VmEndpointBuilder.java    |  526 ---
 .../model/endpoint/VmEndpointBuilderFactory.java   |  770 +++
 .../model/endpoint/WeatherEndpointBuilder.java     |  946 ----
 .../endpoint/WeatherEndpointBuilderFactory.java    | 1839 ++++++++
 .../camel/model/endpoint/Web3jEndpointBuilder.java |  716 ---
 .../endpoint/Web3jEndpointBuilderFactory.java      | 1275 +++++
 .../model/endpoint/WebhookEndpointBuilder.java     |  257 -
 .../endpoint/WebhookEndpointBuilderFactory.java    |  188 +
 .../model/endpoint/WebsocketEndpointBuilder.java   |  508 --
 .../endpoint/WebsocketEndpointBuilderFactory.java  | 1136 +++++
 .../model/endpoint/WordpressEndpointBuilder.java   |  342 --
 .../endpoint/WordpressEndpointBuilderFactory.java  |  753 +++
 .../camel/model/endpoint/WsEndpointBuilder.java    |  467 --
 .../model/endpoint/WsEndpointBuilderFactory.java   | 1155 +++++
 ...der.java => XChangeEndpointBuilderFactory.java} |  129 +-
 .../endpoint/XQueryEndpointBuilderFactory.java     | 1462 ++++++
 ...ava => XmlSignatureEndpointBuilderFactory.java} |  549 ++-
 .../camel/model/endpoint/XmppEndpointBuilder.java  |  483 --
 .../model/endpoint/XmppEndpointBuilderFactory.java | 1103 +++++
 ...uilder.java => XsltEndpointBuilderFactory.java} |  274 +-
 .../model/endpoint/YammerEndpointBuilder.java      |  723 ---
 .../endpoint/YammerEndpointBuilderFactory.java     | 1001 ++++
 .../model/endpoint/ZendeskEndpointBuilder.java     |  269 --
 .../endpoint/ZendeskEndpointBuilderFactory.java    |  518 +++
 .../model/endpoint/ZooKeeperEndpointBuilder.java   |  366 --
 .../endpoint/ZooKeeperEndpointBuilderFactory.java  |  649 +++
 .../endpoint/ZooKeeperMasterEndpointBuilder.java   |  207 -
 .../ZooKeeperMasterEndpointBuilderFactory.java     |  131 +
 .../component/file/FileAbsolutePathIssueTest.java  |    4 +-
 .../file/FileBatchConsumerMemoryLeakTest.java      |    4 +-
 .../component/file/FileConsumeCharsetTest.java     |    5 +-
 .../camel/maven/packaging/EndpointDslMojo.java     |  252 +-
 506 files changed, 221608 insertions(+), 131948 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/builder/EndpointRouteBuilder.java b/core/camel-core/src/main/java/org/apache/camel/builder/EndpointRouteBuilder.java
index 8bad83f..e436004 100644
--- a/core/camel-core/src/main/java/org/apache/camel/builder/EndpointRouteBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/builder/EndpointRouteBuilder.java
@@ -16,11 +16,11 @@
  */
 package org.apache.camel.builder;
 
-import org.apache.camel.model.endpoint.EndpointBuilder;
+import org.apache.camel.model.endpoint.EndpointBuilderFactory;
 
 /**
  * A route builder which gives access to the endpoint DSL
  */
-public abstract class EndpointRouteBuilder extends RouteBuilder implements EndpointBuilder {
+public abstract class EndpointRouteBuilder extends RouteBuilder implements EndpointBuilderFactory {
 
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/AbstractEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/AbstractEndpointBuilder.java
index 05b1601..ea3e810 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/AbstractEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/AbstractEndpointBuilder.java
@@ -49,4 +49,7 @@ public class AbstractEndpointBuilder<T extends AbstractEndpointBuilder> {
         return getUri();
     }
 
+    public void setProperty(String key, Object value) {
+        this.properties.put(key, value);
+    }
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/EndpointConsumerBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/EndpointConsumerBuilder.java
index 42e7c7f..955da34 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/EndpointConsumerBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/EndpointConsumerBuilder.java
@@ -26,4 +26,6 @@ public interface EndpointConsumerBuilder {
 
     String getUri();
 
+    void setProperty(String name, Object value);
+
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/EndpointProducerBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/EndpointProducerBuilder.java
index b304ea2..0ff07de 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/EndpointProducerBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/EndpointProducerBuilder.java
@@ -26,4 +26,6 @@ public interface EndpointProducerBuilder {
 
     String getUri();
 
+    void setProperty(String name, Object value);
+
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java
deleted file mode 100644
index f5889a8..0000000
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java
+++ /dev/null
@@ -1,2329 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model.endpoint;
-
-import javax.annotation.Generated;
-import org.apache.camel.ExchangePattern;
-import org.apache.camel.LoggingLevel;
-import org.apache.camel.model.AbstractEndpointBuilder;
-import org.apache.camel.model.EndpointConsumerBuilder;
-import org.apache.camel.model.EndpointProducerBuilder;
-import org.apache.camel.spi.ExceptionHandler;
-import org.apache.camel.spi.HeaderFilterStrategy;
-
-/**
- * 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.EndpointDslMojo")
-public interface AMQPEndpointBuilder {
-
-
-    /**
-     * Base class for the AMQP component builders.
-     */
-    public static class AMQPCommonBuilder<T extends AbstractEndpointBuilder>
-            extends
-                AbstractEndpointBuilder<T> {
-        AMQPCommonBuilder(String path) {
-            super("amqp", path);
-        }
-        /**
-         * The kind of destination to use.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T destinationType(String destinationType) {
-            this.properties.put("destinationType", destinationType);
-            return (T) this;
-        }
-        /**
-         * Name of the queue or topic to use as destination.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T destinationName(String destinationName) {
-            this.properties.put("destinationName", destinationName);
-            return (T) 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
-         */
-        public T clientId(String clientId) {
-            this.properties.put("clientId", clientId);
-            return (T) this;
-        }
-        /**
-         * Sets the default connection factory to be used if a connection
-         * factory is not specified for either
-         * setTemplateConnectionFactory(ConnectionFactory) or
-         * setListenerConnectionFactory(ConnectionFactory).
-         * The option is a <code>javax.jms.ConnectionFactory</code> type.
-         * @group common
-         */
-        public T connectionFactory(Object connectionFactory) {
-            this.properties.put("connectionFactory", connectionFactory);
-            return (T) this;
-        }
-        /**
-         * Sets the default connection factory to be used if a connection
-         * factory is not specified for either
-         * setTemplateConnectionFactory(ConnectionFactory) or
-         * setListenerConnectionFactory(ConnectionFactory).
-         * The option will be converted to a
-         * <code>javax.jms.ConnectionFactory</code> type.
-         * @group common
-         */
-        public T connectionFactory(String connectionFactory) {
-            this.properties.put("connectionFactory", connectionFactory);
-            return (T) this;
-        }
-        /**
-         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
-         * true, Camel does not send a reply back to the destination specified
-         * in the JMSReplyTo header. You can use this option if you want Camel
-         * to consume from a route and you do not want Camel to automatically
-         * send back a reply message because another component in your code
-         * handles the reply message. You can also use this option if you want
-         * to use Camel as a proxy between different message brokers and you
-         * want to route message from one system to another.
-         * The option is a <code>boolean</code> type.
-         * @group common
-         */
-        public T disableReplyTo(boolean disableReplyTo) {
-            this.properties.put("disableReplyTo", disableReplyTo);
-            return (T) this;
-        }
-        /**
-         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
-         * true, Camel does not send a reply back to the destination specified
-         * in the JMSReplyTo header. You can use this option if you want Camel
-         * to consume from a route and you do not want Camel to automatically
-         * send back a reply message because another component in your code
-         * handles the reply message. You can also use this option if you want
-         * to use Camel as a proxy between different message brokers and you
-         * want to route message from one system to another.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group common
-         */
-        public T disableReplyTo(String disableReplyTo) {
-            this.properties.put("disableReplyTo", disableReplyTo);
-            return (T) 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
-         */
-        public T durableSubscriptionName(String durableSubscriptionName) {
-            this.properties.put("durableSubscriptionName", durableSubscriptionName);
-            return (T) this;
-        }
-        /**
-         * Allows you to force the use of a specific javax.jms.Message
-         * implementation for sending JMS messages. Possible values are: Bytes,
-         * Map, Object, Stream, Text. By default, Camel would determine which
-         * JMS message type to use from the In body type. This option allows you
-         * to specify it.
-         * The option is a
-         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
-         * @group common
-         */
-        public T jmsMessageType(JmsMessageType jmsMessageType) {
-            this.properties.put("jmsMessageType", jmsMessageType);
-            return (T) this;
-        }
-        /**
-         * Allows you to force the use of a specific javax.jms.Message
-         * implementation for sending JMS messages. Possible values are: Bytes,
-         * Map, Object, Stream, Text. By default, Camel would determine which
-         * JMS message type to use from the In body type. This option allows you
-         * to specify it.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
-         * @group common
-         */
-        public T jmsMessageType(String jmsMessageType) {
-            this.properties.put("jmsMessageType", jmsMessageType);
-            return (T) 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.
-         * @group common
-         */
-        public T testConnectionOnStartup(boolean testConnectionOnStartup) {
-            this.properties.put("testConnectionOnStartup", testConnectionOnStartup);
-            return (T) 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 will be converted to a <code>boolean</code> type.
-         * @group common
-         */
-        public T testConnectionOnStartup(String testConnectionOnStartup) {
-            this.properties.put("testConnectionOnStartup", testConnectionOnStartup);
-            return (T) this;
-        }
-        /**
-         * Controls whether or not to include serialized headers. Applies only
-         * when isTransferExchange() is true. This requires that the objects are
-         * serializable. Camel will exclude any non-serializable objects and log
-         * it at WARN level.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T allowSerializedHeaders(boolean allowSerializedHeaders) {
-            this.properties.put("allowSerializedHeaders", allowSerializedHeaders);
-            return (T) this;
-        }
-        /**
-         * Controls whether or not to include serialized headers. Applies only
-         * when isTransferExchange() is true. This requires that the objects are
-         * serializable. Camel will exclude any non-serializable objects and log
-         * it at WARN level.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T allowSerializedHeaders(String allowSerializedHeaders) {
-            this.properties.put("allowSerializedHeaders", allowSerializedHeaders);
-            return (T) 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.
-         * @group advanced
-         */
-        public T asyncStartListener(boolean asyncStartListener) {
-            this.properties.put("asyncStartListener", asyncStartListener);
-            return (T) 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 will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T asyncStartListener(String asyncStartListener) {
-            this.properties.put("asyncStartListener", asyncStartListener);
-            return (T) this;
-        }
-        /**
-         * Whether to stop the JmsConsumer message listener asynchronously, when
-         * stopping a route.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T asyncStopListener(boolean asyncStopListener) {
-            this.properties.put("asyncStopListener", asyncStopListener);
-            return (T) this;
-        }
-        /**
-         * Whether to stop the JmsConsumer message listener asynchronously, when
-         * stopping a route.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T asyncStopListener(String asyncStopListener) {
-            this.properties.put("asyncStopListener", asyncStopListener);
-            return (T) this;
-        }
-        /**
-         * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T basicPropertyBinding(boolean basicPropertyBinding) {
-            this.properties.put("basicPropertyBinding", basicPropertyBinding);
-            return (T) this;
-        }
-        /**
-         * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T basicPropertyBinding(String basicPropertyBinding) {
-            this.properties.put("basicPropertyBinding", basicPropertyBinding);
-            return (T) 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
-         */
-        public T destinationResolver(Object destinationResolver) {
-            this.properties.put("destinationResolver", destinationResolver);
-            return (T) 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 will be converted to a
-         * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
-         * @group advanced
-         */
-        public T destinationResolver(String destinationResolver) {
-            this.properties.put("destinationResolver", destinationResolver);
-            return (T) 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
-         */
-        public T errorHandler(Object errorHandler) {
-            this.properties.put("errorHandler", errorHandler);
-            return (T) 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 will be converted to a
-         * <code>org.springframework.util.ErrorHandler</code> type.
-         * @group advanced
-         */
-        public T errorHandler(String errorHandler) {
-            this.properties.put("errorHandler", errorHandler);
-            return (T) 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
-         */
-        public T exceptionListener(Object exceptionListener) {
-            this.properties.put("exceptionListener", exceptionListener);
-            return (T) this;
-        }
-        /**
-         * Specifies the JMS Exception Listener that is to be notified of any
-         * underlying JMS exceptions.
-         * The option will be converted to a
-         * <code>javax.jms.ExceptionListener</code> type.
-         * @group advanced
-         */
-        public T exceptionListener(String exceptionListener) {
-            this.properties.put("exceptionListener", exceptionListener);
-            return (T) this;
-        }
-        /**
-         * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message.
-         * The option is a
-         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
-         * @group advanced
-         */
-        public T headerFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
-            this.properties.put("headerFilterStrategy", headerFilterStrategy);
-            return (T) this;
-        }
-        /**
-         * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message.
-         * The option will be converted to a
-         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
-         * @group advanced
-         */
-        public T headerFilterStrategy(String headerFilterStrategy) {
-            this.properties.put("headerFilterStrategy", headerFilterStrategy);
-            return (T) 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.
-         * @group advanced
-         */
-        public T idleConsumerLimit(int idleConsumerLimit) {
-            this.properties.put("idleConsumerLimit", idleConsumerLimit);
-            return (T) this;
-        }
-        /**
-         * Specify the limit for the number of consumers that are allowed to be
-         * idle at any given time.
-         * The option will be converted to a <code>int</code> type.
-         * @group advanced
-         */
-        public T idleConsumerLimit(String idleConsumerLimit) {
-            this.properties.put("idleConsumerLimit", idleConsumerLimit);
-            return (T) 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.
-         * @group advanced
-         */
-        public T idleTaskExecutionLimit(int idleTaskExecutionLimit) {
-            this.properties.put("idleTaskExecutionLimit", idleTaskExecutionLimit);
-            return (T) 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 will be converted to a <code>int</code> type.
-         * @group advanced
-         */
-        public T idleTaskExecutionLimit(String idleTaskExecutionLimit) {
-            this.properties.put("idleTaskExecutionLimit", idleTaskExecutionLimit);
-            return (T) 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.
-         * @group advanced
-         */
-        public T includeAllJMSXProperties(boolean includeAllJMSXProperties) {
-            this.properties.put("includeAllJMSXProperties", includeAllJMSXProperties);
-            return (T) 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 will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T includeAllJMSXProperties(String includeAllJMSXProperties) {
-            this.properties.put("includeAllJMSXProperties", includeAllJMSXProperties);
-            return (T) 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
-         */
-        public T jmsKeyFormatStrategy(Object jmsKeyFormatStrategy) {
-            this.properties.put("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
-            return (T) 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 will be converted to a
-         * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
-         * type.
-         * @group advanced
-         */
-        public T jmsKeyFormatStrategy(String jmsKeyFormatStrategy) {
-            this.properties.put("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
-            return (T) 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.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T mapJmsMessage(boolean mapJmsMessage) {
-            this.properties.put("mapJmsMessage", mapJmsMessage);
-            return (T) 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.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T mapJmsMessage(String mapJmsMessage) {
-            this.properties.put("mapJmsMessage", mapJmsMessage);
-            return (T) 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.
-         * @group advanced
-         */
-        public T maxMessagesPerTask(int maxMessagesPerTask) {
-            this.properties.put("maxMessagesPerTask", maxMessagesPerTask);
-            return (T) 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 will be converted to a <code>int</code> type.
-         * @group advanced
-         */
-        public T maxMessagesPerTask(String maxMessagesPerTask) {
-            this.properties.put("maxMessagesPerTask", maxMessagesPerTask);
-            return (T) 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
-         */
-        public T messageConverter(Object messageConverter) {
-            this.properties.put("messageConverter", messageConverter);
-            return (T) 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 will be converted to a
-         * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
-         * @group advanced
-         */
-        public T messageConverter(String messageConverter) {
-            this.properties.put("messageConverter", messageConverter);
-            return (T) 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
-         */
-        public T messageCreatedStrategy(Object messageCreatedStrategy) {
-            this.properties.put("messageCreatedStrategy", messageCreatedStrategy);
-            return (T) 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 will be converted to a
-         * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
-         * type.
-         * @group advanced
-         */
-        public T messageCreatedStrategy(String messageCreatedStrategy) {
-            this.properties.put("messageCreatedStrategy", messageCreatedStrategy);
-            return (T) 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.
-         * @group advanced
-         */
-        public T messageIdEnabled(boolean messageIdEnabled) {
-            this.properties.put("messageIdEnabled", messageIdEnabled);
-            return (T) 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 will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T messageIdEnabled(String messageIdEnabled) {
-            this.properties.put("messageIdEnabled", messageIdEnabled);
-            return (T) this;
-        }
-        /**
-         * Registry ID of the MessageListenerContainerFactory used to determine
-         * what
-         * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use to consume messages. Setting this will automatically set
-         * consumerType to Custom.
-         * The option is a
-         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
-         * @group advanced
-         */
-        public T messageListenerContainerFactory(
-                Object messageListenerContainerFactory) {
-            this.properties.put("messageListenerContainerFactory", messageListenerContainerFactory);
-            return (T) this;
-        }
-        /**
-         * Registry ID of the MessageListenerContainerFactory used to determine
-         * what
-         * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use to consume messages. Setting this will automatically set
-         * consumerType to Custom.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
-         * @group advanced
-         */
-        public T messageListenerContainerFactory(
-                String messageListenerContainerFactory) {
-            this.properties.put("messageListenerContainerFactory", messageListenerContainerFactory);
-            return (T) 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.
-         * @group advanced
-         */
-        public T messageTimestampEnabled(boolean messageTimestampEnabled) {
-            this.properties.put("messageTimestampEnabled", messageTimestampEnabled);
-            return (T) 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 will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T messageTimestampEnabled(String messageTimestampEnabled) {
-            this.properties.put("messageTimestampEnabled", messageTimestampEnabled);
-            return (T) this;
-        }
-        /**
-         * Specifies whether to inhibit the delivery of messages published by
-         * its own connection.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T pubSubNoLocal(boolean pubSubNoLocal) {
-            this.properties.put("pubSubNoLocal", pubSubNoLocal);
-            return (T) this;
-        }
-        /**
-         * Specifies whether to inhibit the delivery of messages published by
-         * its own connection.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T pubSubNoLocal(String pubSubNoLocal) {
-            this.properties.put("pubSubNoLocal", pubSubNoLocal);
-            return (T) this;
-        }
-        /**
-         * The timeout for receiving messages (in milliseconds).
-         * The option is a <code>long</code> type.
-         * @group advanced
-         */
-        public T receiveTimeout(long receiveTimeout) {
-            this.properties.put("receiveTimeout", receiveTimeout);
-            return (T) this;
-        }
-        /**
-         * The timeout for receiving messages (in milliseconds).
-         * The option will be converted to a <code>long</code> type.
-         * @group advanced
-         */
-        public T receiveTimeout(String receiveTimeout) {
-            this.properties.put("receiveTimeout", receiveTimeout);
-            return (T) 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.
-         * @group advanced
-         */
-        public T recoveryInterval(long recoveryInterval) {
-            this.properties.put("recoveryInterval", recoveryInterval);
-            return (T) 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 will be converted to a <code>long</code> type.
-         * @group advanced
-         */
-        public T recoveryInterval(String recoveryInterval) {
-            this.properties.put("recoveryInterval", recoveryInterval);
-            return (T) 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.
-         * @group advanced
-         */
-        public T requestTimeoutCheckerInterval(
-                long requestTimeoutCheckerInterval) {
-            this.properties.put("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
-            return (T) 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 will be converted to a <code>long</code> type.
-         * @group advanced
-         */
-        public T requestTimeoutCheckerInterval(
-                String requestTimeoutCheckerInterval) {
-            this.properties.put("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
-            return (T) this;
-        }
-        /**
-         * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported).
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T synchronous(boolean synchronous) {
-            this.properties.put("synchronous", synchronous);
-            return (T) this;
-        }
-        /**
-         * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported).
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T synchronous(String synchronous) {
-            this.properties.put("synchronous", synchronous);
-            return (T) 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.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T transferException(boolean transferException) {
-            this.properties.put("transferException", transferException);
-            return (T) 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.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T transferException(String transferException) {
-            this.properties.put("transferException", transferException);
-            return (T) 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.
-         * @group advanced
-         */
-        public T transferExchange(boolean transferExchange) {
-            this.properties.put("transferExchange", transferExchange);
-            return (T) 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 will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T transferExchange(String transferExchange) {
-            this.properties.put("transferExchange", transferExchange);
-            return (T) this;
-        }
-        /**
-         * If enabled and you are using Request Reply messaging (InOut) and an
-         * Exchange failed with a SOAP fault (not exception) on the consumer
-         * side, then the fault flag on org.apache.camel.Message#isFault() will
-         * be send back in the response as a JMS header with the key
-         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
-         * fault flag will be set on the
-         * org.apache.camel.Message#setFault(boolean). You may want to enable
-         * this when using Camel components that support faults such as SOAP
-         * based such as cxf or spring-ws.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T transferFault(boolean transferFault) {
-            this.properties.put("transferFault", transferFault);
-            return (T) this;
-        }
-        /**
-         * If enabled and you are using Request Reply messaging (InOut) and an
-         * Exchange failed with a SOAP fault (not exception) on the consumer
-         * side, then the fault flag on org.apache.camel.Message#isFault() will
-         * be send back in the response as a JMS header with the key
-         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
-         * fault flag will be set on the
-         * org.apache.camel.Message#setFault(boolean). You may want to enable
-         * this when using Camel components that support faults such as SOAP
-         * based such as cxf or spring-ws.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T transferFault(String transferFault) {
-            this.properties.put("transferFault", transferFault);
-            return (T) this;
-        }
-        /**
-         * Specifies whether JMSMessageID should always be used as
-         * JMSCorrelationID for InOut messages.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T useMessageIDAsCorrelationID(boolean useMessageIDAsCorrelationID) {
-            this.properties.put("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
-            return (T) this;
-        }
-        /**
-         * Specifies whether JMSMessageID should always be used as
-         * JMSCorrelationID for InOut messages.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T useMessageIDAsCorrelationID(String useMessageIDAsCorrelationID) {
-            this.properties.put("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
-            return (T) 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.
-         * @group advanced
-         */
-        public T waitForProvisionCorrelationToBeUpdatedCounter(
-                int waitForProvisionCorrelationToBeUpdatedCounter) {
-            this.properties.put("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
-            return (T) 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 will be converted to a <code>int</code> type.
-         * @group advanced
-         */
-        public T waitForProvisionCorrelationToBeUpdatedCounter(
-                String waitForProvisionCorrelationToBeUpdatedCounter) {
-            this.properties.put("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
-            return (T) 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.
-         * @group advanced
-         */
-        public T waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
-                long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
-            this.properties.put("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
-            return (T) this;
-        }
-        /**
-         * Interval in millis to sleep each time while waiting for provisional
-         * correlation id to be updated.
-         * The option will be converted to a <code>long</code> type.
-         * @group advanced
-         */
-        public T waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
-                String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
-            this.properties.put("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
-            return (T) 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
-         */
-        public T password(String password) {
-            this.properties.put("password", password);
-            return (T) 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
-         */
-        public T username(String username) {
-            this.properties.put("username", username);
-            return (T) this;
-        }
-        /**
-         * Specifies whether to use transacted mode.
-         * The option is a <code>boolean</code> type.
-         * @group transaction
-         */
-        public T transacted(boolean transacted) {
-            this.properties.put("transacted", transacted);
-            return (T) this;
-        }
-        /**
-         * Specifies whether to use transacted mode.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group transaction
-         */
-        public T transacted(String transacted) {
-            this.properties.put("transacted", transacted);
-            return (T) 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.
-         * @group transaction (advanced)
-         */
-        public T lazyCreateTransactionManager(
-                boolean lazyCreateTransactionManager) {
-            this.properties.put("lazyCreateTransactionManager", lazyCreateTransactionManager);
-            return (T) this;
-        }
-        /**
-         * If true, Camel will create a JmsTransactionManager, if there is no
-         * transactionManager injected when option transacted=true.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group transaction (advanced)
-         */
-        public T lazyCreateTransactionManager(
-                String lazyCreateTransactionManager) {
-            this.properties.put("lazyCreateTransactionManager", lazyCreateTransactionManager);
-            return (T) this;
-        }
-        /**
-         * The Spring transaction manager to use.
-         * The option is a
-         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
-         * @group transaction (advanced)
-         */
-        public T transactionManager(Object transactionManager) {
-            this.properties.put("transactionManager", transactionManager);
-            return (T) this;
-        }
-        /**
-         * The Spring transaction manager to use.
-         * The option will be converted to a
-         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
-         * @group transaction (advanced)
-         */
-        public T transactionManager(String transactionManager) {
-            this.properties.put("transactionManager", transactionManager);
-            return (T) this;
-        }
-        /**
-         * The name of the transaction to use.
-         * The option is a <code>java.lang.String</code> type.
-         * @group transaction (advanced)
-         */
-        public T transactionName(String transactionName) {
-            this.properties.put("transactionName", transactionName);
-            return (T) this;
-        }
-        /**
-         * The timeout value of the transaction (in seconds), if using
-         * transacted mode.
-         * The option is a <code>int</code> type.
-         * @group transaction (advanced)
-         */
-        public T transactionTimeout(int transactionTimeout) {
-            this.properties.put("transactionTimeout", transactionTimeout);
-            return (T) this;
-        }
-        /**
-         * The timeout value of the transaction (in seconds), if using
-         * transacted mode.
-         * The option will be converted to a <code>int</code> type.
-         * @group transaction (advanced)
-         */
-        public T transactionTimeout(String transactionTimeout) {
-            this.properties.put("transactionTimeout", transactionTimeout);
-            return (T) this;
-        }
-    }
-
-    /**
-     * Builder for endpoint consumers for the AMQP component.
-     */
-    public static class AMQPConsumerBuilder
-            extends
-                AMQPCommonBuilder<AMQPConsumerBuilder>
-            implements
-                EndpointConsumerBuilder {
-        public AMQPConsumerBuilder(String path) {
-            super(path);
-        }
-        /**
-         * 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.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder acknowledgementModeName(
-                String acknowledgementModeName) {
-            this.properties.put("acknowledgementModeName", acknowledgementModeName);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder asyncConsumer(boolean asyncConsumer) {
-            this.properties.put("asyncConsumer", asyncConsumer);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder asyncConsumer(String asyncConsumer) {
-            this.properties.put("asyncConsumer", asyncConsumer);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Specifies whether the consumer container should auto-startup.
-         * The option is a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder autoStartup(boolean autoStartup) {
-            this.properties.put("autoStartup", autoStartup);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Specifies whether the consumer container should auto-startup.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder autoStartup(String autoStartup) {
-            this.properties.put("autoStartup", autoStartup);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
-            this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
-            this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
-            return (AMQPConsumerBuilder) 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
-         */
-        public AMQPConsumerBuilder cacheLevel(int cacheLevel) {
-            this.properties.put("cacheLevel", cacheLevel);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Sets the cache level by ID for the underlying JMS resources. See
-         * cacheLevelName option for more details.
-         * The option will be converted to a <code>int</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder cacheLevel(String cacheLevel) {
-            this.properties.put("cacheLevel", cacheLevel);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder cacheLevelName(String cacheLevelName) {
-            this.properties.put("cacheLevelName", cacheLevelName);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder concurrentConsumers(int concurrentConsumers) {
-            this.properties.put("concurrentConsumers", concurrentConsumers);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>int</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder concurrentConsumers(
-                String concurrentConsumers) {
-            this.properties.put("concurrentConsumers", concurrentConsumers);
-            return (AMQPConsumerBuilder) 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
-         */
-        public AMQPConsumerBuilder maxConcurrentConsumers(
-                int maxConcurrentConsumers) {
-            this.properties.put("maxConcurrentConsumers", maxConcurrentConsumers);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>int</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder maxConcurrentConsumers(
-                String maxConcurrentConsumers) {
-            this.properties.put("maxConcurrentConsumers", maxConcurrentConsumers);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Provides an explicit ReplyTo destination, which overrides any
-         * incoming value of Message.getJMSReplyTo().
-         * The option is a <code>java.lang.String</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder replyTo(String replyTo) {
-            this.properties.put("replyTo", replyTo);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Specifies whether to use persistent delivery by default for replies.
-         * The option is a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder replyToDeliveryPersistent(
-                boolean replyToDeliveryPersistent) {
-            this.properties.put("replyToDeliveryPersistent", replyToDeliveryPersistent);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Specifies whether to use persistent delivery by default for replies.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder replyToDeliveryPersistent(
-                String replyToDeliveryPersistent) {
-            this.properties.put("replyToDeliveryPersistent", replyToDeliveryPersistent);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Sets the JMS selector to use.
-         * The option is a <code>java.lang.String</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder selector(String selector) {
-            this.properties.put("selector", selector);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder subscriptionDurable(
-                boolean subscriptionDurable) {
-            this.properties.put("subscriptionDurable", subscriptionDurable);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder subscriptionDurable(
-                String subscriptionDurable) {
-            this.properties.put("subscriptionDurable", subscriptionDurable);
-            return (AMQPConsumerBuilder) 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
-         */
-        public AMQPConsumerBuilder subscriptionName(String subscriptionName) {
-            this.properties.put("subscriptionName", subscriptionName);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder subscriptionShared(boolean subscriptionShared) {
-            this.properties.put("subscriptionShared", subscriptionShared);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AMQPConsumerBuilder subscriptionShared(String subscriptionShared) {
-            this.properties.put("subscriptionShared", subscriptionShared);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder acceptMessagesWhileStopping(
-                boolean acceptMessagesWhileStopping) {
-            this.properties.put("acceptMessagesWhileStopping", acceptMessagesWhileStopping);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder acceptMessagesWhileStopping(
-                String acceptMessagesWhileStopping) {
-            this.properties.put("acceptMessagesWhileStopping", acceptMessagesWhileStopping);
-            return (AMQPConsumerBuilder) 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.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder allowReplyManagerQuickStop(
-                boolean allowReplyManagerQuickStop) {
-            this.properties.put("allowReplyManagerQuickStop", allowReplyManagerQuickStop);
-            return (AMQPConsumerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder allowReplyManagerQuickStop(
-                String allowReplyManagerQuickStop) {
-            this.properties.put("allowReplyManagerQuickStop", allowReplyManagerQuickStop);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * The consumer type to use, which can be one of: Simple, Default, or
-         * Custom. The consumer type determines which Spring JMS listener to
-         * use. Default will use
-         * org.springframework.jms.listener.DefaultMessageListenerContainer,
-         * Simple will use
-         * org.springframework.jms.listener.SimpleMessageListenerContainer. When
-         * Custom is specified, the MessageListenerContainerFactory defined by
-         * the messageListenerContainerFactory option will determine what
-         * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use.
-         * The option is a
-         * <code>org.apache.camel.component.jms.ConsumerType</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder consumerType(ConsumerType consumerType) {
-            this.properties.put("consumerType", consumerType);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * The consumer type to use, which can be one of: Simple, Default, or
-         * Custom. The consumer type determines which Spring JMS listener to
-         * use. Default will use
-         * org.springframework.jms.listener.DefaultMessageListenerContainer,
-         * Simple will use
-         * org.springframework.jms.listener.SimpleMessageListenerContainer. When
-         * Custom is specified, the MessageListenerContainerFactory defined by
-         * the messageListenerContainerFactory option will determine what
-         * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.jms.ConsumerType</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder consumerType(String consumerType) {
-            this.properties.put("consumerType", consumerType);
-            return (AMQPConsumerBuilder) 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)
-         */
-        public AMQPConsumerBuilder defaultTaskExecutorType(
-                DefaultTaskExecutorType defaultTaskExecutorType) {
-            this.properties.put("defaultTaskExecutorType", defaultTaskExecutorType);
-            return (AMQPConsumerBuilder) 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 will be converted to a
-         * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
-         * type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder defaultTaskExecutorType(
-                String defaultTaskExecutorType) {
-            this.properties.put("defaultTaskExecutorType", defaultTaskExecutorType);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Enables eager loading of JMS properties and payload as soon as a
-         * message is loaded which generally is inefficient as the JMS
-         * properties may not be required but sometimes can catch early any
-         * issues with the underlying JMS provider and the use of JMS
-         * properties.
-         * The option is a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder eagerLoadingOfProperties(
-                boolean eagerLoadingOfProperties) {
-            this.properties.put("eagerLoadingOfProperties", eagerLoadingOfProperties);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Enables eager loading of JMS properties and payload as soon as a
-         * message is loaded which generally is inefficient as the JMS
-         * properties may not be required but sometimes can catch early any
-         * issues with the underlying JMS provider and the use of JMS
-         * properties.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder eagerLoadingOfProperties(
-                String eagerLoadingOfProperties) {
-            this.properties.put("eagerLoadingOfProperties", eagerLoadingOfProperties);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * To let the consumer use a custom ExceptionHandler. Notice if the
-         * option bridgeErrorHandler is enabled then this option is not in use.
-         * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored.
-         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder exceptionHandler(
-                ExceptionHandler exceptionHandler) {
-            this.properties.put("exceptionHandler", exceptionHandler);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * To let the consumer use a custom ExceptionHandler. Notice if the
-         * option bridgeErrorHandler is enabled then this option is not in use.
-         * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored.
-         * The option will be converted to a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder exceptionHandler(String exceptionHandler) {
-            this.properties.put("exceptionHandler", exceptionHandler);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Sets the exchange pattern when the consumer creates an exchange.
-         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder exchangePattern(
-                ExchangePattern exchangePattern) {
-            this.properties.put("exchangePattern", exchangePattern);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Sets the exchange pattern when the consumer creates an exchange.
-         * The option will be converted to a
-         * <code>org.apache.camel.ExchangePattern</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder exchangePattern(String exchangePattern) {
-            this.properties.put("exchangePattern", exchangePattern);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Specifies whether the listener session should be exposed when
-         * consuming messages.
-         * The option is a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder exposeListenerSession(
-                boolean exposeListenerSession) {
-            this.properties.put("exposeListenerSession", exposeListenerSession);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Specifies whether the listener session should be exposed when
-         * consuming messages.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder exposeListenerSession(
-                String exposeListenerSession) {
-            this.properties.put("exposeListenerSession", exposeListenerSession);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Whether a JMS consumer is allowed to send a reply message to the same
-         * destination that the consumer is using to consume from. This prevents
-         * an endless loop by consuming and sending back the same message to
-         * itself.
-         * The option is a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder replyToSameDestinationAllowed(
-                boolean replyToSameDestinationAllowed) {
-            this.properties.put("replyToSameDestinationAllowed", replyToSameDestinationAllowed);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Whether a JMS consumer is allowed to send a reply message to the same
-         * destination that the consumer is using to consume from. This prevents
-         * an endless loop by consuming and sending back the same message to
-         * itself.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder replyToSameDestinationAllowed(
-                String replyToSameDestinationAllowed) {
-            this.properties.put("replyToSameDestinationAllowed", replyToSameDestinationAllowed);
-            return (AMQPConsumerBuilder) 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)
-         */
-        public AMQPConsumerBuilder taskExecutor(Object taskExecutor) {
-            this.properties.put("taskExecutor", taskExecutor);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Allows you to specify a custom task executor for consuming messages.
-         * The option will be converted to a
-         * <code>org.springframework.core.task.TaskExecutor</code> type.
-         * @group consumer (advanced)
-         */
-        public AMQPConsumerBuilder taskExecutor(String taskExecutor) {
-            this.properties.put("taskExecutor", taskExecutor);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Allows to configure the default errorHandler logging level for
-         * logging uncaught exceptions.
-         * The option is a <code>org.apache.camel.LoggingLevel</code> type.
-         * @group logging
-         */
-        public AMQPConsumerBuilder errorHandlerLoggingLevel(
-                LoggingLevel errorHandlerLoggingLevel) {
-            this.properties.put("errorHandlerLoggingLevel", errorHandlerLoggingLevel);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Allows to configure the default errorHandler logging level for
-         * logging uncaught exceptions.
-         * The option will be converted to a
-         * <code>org.apache.camel.LoggingLevel</code> type.
-         * @group logging
-         */
-        public AMQPConsumerBuilder errorHandlerLoggingLevel(
-                String errorHandlerLoggingLevel) {
-            this.properties.put("errorHandlerLoggingLevel", errorHandlerLoggingLevel);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Allows to control whether stacktraces should be logged or not, by the
-         * default errorHandler.
-         * The option is a <code>boolean</code> type.
-         * @group logging
-         */
-        public AMQPConsumerBuilder errorHandlerLogStackTrace(
-                boolean errorHandlerLogStackTrace) {
-            this.properties.put("errorHandlerLogStackTrace", errorHandlerLogStackTrace);
-            return (AMQPConsumerBuilder) this;
-        }
-        /**
-         * Allows to control whether stacktraces should be logged or not, by the
-         * default errorHandler.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group logging
-         */
-        public AMQPConsumerBuilder errorHandlerLogStackTrace(
-                String errorHandlerLogStackTrace) {
-            this.properties.put("errorHandlerLogStackTrace", errorHandlerLogStackTrace);
-            return (AMQPConsumerBuilder) this;
-        }
-    }
-
-    /**
-     * Builder for endpoint producers for the AMQP component.
-     */
-    public static class AMQPProducerBuilder
-            extends
-                AMQPCommonBuilder<AMQPProducerBuilder>
-            implements
-                EndpointProducerBuilder {
-        public AMQPProducerBuilder(String path) {
-            super(path);
-        }
-        /**
-         * 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
-         */
-        public AMQPProducerBuilder deliveryMode(Integer deliveryMode) {
-            this.properties.put("deliveryMode", deliveryMode);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>java.lang.Integer</code>
-         * type.
-         * @group producer
-         */
-        public AMQPProducerBuilder deliveryMode(String deliveryMode) {
-            this.properties.put("deliveryMode", deliveryMode);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Specifies whether persistent delivery is used by default.
-         * The option is a <code>boolean</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder deliveryPersistent(boolean deliveryPersistent) {
-            this.properties.put("deliveryPersistent", deliveryPersistent);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Specifies whether persistent delivery is used by default.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder deliveryPersistent(String deliveryPersistent) {
-            this.properties.put("deliveryPersistent", deliveryPersistent);
-            return (AMQPProducerBuilder) 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>java.lang.Boolean</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder explicitQosEnabled(Boolean explicitQosEnabled) {
-            this.properties.put("explicitQosEnabled", explicitQosEnabled);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>java.lang.Boolean</code>
-         * type.
-         * @group producer
-         */
-        public AMQPProducerBuilder explicitQosEnabled(String explicitQosEnabled) {
-            this.properties.put("explicitQosEnabled", explicitQosEnabled);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Sets whether date headers should be formatted according to the ISO
-         * 8601 standard.
-         * The option is a <code>boolean</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder formatDateHeadersToIso8601(
-                boolean formatDateHeadersToIso8601) {
-            this.properties.put("formatDateHeadersToIso8601", formatDateHeadersToIso8601);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Sets whether date headers should be formatted according to the ISO
-         * 8601 standard.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder formatDateHeadersToIso8601(
-                String formatDateHeadersToIso8601) {
-            this.properties.put("formatDateHeadersToIso8601", formatDateHeadersToIso8601);
-            return (AMQPProducerBuilder) 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.
-         * @group producer
-         */
-        public AMQPProducerBuilder preserveMessageQos(boolean preserveMessageQos) {
-            this.properties.put("preserveMessageQos", preserveMessageQos);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder preserveMessageQos(String preserveMessageQos) {
-            this.properties.put("preserveMessageQos", preserveMessageQos);
-            return (AMQPProducerBuilder) 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.
-         * @group producer
-         */
-        public AMQPProducerBuilder priority(int priority) {
-            this.properties.put("priority", priority);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>int</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder priority(String priority) {
-            this.properties.put("priority", priority);
-            return (AMQPProducerBuilder) 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.
-         * @group producer
-         */
-        public AMQPProducerBuilder replyToConcurrentConsumers(
-                int replyToConcurrentConsumers) {
-            this.properties.put("replyToConcurrentConsumers", replyToConcurrentConsumers);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>int</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder replyToConcurrentConsumers(
-                String replyToConcurrentConsumers) {
-            this.properties.put("replyToConcurrentConsumers", replyToConcurrentConsumers);
-            return (AMQPProducerBuilder) 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
-         */
-        public AMQPProducerBuilder replyToMaxConcurrentConsumers(
-                int replyToMaxConcurrentConsumers) {
-            this.properties.put("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>int</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder replyToMaxConcurrentConsumers(
-                String replyToMaxConcurrentConsumers) {
-            this.properties.put("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers);
-            return (AMQPProducerBuilder) 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.
-         * @group producer
-         */
-        public AMQPProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
-                int replyToOnTimeoutMaxConcurrentConsumers) {
-            this.properties.put("replyToOnTimeoutMaxConcurrentConsumers", replyToOnTimeoutMaxConcurrentConsumers);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Specifies the maximum number of concurrent consumers for continue
-         * routing when timeout occurred when using request/reply over JMS.
-         * The option will be converted to a <code>int</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
-                String replyToOnTimeoutMaxConcurrentConsumers) {
-            this.properties.put("replyToOnTimeoutMaxConcurrentConsumers", replyToOnTimeoutMaxConcurrentConsumers);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Provides an explicit ReplyTo destination in the JMS message, which
-         * overrides the setting of replyTo. It is useful if you want to forward
-         * the message to a remote Queue and receive the reply message from the
-         * ReplyTo destination.
-         * The option is a <code>java.lang.String</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder replyToOverride(String replyToOverride) {
-            this.properties.put("replyToOverride", replyToOverride);
-            return (AMQPProducerBuilder) 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
-         */
-        public AMQPProducerBuilder replyToType(ReplyToType replyToType) {
-            this.properties.put("replyToType", replyToType);
-            return (AMQPProducerBuilder) 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 will be converted to a
-         * <code>org.apache.camel.component.jms.ReplyToType</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder replyToType(String replyToType) {
-            this.properties.put("replyToType", replyToType);
-            return (AMQPProducerBuilder) 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.
-         * @group producer
-         */
-        public AMQPProducerBuilder requestTimeout(long requestTimeout) {
-            this.properties.put("requestTimeout", requestTimeout);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>long</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder requestTimeout(String requestTimeout) {
-            this.properties.put("requestTimeout", requestTimeout);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * When sending messages, specifies the time-to-live of the message (in
-         * milliseconds).
-         * The option is a <code>long</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder timeToLive(long timeToLive) {
-            this.properties.put("timeToLive", timeToLive);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * When sending messages, specifies the time-to-live of the message (in
-         * milliseconds).
-         * The option will be converted to a <code>long</code> type.
-         * @group producer
-         */
-        public AMQPProducerBuilder timeToLive(String timeToLive) {
-            this.properties.put("timeToLive", timeToLive);
-            return (AMQPProducerBuilder) 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)
-         */
-        public AMQPProducerBuilder allowAdditionalHeaders(
-                String allowAdditionalHeaders) {
-            this.properties.put("allowAdditionalHeaders", allowAdditionalHeaders);
-            return (AMQPProducerBuilder) 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.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder allowNullBody(boolean allowNullBody) {
-            this.properties.put("allowNullBody", allowNullBody);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder allowNullBody(String allowNullBody) {
-            this.properties.put("allowNullBody", allowNullBody);
-            return (AMQPProducerBuilder) 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.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder alwaysCopyMessage(boolean alwaysCopyMessage) {
-            this.properties.put("alwaysCopyMessage", alwaysCopyMessage);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder alwaysCopyMessage(String alwaysCopyMessage) {
-            this.properties.put("alwaysCopyMessage", alwaysCopyMessage);
-            return (AMQPProducerBuilder) 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)
-         */
-        public AMQPProducerBuilder correlationProperty(
-                String correlationProperty) {
-            this.properties.put("correlationProperty", correlationProperty);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Use this option to force disabling time to live. For example when you
-         * do request/reply over JMS, then Camel will by default use the
-         * requestTimeout value as time to live on the message being sent. The
-         * problem is that the sender and receiver systems have to have their
-         * clocks synchronized, so they are in sync. This is not always so easy
-         * to archive. So you can use disableTimeToLive=true to not set a time
-         * to live value on the sent message. Then the message will not expire
-         * on the receiver system. See below in section About time to live for
-         * more details.
-         * The option is a <code>boolean</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder disableTimeToLive(boolean disableTimeToLive) {
-            this.properties.put("disableTimeToLive", disableTimeToLive);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Use this option to force disabling time to live. For example when you
-         * do request/reply over JMS, then Camel will by default use the
-         * requestTimeout value as time to live on the message being sent. The
-         * problem is that the sender and receiver systems have to have their
-         * clocks synchronized, so they are in sync. This is not always so easy
-         * to archive. So you can use disableTimeToLive=true to not set a time
-         * to live value on the sent message. Then the message will not expire
-         * on the receiver system. See below in section About time to live for
-         * more details.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder disableTimeToLive(String disableTimeToLive) {
-            this.properties.put("disableTimeToLive", disableTimeToLive);
-            return (AMQPProducerBuilder) 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.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder forceSendOriginalMessage(
-                boolean forceSendOriginalMessage) {
-            this.properties.put("forceSendOriginalMessage", forceSendOriginalMessage);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder forceSendOriginalMessage(
-                String forceSendOriginalMessage) {
-            this.properties.put("forceSendOriginalMessage", forceSendOriginalMessage);
-            return (AMQPProducerBuilder) 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.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder includeSentJMSMessageID(
-                boolean includeSentJMSMessageID) {
-            this.properties.put("includeSentJMSMessageID", includeSentJMSMessageID);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder includeSentJMSMessageID(
-                String includeSentJMSMessageID) {
-            this.properties.put("includeSentJMSMessageID", includeSentJMSMessageID);
-            return (AMQPProducerBuilder) 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)
-         */
-        public AMQPProducerBuilder replyToCacheLevelName(
-                String replyToCacheLevelName) {
-            this.properties.put("replyToCacheLevelName", replyToCacheLevelName);
-            return (AMQPProducerBuilder) this;
-        }
-        /**
-         * Sets the JMS Selector using the fixed name to be used so you can
-         * filter out your own replies from the others when using a shared queue
-         * (that is, if you are not using a temporary reply queue).
-         * The option is a <code>java.lang.String</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder replyToDestinationSelectorName(
-                String replyToDestinationSelectorName) {
-            this.properties.put("replyToDestinationSelectorName", replyToDestinationSelectorName);
-            return (AMQPProducerBuilder) 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.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder streamMessageTypeEnabled(
-                boolean streamMessageTypeEnabled) {
-            this.properties.put("streamMessageTypeEnabled", streamMessageTypeEnabled);
-            return (AMQPProducerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group producer (advanced)
-         */
-        public AMQPProducerBuilder streamMessageTypeEnabled(
-                String streamMessageTypeEnabled) {
-            this.properties.put("streamMessageTypeEnabled", streamMessageTypeEnabled);
-            return (AMQPProducerBuilder) this;
-        }
-    }
-
-    /**
-     * Proxy enum for <code>org.apache.camel.component.jms.JmsMessageType</code>
-     * enum.
-     */
-    public static enum JmsMessageType {
-        Bytes, Map, Object, Stream, Text, Blob;
-    }
-
-    /**
-     * Proxy enum for <code>org.apache.camel.component.jms.ConsumerType</code>
-     * enum.
-     */
-    public static enum ConsumerType {
-        Simple, Default, Custom;
-    }
-
-    /**
-     * Proxy enum for
-     * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code> enum.
-     */
-    public static enum DefaultTaskExecutorType {
-        ThreadPool, SimpleAsync;
-    }
-
-    /**
-     * Proxy enum for <code>org.apache.camel.component.jms.ReplyToType</code>
-     * enum.
-     */
-    public static enum ReplyToType {
-        Temporary, Shared, Exclusive;
-    }
-    /**
-     * Messaging with AMQP protocol using Apache QPid Client. Creates a builder
-     * to build a consumer endpoint for the AMQP component.
-     */
-    public default AMQPConsumerBuilder fromAMQP(String path) {
-        return new AMQPConsumerBuilder(path);
-    }
-    /**
-     * Messaging with AMQP protocol using Apache QPid Client. Creates a builder
-     * to build a producer endpoint for the AMQP component.
-     */
-    public default AMQPProducerBuilder toAMQP(String path) {
-        return new AMQPProducerBuilder(path);
-    }
-}
\ No newline at end of file
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilderFactory.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilderFactory.java
new file mode 100644
index 0000000..621fb3b
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilderFactory.java
@@ -0,0 +1,4637 @@
+/*
+ * 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.model.endpoint;
+
+import javax.annotation.Generated;
+import org.apache.camel.ExchangePattern;
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.model.AbstractEndpointBuilder;
+import org.apache.camel.model.EndpointConsumerBuilder;
+import org.apache.camel.model.EndpointProducerBuilder;
+import org.apache.camel.spi.ExceptionHandler;
+import org.apache.camel.spi.HeaderFilterStrategy;
+
+/**
+ * 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.EndpointDslMojo")
+public interface AMQPEndpointBuilderFactory {
+
+
+    /**
+     * Builder for endpoint consumers for the AMQP component.
+     */
+    public interface AMQPEndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        public default AdvancedAMQPEndpointConsumerBuilder advanced() {
+            return (AdvancedAMQPEndpointConsumerBuilder) this;
+        }
+        /**
+         * The kind of destination to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder destinationType(
+                String destinationType) {
+            setProperty("destinationType", destinationType);
+            return this;
+        }
+        /**
+         * Name of the queue or topic to use as destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder destinationName(
+                String destinationName) {
+            setProperty("destinationName", destinationName);
+            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
+         */
+        public default AMQPEndpointConsumerBuilder clientId(String clientId) {
+            setProperty("clientId", clientId);
+            return this;
+        }
+        /**
+         * Sets the default connection factory to be used if a connection
+         * factory is not specified for either
+         * setTemplateConnectionFactory(ConnectionFactory) or
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option is a <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder connectionFactory(
+                Object connectionFactory) {
+            setProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Sets the default connection factory to be used if a connection
+         * factory is not specified for either
+         * setTemplateConnectionFactory(ConnectionFactory) or
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option will be converted to a
+         * <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder connectionFactory(
+                String connectionFactory) {
+            setProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
+         * true, Camel does not send a reply back to the destination specified
+         * in the JMSReplyTo header. You can use this option if you want Camel
+         * to consume from a route and you do not want Camel to automatically
+         * send back a reply message because another component in your code
+         * handles the reply message. You can also use this option if you want
+         * to use Camel as a proxy between different message brokers and you
+         * want to route message from one system to another.
+         * The option is a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder disableReplyTo(
+                boolean disableReplyTo) {
+            setProperty("disableReplyTo", disableReplyTo);
+            return this;
+        }
+        /**
+         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
+         * true, Camel does not send a reply back to the destination specified
+         * in the JMSReplyTo header. You can use this option if you want Camel
+         * to consume from a route and you do not want Camel to automatically
+         * send back a reply message because another component in your code
+         * handles the reply message. You can also use this option if you want
+         * to use Camel as a proxy between different message brokers and you
+         * want to route message from one system to another.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder disableReplyTo(
+                String disableReplyTo) {
+            setProperty("disableReplyTo", disableReplyTo);
+            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
+         */
+        public default AMQPEndpointConsumerBuilder durableSubscriptionName(
+                String durableSubscriptionName) {
+            setProperty("durableSubscriptionName", durableSubscriptionName);
+            return this;
+        }
+        /**
+         * Allows you to force the use of a specific javax.jms.Message
+         * implementation for sending JMS messages. Possible values are: Bytes,
+         * Map, Object, Stream, Text. By default, Camel would determine which
+         * JMS message type to use from the In body type. This option allows you
+         * to specify it.
+         * The option is a
+         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder jmsMessageType(
+                JmsMessageType jmsMessageType) {
+            setProperty("jmsMessageType", jmsMessageType);
+            return this;
+        }
+        /**
+         * Allows you to force the use of a specific javax.jms.Message
+         * implementation for sending JMS messages. Possible values are: Bytes,
+         * Map, Object, Stream, Text. By default, Camel would determine which
+         * JMS message type to use from the In body type. This option allows you
+         * to specify it.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder jmsMessageType(
+                String jmsMessageType) {
+            setProperty("jmsMessageType", jmsMessageType);
+            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.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder testConnectionOnStartup(
+                boolean testConnectionOnStartup) {
+            setProperty("testConnectionOnStartup", testConnectionOnStartup);
+            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 will be converted to a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointConsumerBuilder testConnectionOnStartup(
+                String testConnectionOnStartup) {
+            setProperty("testConnectionOnStartup", testConnectionOnStartup);
+            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.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder acknowledgementModeName(
+                String acknowledgementModeName) {
+            setProperty("acknowledgementModeName", acknowledgementModeName);
+            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.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder asyncConsumer(
+                boolean asyncConsumer) {
+            setProperty("asyncConsumer", asyncConsumer);
+            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 will be converted to a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder asyncConsumer(
+                String asyncConsumer) {
+            setProperty("asyncConsumer", asyncConsumer);
+            return this;
+        }
+        /**
+         * Specifies whether the consumer container should auto-startup.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder autoStartup(
+                boolean autoStartup) {
+            setProperty("autoStartup", autoStartup);
+            return this;
+        }
+        /**
+         * Specifies whether the consumer container should auto-startup.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder autoStartup(
+                String autoStartup) {
+            setProperty("autoStartup", autoStartup);
+            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.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            setProperty("bridgeErrorHandler", bridgeErrorHandler);
+            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 will be converted to a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder bridgeErrorHandler(
+                String bridgeErrorHandler) {
+            setProperty("bridgeErrorHandler", bridgeErrorHandler);
+            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
+         */
+        public default AMQPEndpointConsumerBuilder cacheLevel(int cacheLevel) {
+            setProperty("cacheLevel", cacheLevel);
+            return this;
+        }
+        /**
+         * Sets the cache level by ID for the underlying JMS resources. See
+         * cacheLevelName option for more details.
+         * The option will be converted to a <code>int</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder cacheLevel(String cacheLevel) {
+            setProperty("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.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder cacheLevelName(
+                String cacheLevelName) {
+            setProperty("cacheLevelName", cacheLevelName);
+            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.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder concurrentConsumers(
+                int concurrentConsumers) {
+            setProperty("concurrentConsumers", concurrentConsumers);
+            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 will be converted to a <code>int</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder concurrentConsumers(
+                String concurrentConsumers) {
+            setProperty("concurrentConsumers", concurrentConsumers);
+            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
+         */
+        public default AMQPEndpointConsumerBuilder maxConcurrentConsumers(
+                int maxConcurrentConsumers) {
+            setProperty("maxConcurrentConsumers", maxConcurrentConsumers);
+            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 will be converted to a <code>int</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder maxConcurrentConsumers(
+                String maxConcurrentConsumers) {
+            setProperty("maxConcurrentConsumers", maxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * Provides an explicit ReplyTo destination, which overrides any
+         * incoming value of Message.getJMSReplyTo().
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder replyTo(String replyTo) {
+            setProperty("replyTo", replyTo);
+            return this;
+        }
+        /**
+         * Specifies whether to use persistent delivery by default for replies.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder replyToDeliveryPersistent(
+                boolean replyToDeliveryPersistent) {
+            setProperty("replyToDeliveryPersistent", replyToDeliveryPersistent);
+            return this;
+        }
+        /**
+         * Specifies whether to use persistent delivery by default for replies.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder replyToDeliveryPersistent(
+                String replyToDeliveryPersistent) {
+            setProperty("replyToDeliveryPersistent", replyToDeliveryPersistent);
+            return this;
+        }
+        /**
+         * Sets the JMS selector to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder selector(String selector) {
+            setProperty("selector", selector);
+            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.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder subscriptionDurable(
+                boolean subscriptionDurable) {
+            setProperty("subscriptionDurable", subscriptionDurable);
+            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 will be converted to a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder subscriptionDurable(
+                String subscriptionDurable) {
+            setProperty("subscriptionDurable", subscriptionDurable);
+            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
+         */
+        public default AMQPEndpointConsumerBuilder subscriptionName(
+                String subscriptionName) {
+            setProperty("subscriptionName", subscriptionName);
+            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.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder subscriptionShared(
+                boolean subscriptionShared) {
+            setProperty("subscriptionShared", subscriptionShared);
+            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 will be converted to a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AMQPEndpointConsumerBuilder subscriptionShared(
+                String subscriptionShared) {
+            setProperty("subscriptionShared", subscriptionShared);
+            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.
+         * @group logging
+         */
+        public default AMQPEndpointConsumerBuilder errorHandlerLoggingLevel(
+                LoggingLevel errorHandlerLoggingLevel) {
+            setProperty("errorHandlerLoggingLevel", errorHandlerLoggingLevel);
+            return this;
+        }
+        /**
+         * Allows to configure the default errorHandler logging level for
+         * logging uncaught exceptions.
+         * The option will be converted to a
+         * <code>org.apache.camel.LoggingLevel</code> type.
+         * @group logging
+         */
+        public default AMQPEndpointConsumerBuilder errorHandlerLoggingLevel(
+                String errorHandlerLoggingLevel) {
+            setProperty("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.
+         * @group logging
+         */
+        public default AMQPEndpointConsumerBuilder errorHandlerLogStackTrace(
+                boolean errorHandlerLogStackTrace) {
+            setProperty("errorHandlerLogStackTrace", errorHandlerLogStackTrace);
+            return this;
+        }
+        /**
+         * Allows to control whether stacktraces should be logged or not, by the
+         * default errorHandler.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group logging
+         */
+        public default AMQPEndpointConsumerBuilder errorHandlerLogStackTrace(
+                String errorHandlerLogStackTrace) {
+            setProperty("errorHandlerLogStackTrace", errorHandlerLogStackTrace);
+            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
+         */
+        public default AMQPEndpointConsumerBuilder password(String password) {
+            setProperty("password", password);
+            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
+         */
+        public default AMQPEndpointConsumerBuilder username(String username) {
+            setProperty("username", username);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * The option is a <code>boolean</code> type.
+         * @group transaction
+         */
+        public default AMQPEndpointConsumerBuilder transacted(boolean transacted) {
+            setProperty("transacted", transacted);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction
+         */
+        public default AMQPEndpointConsumerBuilder transacted(String transacted) {
+            setProperty("transacted", transacted);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint consumers for the AMQP component.
+     */
+    public interface AdvancedAMQPEndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        public default AMQPEndpointConsumerBuilder basic() {
+            return (AMQPEndpointConsumerBuilder) 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.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder acceptMessagesWhileStopping(
+                boolean acceptMessagesWhileStopping) {
+            setProperty("acceptMessagesWhileStopping", acceptMessagesWhileStopping);
+            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 will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder acceptMessagesWhileStopping(
+                String acceptMessagesWhileStopping) {
+            setProperty("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.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder allowReplyManagerQuickStop(
+                boolean allowReplyManagerQuickStop) {
+            setProperty("allowReplyManagerQuickStop", allowReplyManagerQuickStop);
+            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 will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder allowReplyManagerQuickStop(
+                String allowReplyManagerQuickStop) {
+            setProperty("allowReplyManagerQuickStop", allowReplyManagerQuickStop);
+            return this;
+        }
+        /**
+         * The consumer type to use, which can be one of: Simple, Default, or
+         * Custom. The consumer type determines which Spring JMS listener to
+         * use. Default will use
+         * org.springframework.jms.listener.DefaultMessageListenerContainer,
+         * Simple will use
+         * org.springframework.jms.listener.SimpleMessageListenerContainer. When
+         * Custom is specified, the MessageListenerContainerFactory defined by
+         * the messageListenerContainerFactory option will determine what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use.
+         * The option is a
+         * <code>org.apache.camel.component.jms.ConsumerType</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder consumerType(
+                ConsumerType consumerType) {
+            setProperty("consumerType", consumerType);
+            return this;
+        }
+        /**
+         * The consumer type to use, which can be one of: Simple, Default, or
+         * Custom. The consumer type determines which Spring JMS listener to
+         * use. Default will use
+         * org.springframework.jms.listener.DefaultMessageListenerContainer,
+         * Simple will use
+         * org.springframework.jms.listener.SimpleMessageListenerContainer. When
+         * Custom is specified, the MessageListenerContainerFactory defined by
+         * the messageListenerContainerFactory option will determine what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.jms.ConsumerType</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder consumerType(
+                String consumerType) {
+            setProperty("consumerType", consumerType);
+            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)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder defaultTaskExecutorType(
+                DefaultTaskExecutorType defaultTaskExecutorType) {
+            setProperty("defaultTaskExecutorType", defaultTaskExecutorType);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
+         * type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder defaultTaskExecutorType(
+                String defaultTaskExecutorType) {
+            setProperty("defaultTaskExecutorType", defaultTaskExecutorType);
+            return this;
+        }
+        /**
+         * Enables eager loading of JMS properties and payload as soon as a
+         * message is loaded which generally is inefficient as the JMS
+         * properties may not be required but sometimes can catch early any
+         * issues with the underlying JMS provider and the use of JMS
+         * properties.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder eagerLoadingOfProperties(
+                boolean eagerLoadingOfProperties) {
+            setProperty("eagerLoadingOfProperties", eagerLoadingOfProperties);
+            return this;
+        }
+        /**
+         * Enables eager loading of JMS properties and payload as soon as a
+         * message is loaded which generally is inefficient as the JMS
+         * properties may not be required but sometimes can catch early any
+         * issues with the underlying JMS provider and the use of JMS
+         * properties.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder eagerLoadingOfProperties(
+                String eagerLoadingOfProperties) {
+            setProperty("eagerLoadingOfProperties", eagerLoadingOfProperties);
+            return this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exceptionHandler(
+                ExceptionHandler exceptionHandler) {
+            setProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exceptionHandler(
+                String exceptionHandler) {
+            setProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exchangePattern(
+                ExchangePattern exchangePattern) {
+            setProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
+         * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exchangePattern(
+                String exchangePattern) {
+            setProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * Specifies whether the listener session should be exposed when
+         * consuming messages.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exposeListenerSession(
+                boolean exposeListenerSession) {
+            setProperty("exposeListenerSession", exposeListenerSession);
+            return this;
+        }
+        /**
+         * Specifies whether the listener session should be exposed when
+         * consuming messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exposeListenerSession(
+                String exposeListenerSession) {
+            setProperty("exposeListenerSession", exposeListenerSession);
+            return this;
+        }
+        /**
+         * Whether a JMS consumer is allowed to send a reply message to the same
+         * destination that the consumer is using to consume from. This prevents
+         * an endless loop by consuming and sending back the same message to
+         * itself.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder replyToSameDestinationAllowed(
+                boolean replyToSameDestinationAllowed) {
+            setProperty("replyToSameDestinationAllowed", replyToSameDestinationAllowed);
+            return this;
+        }
+        /**
+         * Whether a JMS consumer is allowed to send a reply message to the same
+         * destination that the consumer is using to consume from. This prevents
+         * an endless loop by consuming and sending back the same message to
+         * itself.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder replyToSameDestinationAllowed(
+                String replyToSameDestinationAllowed) {
+            setProperty("replyToSameDestinationAllowed", replyToSameDestinationAllowed);
+            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)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder taskExecutor(
+                Object taskExecutor) {
+            setProperty("taskExecutor", taskExecutor);
+            return this;
+        }
+        /**
+         * Allows you to specify a custom task executor for consuming messages.
+         * The option will be converted to a
+         * <code>org.springframework.core.task.TaskExecutor</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder taskExecutor(
+                String taskExecutor) {
+            setProperty("taskExecutor", taskExecutor);
+            return this;
+        }
+        /**
+         * Controls whether or not to include serialized headers. Applies only
+         * when isTransferExchange() is true. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder allowSerializedHeaders(
+                boolean allowSerializedHeaders) {
+            setProperty("allowSerializedHeaders", allowSerializedHeaders);
+            return this;
+        }
+        /**
+         * Controls whether or not to include serialized headers. Applies only
+         * when isTransferExchange() is true. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder allowSerializedHeaders(
+                String allowSerializedHeaders) {
+            setProperty("allowSerializedHeaders", allowSerializedHeaders);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder asyncStartListener(
+                boolean asyncStartListener) {
+            setProperty("asyncStartListener", asyncStartListener);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder asyncStartListener(
+                String asyncStartListener) {
+            setProperty("asyncStartListener", asyncStartListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder asyncStopListener(
+                boolean asyncStopListener) {
+            setProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder asyncStopListener(
+                String asyncStopListener) {
+            setProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder basicPropertyBinding(
+                String basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            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
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder destinationResolver(
+                Object destinationResolver) {
+            setProperty("destinationResolver", destinationResolver);
+            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 will be converted to a
+         * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder destinationResolver(
+                String destinationResolver) {
+            setProperty("destinationResolver", destinationResolver);
+            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
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder errorHandler(
+                Object errorHandler) {
+            setProperty("errorHandler", errorHandler);
+            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 will be converted to a
+         * <code>org.springframework.util.ErrorHandler</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder errorHandler(
+                String errorHandler) {
+            setProperty("errorHandler", errorHandler);
+            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
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exceptionListener(
+                Object exceptionListener) {
+            setProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * Specifies the JMS Exception Listener that is to be notified of any
+         * underlying JMS exceptions.
+         * The option will be converted to a
+         * <code>javax.jms.ExceptionListener</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder exceptionListener(
+                String exceptionListener) {
+            setProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * To use a custom HeaderFilterStrategy to filter header to and from
+         * Camel message.
+         * The option is a
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder headerFilterStrategy(
+                HeaderFilterStrategy headerFilterStrategy) {
+            setProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * To use a custom HeaderFilterStrategy to filter header to and from
+         * Camel message.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder headerFilterStrategy(
+                String headerFilterStrategy) {
+            setProperty("headerFilterStrategy", headerFilterStrategy);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder idleConsumerLimit(
+                int idleConsumerLimit) {
+            setProperty("idleConsumerLimit", idleConsumerLimit);
+            return this;
+        }
+        /**
+         * Specify the limit for the number of consumers that are allowed to be
+         * idle at any given time.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder idleConsumerLimit(
+                String idleConsumerLimit) {
+            setProperty("idleConsumerLimit", idleConsumerLimit);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder idleTaskExecutionLimit(
+                int idleTaskExecutionLimit) {
+            setProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder idleTaskExecutionLimit(
+                String idleTaskExecutionLimit) {
+            setProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder includeAllJMSXProperties(
+                boolean includeAllJMSXProperties) {
+            setProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder includeAllJMSXProperties(
+                String includeAllJMSXProperties) {
+            setProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            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
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder jmsKeyFormatStrategy(
+                Object jmsKeyFormatStrategy) {
+            setProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
+         * type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder jmsKeyFormatStrategy(
+                String jmsKeyFormatStrategy) {
+            setProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            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.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder mapJmsMessage(
+                boolean mapJmsMessage) {
+            setProperty("mapJmsMessage", mapJmsMessage);
+            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.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder mapJmsMessage(
+                String mapJmsMessage) {
+            setProperty("mapJmsMessage", mapJmsMessage);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder maxMessagesPerTask(
+                int maxMessagesPerTask) {
+            setProperty("maxMessagesPerTask", maxMessagesPerTask);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder maxMessagesPerTask(
+                String maxMessagesPerTask) {
+            setProperty("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
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageConverter(
+                Object messageConverter) {
+            setProperty("messageConverter", messageConverter);
+            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 will be converted to a
+         * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageConverter(
+                String messageConverter) {
+            setProperty("messageConverter", messageConverter);
+            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
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageCreatedStrategy(
+                Object messageCreatedStrategy) {
+            setProperty("messageCreatedStrategy", messageCreatedStrategy);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
+         * type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageCreatedStrategy(
+                String messageCreatedStrategy) {
+            setProperty("messageCreatedStrategy", messageCreatedStrategy);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageIdEnabled(
+                boolean messageIdEnabled) {
+            setProperty("messageIdEnabled", messageIdEnabled);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageIdEnabled(
+                String messageIdEnabled) {
+            setProperty("messageIdEnabled", messageIdEnabled);
+            return this;
+        }
+        /**
+         * Registry ID of the MessageListenerContainerFactory used to determine
+         * what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use to consume messages. Setting this will automatically set
+         * consumerType to Custom.
+         * The option is a
+         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageListenerContainerFactory(
+                Object messageListenerContainerFactory) {
+            setProperty("messageListenerContainerFactory", messageListenerContainerFactory);
+            return this;
+        }
+        /**
+         * Registry ID of the MessageListenerContainerFactory used to determine
+         * what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use to consume messages. Setting this will automatically set
+         * consumerType to Custom.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageListenerContainerFactory(
+                String messageListenerContainerFactory) {
+            setProperty("messageListenerContainerFactory", messageListenerContainerFactory);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageTimestampEnabled(
+                boolean messageTimestampEnabled) {
+            setProperty("messageTimestampEnabled", messageTimestampEnabled);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder messageTimestampEnabled(
+                String messageTimestampEnabled) {
+            setProperty("messageTimestampEnabled", messageTimestampEnabled);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder pubSubNoLocal(
+                boolean pubSubNoLocal) {
+            setProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder pubSubNoLocal(
+                String pubSubNoLocal) {
+            setProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * The option is a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder receiveTimeout(
+                long receiveTimeout) {
+            setProperty("receiveTimeout", receiveTimeout);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder receiveTimeout(
+                String receiveTimeout) {
+            setProperty("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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder recoveryInterval(
+                long recoveryInterval) {
+            setProperty("recoveryInterval", recoveryInterval);
+            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 will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder recoveryInterval(
+                String recoveryInterval) {
+            setProperty("recoveryInterval", recoveryInterval);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder requestTimeoutCheckerInterval(
+                long requestTimeoutCheckerInterval) {
+            setProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            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 will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder requestTimeoutCheckerInterval(
+                String requestTimeoutCheckerInterval) {
+            setProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder synchronous(
+                boolean synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder synchronous(
+                String synchronous) {
+            setProperty("synchronous", synchronous);
+            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.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transferException(
+                boolean transferException) {
+            setProperty("transferException", transferException);
+            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.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transferException(
+                String transferException) {
+            setProperty("transferException", transferException);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transferExchange(
+                boolean transferExchange) {
+            setProperty("transferExchange", transferExchange);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transferExchange(
+                String transferExchange) {
+            setProperty("transferExchange", transferExchange);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed with a SOAP fault (not exception) on the consumer
+         * side, then the fault flag on org.apache.camel.Message#isFault() will
+         * be send back in the response as a JMS header with the key
+         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
+         * fault flag will be set on the
+         * org.apache.camel.Message#setFault(boolean). You may want to enable
+         * this when using Camel components that support faults such as SOAP
+         * based such as cxf or spring-ws.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transferFault(
+                boolean transferFault) {
+            setProperty("transferFault", transferFault);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed with a SOAP fault (not exception) on the consumer
+         * side, then the fault flag on org.apache.camel.Message#isFault() will
+         * be send back in the response as a JMS header with the key
+         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
+         * fault flag will be set on the
+         * org.apache.camel.Message#setFault(boolean). You may want to enable
+         * this when using Camel components that support faults such as SOAP
+         * based such as cxf or spring-ws.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transferFault(
+                String transferFault) {
+            setProperty("transferFault", transferFault);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder useMessageIDAsCorrelationID(
+                boolean useMessageIDAsCorrelationID) {
+            setProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder useMessageIDAsCorrelationID(
+                String useMessageIDAsCorrelationID) {
+            setProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                int waitForProvisionCorrelationToBeUpdatedCounter) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                String waitForProvisionCorrelationToBeUpdatedCounter) {
+            setProperty("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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            return this;
+        }
+        /**
+         * Interval in millis to sleep each time while waiting for provisional
+         * correlation id to be updated.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            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.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder lazyCreateTransactionManager(
+                boolean lazyCreateTransactionManager) {
+            setProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * If true, Camel will create a JmsTransactionManager, if there is no
+         * transactionManager injected when option transacted=true.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder lazyCreateTransactionManager(
+                String lazyCreateTransactionManager) {
+            setProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * The option is a
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transactionManager(
+                Object transactionManager) {
+            setProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * The option will be converted to a
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transactionManager(
+                String transactionManager) {
+            setProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The name of the transaction to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transactionName(
+                String transactionName) {
+            setProperty("transactionName", transactionName);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * The option is a <code>int</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transactionTimeout(
+                int transactionTimeout) {
+            setProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * The option will be converted to a <code>int</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointConsumerBuilder transactionTimeout(
+                String transactionTimeout) {
+            setProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint producers for the AMQP component.
+     */
+    public static interface AMQPEndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        public default AdvancedAMQPEndpointProducerBuilder advanced() {
+            return (AdvancedAMQPEndpointProducerBuilder) this;
+        }
+        /**
+         * The kind of destination to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder destinationType(
+                String destinationType) {
+            setProperty("destinationType", destinationType);
+            return this;
+        }
+        /**
+         * Name of the queue or topic to use as destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder destinationName(
+                String destinationName) {
+            setProperty("destinationName", destinationName);
+            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
+         */
+        public default AMQPEndpointProducerBuilder clientId(String clientId) {
+            setProperty("clientId", clientId);
+            return this;
+        }
+        /**
+         * Sets the default connection factory to be used if a connection
+         * factory is not specified for either
+         * setTemplateConnectionFactory(ConnectionFactory) or
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option is a <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder connectionFactory(
+                Object connectionFactory) {
+            setProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Sets the default connection factory to be used if a connection
+         * factory is not specified for either
+         * setTemplateConnectionFactory(ConnectionFactory) or
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option will be converted to a
+         * <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder connectionFactory(
+                String connectionFactory) {
+            setProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
+         * true, Camel does not send a reply back to the destination specified
+         * in the JMSReplyTo header. You can use this option if you want Camel
+         * to consume from a route and you do not want Camel to automatically
+         * send back a reply message because another component in your code
+         * handles the reply message. You can also use this option if you want
+         * to use Camel as a proxy between different message brokers and you
+         * want to route message from one system to another.
+         * The option is a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder disableReplyTo(
+                boolean disableReplyTo) {
+            setProperty("disableReplyTo", disableReplyTo);
+            return this;
+        }
+        /**
+         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
+         * true, Camel does not send a reply back to the destination specified
+         * in the JMSReplyTo header. You can use this option if you want Camel
+         * to consume from a route and you do not want Camel to automatically
+         * send back a reply message because another component in your code
+         * handles the reply message. You can also use this option if you want
+         * to use Camel as a proxy between different message brokers and you
+         * want to route message from one system to another.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder disableReplyTo(
+                String disableReplyTo) {
+            setProperty("disableReplyTo", disableReplyTo);
+            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
+         */
+        public default AMQPEndpointProducerBuilder durableSubscriptionName(
+                String durableSubscriptionName) {
+            setProperty("durableSubscriptionName", durableSubscriptionName);
+            return this;
+        }
+        /**
+         * Allows you to force the use of a specific javax.jms.Message
+         * implementation for sending JMS messages. Possible values are: Bytes,
+         * Map, Object, Stream, Text. By default, Camel would determine which
+         * JMS message type to use from the In body type. This option allows you
+         * to specify it.
+         * The option is a
+         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder jmsMessageType(
+                JmsMessageType jmsMessageType) {
+            setProperty("jmsMessageType", jmsMessageType);
+            return this;
+        }
+        /**
+         * Allows you to force the use of a specific javax.jms.Message
+         * implementation for sending JMS messages. Possible values are: Bytes,
+         * Map, Object, Stream, Text. By default, Camel would determine which
+         * JMS message type to use from the In body type. This option allows you
+         * to specify it.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder jmsMessageType(
+                String jmsMessageType) {
+            setProperty("jmsMessageType", jmsMessageType);
+            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.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder testConnectionOnStartup(
+                boolean testConnectionOnStartup) {
+            setProperty("testConnectionOnStartup", testConnectionOnStartup);
+            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 will be converted to a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointProducerBuilder testConnectionOnStartup(
+                String testConnectionOnStartup) {
+            setProperty("testConnectionOnStartup", testConnectionOnStartup);
+            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
+         */
+        public default AMQPEndpointProducerBuilder deliveryMode(
+                Integer deliveryMode) {
+            setProperty("deliveryMode", deliveryMode);
+            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 will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder deliveryMode(
+                String deliveryMode) {
+            setProperty("deliveryMode", deliveryMode);
+            return this;
+        }
+        /**
+         * Specifies whether persistent delivery is used by default.
+         * The option is a <code>boolean</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder deliveryPersistent(
+                boolean deliveryPersistent) {
+            setProperty("deliveryPersistent", deliveryPersistent);
+            return this;
+        }
+        /**
+         * Specifies whether persistent delivery is used by default.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder deliveryPersistent(
+                String deliveryPersistent) {
+            setProperty("deliveryPersistent", deliveryPersistent);
+            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>java.lang.Boolean</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder explicitQosEnabled(
+                Boolean explicitQosEnabled) {
+            setProperty("explicitQosEnabled", explicitQosEnabled);
+            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 will be converted to a <code>java.lang.Boolean</code>
+         * type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder explicitQosEnabled(
+                String explicitQosEnabled) {
+            setProperty("explicitQosEnabled", explicitQosEnabled);
+            return this;
+        }
+        /**
+         * Sets whether date headers should be formatted according to the ISO
+         * 8601 standard.
+         * The option is a <code>boolean</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder formatDateHeadersToIso8601(
+                boolean formatDateHeadersToIso8601) {
+            setProperty("formatDateHeadersToIso8601", formatDateHeadersToIso8601);
+            return this;
+        }
+        /**
+         * Sets whether date headers should be formatted according to the ISO
+         * 8601 standard.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder formatDateHeadersToIso8601(
+                String formatDateHeadersToIso8601) {
+            setProperty("formatDateHeadersToIso8601", formatDateHeadersToIso8601);
+            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.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder preserveMessageQos(
+                boolean preserveMessageQos) {
+            setProperty("preserveMessageQos", preserveMessageQos);
+            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 will be converted to a <code>boolean</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder preserveMessageQos(
+                String preserveMessageQos) {
+            setProperty("preserveMessageQos", preserveMessageQos);
+            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.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder priority(int priority) {
+            setProperty("priority", priority);
+            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 will be converted to a <code>int</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder priority(String priority) {
+            setProperty("priority", priority);
+            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.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder replyToConcurrentConsumers(
+                int replyToConcurrentConsumers) {
+            setProperty("replyToConcurrentConsumers", replyToConcurrentConsumers);
+            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 will be converted to a <code>int</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder replyToConcurrentConsumers(
+                String replyToConcurrentConsumers) {
+            setProperty("replyToConcurrentConsumers", replyToConcurrentConsumers);
+            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
+         */
+        public default AMQPEndpointProducerBuilder replyToMaxConcurrentConsumers(
+                int replyToMaxConcurrentConsumers) {
+            setProperty("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers);
+            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 will be converted to a <code>int</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder replyToMaxConcurrentConsumers(
+                String replyToMaxConcurrentConsumers) {
+            setProperty("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.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
+                int replyToOnTimeoutMaxConcurrentConsumers) {
+            setProperty("replyToOnTimeoutMaxConcurrentConsumers", replyToOnTimeoutMaxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * Specifies the maximum number of concurrent consumers for continue
+         * routing when timeout occurred when using request/reply over JMS.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
+                String replyToOnTimeoutMaxConcurrentConsumers) {
+            setProperty("replyToOnTimeoutMaxConcurrentConsumers", replyToOnTimeoutMaxConcurrentConsumers);
+            return this;
+        }
+        /**
+         * Provides an explicit ReplyTo destination in the JMS message, which
+         * overrides the setting of replyTo. It is useful if you want to forward
+         * the message to a remote Queue and receive the reply message from the
+         * ReplyTo destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder replyToOverride(
+                String replyToOverride) {
+            setProperty("replyToOverride", replyToOverride);
+            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
+         */
+        public default AMQPEndpointProducerBuilder replyToType(
+                ReplyToType replyToType) {
+            setProperty("replyToType", replyToType);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.ReplyToType</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder replyToType(
+                String replyToType) {
+            setProperty("replyToType", replyToType);
+            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.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder requestTimeout(
+                long requestTimeout) {
+            setProperty("requestTimeout", requestTimeout);
+            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 will be converted to a <code>long</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder requestTimeout(
+                String requestTimeout) {
+            setProperty("requestTimeout", requestTimeout);
+            return this;
+        }
+        /**
+         * When sending messages, specifies the time-to-live of the message (in
+         * milliseconds).
+         * The option is a <code>long</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder timeToLive(long timeToLive) {
+            setProperty("timeToLive", timeToLive);
+            return this;
+        }
+        /**
+         * When sending messages, specifies the time-to-live of the message (in
+         * milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group producer
+         */
+        public default AMQPEndpointProducerBuilder timeToLive(String timeToLive) {
+            setProperty("timeToLive", timeToLive);
+            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
+         */
+        public default AMQPEndpointProducerBuilder password(String password) {
+            setProperty("password", password);
+            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
+         */
+        public default AMQPEndpointProducerBuilder username(String username) {
+            setProperty("username", username);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * The option is a <code>boolean</code> type.
+         * @group transaction
+         */
+        public default AMQPEndpointProducerBuilder transacted(boolean transacted) {
+            setProperty("transacted", transacted);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction
+         */
+        public default AMQPEndpointProducerBuilder transacted(String transacted) {
+            setProperty("transacted", transacted);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint producers for the AMQP component.
+     */
+    public interface AdvancedAMQPEndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        public default AMQPEndpointProducerBuilder basic() {
+            return (AMQPEndpointProducerBuilder) 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)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder allowAdditionalHeaders(
+                String allowAdditionalHeaders) {
+            setProperty("allowAdditionalHeaders", allowAdditionalHeaders);
+            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.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder allowNullBody(
+                boolean allowNullBody) {
+            setProperty("allowNullBody", allowNullBody);
+            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 will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder allowNullBody(
+                String allowNullBody) {
+            setProperty("allowNullBody", allowNullBody);
+            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.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder alwaysCopyMessage(
+                boolean alwaysCopyMessage) {
+            setProperty("alwaysCopyMessage", alwaysCopyMessage);
+            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 will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder alwaysCopyMessage(
+                String alwaysCopyMessage) {
+            setProperty("alwaysCopyMessage", alwaysCopyMessage);
+            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)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder correlationProperty(
+                String correlationProperty) {
+            setProperty("correlationProperty", correlationProperty);
+            return this;
+        }
+        /**
+         * Use this option to force disabling time to live. For example when you
+         * do request/reply over JMS, then Camel will by default use the
+         * requestTimeout value as time to live on the message being sent. The
+         * problem is that the sender and receiver systems have to have their
+         * clocks synchronized, so they are in sync. This is not always so easy
+         * to archive. So you can use disableTimeToLive=true to not set a time
+         * to live value on the sent message. Then the message will not expire
+         * on the receiver system. See below in section About time to live for
+         * more details.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder disableTimeToLive(
+                boolean disableTimeToLive) {
+            setProperty("disableTimeToLive", disableTimeToLive);
+            return this;
+        }
+        /**
+         * Use this option to force disabling time to live. For example when you
+         * do request/reply over JMS, then Camel will by default use the
+         * requestTimeout value as time to live on the message being sent. The
+         * problem is that the sender and receiver systems have to have their
+         * clocks synchronized, so they are in sync. This is not always so easy
+         * to archive. So you can use disableTimeToLive=true to not set a time
+         * to live value on the sent message. Then the message will not expire
+         * on the receiver system. See below in section About time to live for
+         * more details.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder disableTimeToLive(
+                String disableTimeToLive) {
+            setProperty("disableTimeToLive", disableTimeToLive);
+            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.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder forceSendOriginalMessage(
+                boolean forceSendOriginalMessage) {
+            setProperty("forceSendOriginalMessage", forceSendOriginalMessage);
+            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 will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder forceSendOriginalMessage(
+                String forceSendOriginalMessage) {
+            setProperty("forceSendOriginalMessage", forceSendOriginalMessage);
+            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.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder includeSentJMSMessageID(
+                boolean includeSentJMSMessageID) {
+            setProperty("includeSentJMSMessageID", includeSentJMSMessageID);
+            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 will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder includeSentJMSMessageID(
+                String includeSentJMSMessageID) {
+            setProperty("includeSentJMSMessageID", includeSentJMSMessageID);
+            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)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder replyToCacheLevelName(
+                String replyToCacheLevelName) {
+            setProperty("replyToCacheLevelName", replyToCacheLevelName);
+            return this;
+        }
+        /**
+         * Sets the JMS Selector using the fixed name to be used so you can
+         * filter out your own replies from the others when using a shared queue
+         * (that is, if you are not using a temporary reply queue).
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder replyToDestinationSelectorName(
+                String replyToDestinationSelectorName) {
+            setProperty("replyToDestinationSelectorName", replyToDestinationSelectorName);
+            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.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder streamMessageTypeEnabled(
+                boolean streamMessageTypeEnabled) {
+            setProperty("streamMessageTypeEnabled", streamMessageTypeEnabled);
+            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 will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder streamMessageTypeEnabled(
+                String streamMessageTypeEnabled) {
+            setProperty("streamMessageTypeEnabled", streamMessageTypeEnabled);
+            return this;
+        }
+        /**
+         * Controls whether or not to include serialized headers. Applies only
+         * when isTransferExchange() is true. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder allowSerializedHeaders(
+                boolean allowSerializedHeaders) {
+            setProperty("allowSerializedHeaders", allowSerializedHeaders);
+            return this;
+        }
+        /**
+         * Controls whether or not to include serialized headers. Applies only
+         * when isTransferExchange() is true. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder allowSerializedHeaders(
+                String allowSerializedHeaders) {
+            setProperty("allowSerializedHeaders", allowSerializedHeaders);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder asyncStartListener(
+                boolean asyncStartListener) {
+            setProperty("asyncStartListener", asyncStartListener);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder asyncStartListener(
+                String asyncStartListener) {
+            setProperty("asyncStartListener", asyncStartListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder asyncStopListener(
+                boolean asyncStopListener) {
+            setProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder asyncStopListener(
+                String asyncStopListener) {
+            setProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder basicPropertyBinding(
+                String basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            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
+         */
+        public default AdvancedAMQPEndpointProducerBuilder destinationResolver(
+                Object destinationResolver) {
+            setProperty("destinationResolver", destinationResolver);
+            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 will be converted to a
+         * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder destinationResolver(
+                String destinationResolver) {
+            setProperty("destinationResolver", destinationResolver);
+            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
+         */
+        public default AdvancedAMQPEndpointProducerBuilder errorHandler(
+                Object errorHandler) {
+            setProperty("errorHandler", errorHandler);
+            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 will be converted to a
+         * <code>org.springframework.util.ErrorHandler</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder errorHandler(
+                String errorHandler) {
+            setProperty("errorHandler", errorHandler);
+            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
+         */
+        public default AdvancedAMQPEndpointProducerBuilder exceptionListener(
+                Object exceptionListener) {
+            setProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * Specifies the JMS Exception Listener that is to be notified of any
+         * underlying JMS exceptions.
+         * The option will be converted to a
+         * <code>javax.jms.ExceptionListener</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder exceptionListener(
+                String exceptionListener) {
+            setProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * To use a custom HeaderFilterStrategy to filter header to and from
+         * Camel message.
+         * The option is a
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder headerFilterStrategy(
+                HeaderFilterStrategy headerFilterStrategy) {
+            setProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * To use a custom HeaderFilterStrategy to filter header to and from
+         * Camel message.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder headerFilterStrategy(
+                String headerFilterStrategy) {
+            setProperty("headerFilterStrategy", headerFilterStrategy);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder idleConsumerLimit(
+                int idleConsumerLimit) {
+            setProperty("idleConsumerLimit", idleConsumerLimit);
+            return this;
+        }
+        /**
+         * Specify the limit for the number of consumers that are allowed to be
+         * idle at any given time.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder idleConsumerLimit(
+                String idleConsumerLimit) {
+            setProperty("idleConsumerLimit", idleConsumerLimit);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder idleTaskExecutionLimit(
+                int idleTaskExecutionLimit) {
+            setProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder idleTaskExecutionLimit(
+                String idleTaskExecutionLimit) {
+            setProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder includeAllJMSXProperties(
+                boolean includeAllJMSXProperties) {
+            setProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder includeAllJMSXProperties(
+                String includeAllJMSXProperties) {
+            setProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            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
+         */
+        public default AdvancedAMQPEndpointProducerBuilder jmsKeyFormatStrategy(
+                Object jmsKeyFormatStrategy) {
+            setProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
+         * type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder jmsKeyFormatStrategy(
+                String jmsKeyFormatStrategy) {
+            setProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            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.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder mapJmsMessage(
+                boolean mapJmsMessage) {
+            setProperty("mapJmsMessage", mapJmsMessage);
+            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.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder mapJmsMessage(
+                String mapJmsMessage) {
+            setProperty("mapJmsMessage", mapJmsMessage);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder maxMessagesPerTask(
+                int maxMessagesPerTask) {
+            setProperty("maxMessagesPerTask", maxMessagesPerTask);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder maxMessagesPerTask(
+                String maxMessagesPerTask) {
+            setProperty("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
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageConverter(
+                Object messageConverter) {
+            setProperty("messageConverter", messageConverter);
+            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 will be converted to a
+         * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageConverter(
+                String messageConverter) {
+            setProperty("messageConverter", messageConverter);
+            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
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageCreatedStrategy(
+                Object messageCreatedStrategy) {
+            setProperty("messageCreatedStrategy", messageCreatedStrategy);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
+         * type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageCreatedStrategy(
+                String messageCreatedStrategy) {
+            setProperty("messageCreatedStrategy", messageCreatedStrategy);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageIdEnabled(
+                boolean messageIdEnabled) {
+            setProperty("messageIdEnabled", messageIdEnabled);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageIdEnabled(
+                String messageIdEnabled) {
+            setProperty("messageIdEnabled", messageIdEnabled);
+            return this;
+        }
+        /**
+         * Registry ID of the MessageListenerContainerFactory used to determine
+         * what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use to consume messages. Setting this will automatically set
+         * consumerType to Custom.
+         * The option is a
+         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageListenerContainerFactory(
+                Object messageListenerContainerFactory) {
+            setProperty("messageListenerContainerFactory", messageListenerContainerFactory);
+            return this;
+        }
+        /**
+         * Registry ID of the MessageListenerContainerFactory used to determine
+         * what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use to consume messages. Setting this will automatically set
+         * consumerType to Custom.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageListenerContainerFactory(
+                String messageListenerContainerFactory) {
+            setProperty("messageListenerContainerFactory", messageListenerContainerFactory);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageTimestampEnabled(
+                boolean messageTimestampEnabled) {
+            setProperty("messageTimestampEnabled", messageTimestampEnabled);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder messageTimestampEnabled(
+                String messageTimestampEnabled) {
+            setProperty("messageTimestampEnabled", messageTimestampEnabled);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder pubSubNoLocal(
+                boolean pubSubNoLocal) {
+            setProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder pubSubNoLocal(
+                String pubSubNoLocal) {
+            setProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * The option is a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder receiveTimeout(
+                long receiveTimeout) {
+            setProperty("receiveTimeout", receiveTimeout);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder receiveTimeout(
+                String receiveTimeout) {
+            setProperty("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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder recoveryInterval(
+                long recoveryInterval) {
+            setProperty("recoveryInterval", recoveryInterval);
+            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 will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder recoveryInterval(
+                String recoveryInterval) {
+            setProperty("recoveryInterval", recoveryInterval);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder requestTimeoutCheckerInterval(
+                long requestTimeoutCheckerInterval) {
+            setProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            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 will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder requestTimeoutCheckerInterval(
+                String requestTimeoutCheckerInterval) {
+            setProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder synchronous(
+                boolean synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder synchronous(
+                String synchronous) {
+            setProperty("synchronous", synchronous);
+            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.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transferException(
+                boolean transferException) {
+            setProperty("transferException", transferException);
+            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.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transferException(
+                String transferException) {
+            setProperty("transferException", transferException);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transferExchange(
+                boolean transferExchange) {
+            setProperty("transferExchange", transferExchange);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transferExchange(
+                String transferExchange) {
+            setProperty("transferExchange", transferExchange);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed with a SOAP fault (not exception) on the consumer
+         * side, then the fault flag on org.apache.camel.Message#isFault() will
+         * be send back in the response as a JMS header with the key
+         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
+         * fault flag will be set on the
+         * org.apache.camel.Message#setFault(boolean). You may want to enable
+         * this when using Camel components that support faults such as SOAP
+         * based such as cxf or spring-ws.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transferFault(
+                boolean transferFault) {
+            setProperty("transferFault", transferFault);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed with a SOAP fault (not exception) on the consumer
+         * side, then the fault flag on org.apache.camel.Message#isFault() will
+         * be send back in the response as a JMS header with the key
+         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
+         * fault flag will be set on the
+         * org.apache.camel.Message#setFault(boolean). You may want to enable
+         * this when using Camel components that support faults such as SOAP
+         * based such as cxf or spring-ws.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transferFault(
+                String transferFault) {
+            setProperty("transferFault", transferFault);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder useMessageIDAsCorrelationID(
+                boolean useMessageIDAsCorrelationID) {
+            setProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder useMessageIDAsCorrelationID(
+                String useMessageIDAsCorrelationID) {
+            setProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                int waitForProvisionCorrelationToBeUpdatedCounter) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                String waitForProvisionCorrelationToBeUpdatedCounter) {
+            setProperty("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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            return this;
+        }
+        /**
+         * Interval in millis to sleep each time while waiting for provisional
+         * correlation id to be updated.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointProducerBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            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.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder lazyCreateTransactionManager(
+                boolean lazyCreateTransactionManager) {
+            setProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * If true, Camel will create a JmsTransactionManager, if there is no
+         * transactionManager injected when option transacted=true.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder lazyCreateTransactionManager(
+                String lazyCreateTransactionManager) {
+            setProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * The option is a
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transactionManager(
+                Object transactionManager) {
+            setProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * The option will be converted to a
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transactionManager(
+                String transactionManager) {
+            setProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The name of the transaction to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transactionName(
+                String transactionName) {
+            setProperty("transactionName", transactionName);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * The option is a <code>int</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transactionTimeout(
+                int transactionTimeout) {
+            setProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * The option will be converted to a <code>int</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointProducerBuilder transactionTimeout(
+                String transactionTimeout) {
+            setProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint for the AMQP component.
+     */
+    public static interface AMQPEndpointBuilder
+            extends
+                AMQPEndpointConsumerBuilder, AMQPEndpointProducerBuilder {
+        public default AdvancedAMQPEndpointBuilder advanced() {
+            return (AdvancedAMQPEndpointBuilder) this;
+        }
+        /**
+         * The kind of destination to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder destinationType(
+                String destinationType) {
+            setProperty("destinationType", destinationType);
+            return this;
+        }
+        /**
+         * Name of the queue or topic to use as destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder destinationName(
+                String destinationName) {
+            setProperty("destinationName", destinationName);
+            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
+         */
+        public default AMQPEndpointBuilder clientId(String clientId) {
+            setProperty("clientId", clientId);
+            return this;
+        }
+        /**
+         * Sets the default connection factory to be used if a connection
+         * factory is not specified for either
+         * setTemplateConnectionFactory(ConnectionFactory) or
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option is a <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder connectionFactory(
+                Object connectionFactory) {
+            setProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Sets the default connection factory to be used if a connection
+         * factory is not specified for either
+         * setTemplateConnectionFactory(ConnectionFactory) or
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option will be converted to a
+         * <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder connectionFactory(
+                String connectionFactory) {
+            setProperty("connectionFactory", connectionFactory);
+            return this;
+        }
+        /**
+         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
+         * true, Camel does not send a reply back to the destination specified
+         * in the JMSReplyTo header. You can use this option if you want Camel
+         * to consume from a route and you do not want Camel to automatically
+         * send back a reply message because another component in your code
+         * handles the reply message. You can also use this option if you want
+         * to use Camel as a proxy between different message brokers and you
+         * want to route message from one system to another.
+         * The option is a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder disableReplyTo(boolean disableReplyTo) {
+            setProperty("disableReplyTo", disableReplyTo);
+            return this;
+        }
+        /**
+         * Specifies whether Camel ignores the JMSReplyTo header in messages. If
+         * true, Camel does not send a reply back to the destination specified
+         * in the JMSReplyTo header. You can use this option if you want Camel
+         * to consume from a route and you do not want Camel to automatically
+         * send back a reply message because another component in your code
+         * handles the reply message. You can also use this option if you want
+         * to use Camel as a proxy between different message brokers and you
+         * want to route message from one system to another.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder disableReplyTo(String disableReplyTo) {
+            setProperty("disableReplyTo", disableReplyTo);
+            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
+         */
+        public default AMQPEndpointBuilder durableSubscriptionName(
+                String durableSubscriptionName) {
+            setProperty("durableSubscriptionName", durableSubscriptionName);
+            return this;
+        }
+        /**
+         * Allows you to force the use of a specific javax.jms.Message
+         * implementation for sending JMS messages. Possible values are: Bytes,
+         * Map, Object, Stream, Text. By default, Camel would determine which
+         * JMS message type to use from the In body type. This option allows you
+         * to specify it.
+         * The option is a
+         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder jmsMessageType(
+                JmsMessageType jmsMessageType) {
+            setProperty("jmsMessageType", jmsMessageType);
+            return this;
+        }
+        /**
+         * Allows you to force the use of a specific javax.jms.Message
+         * implementation for sending JMS messages. Possible values are: Bytes,
+         * Map, Object, Stream, Text. By default, Camel would determine which
+         * JMS message type to use from the In body type. This option allows you
+         * to specify it.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder jmsMessageType(String jmsMessageType) {
+            setProperty("jmsMessageType", jmsMessageType);
+            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.
+         * @group common
+         */
+        public default AMQPEndpointBuilder testConnectionOnStartup(
+                boolean testConnectionOnStartup) {
+            setProperty("testConnectionOnStartup", testConnectionOnStartup);
+            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 will be converted to a <code>boolean</code> type.
+         * @group common
+         */
+        public default AMQPEndpointBuilder testConnectionOnStartup(
+                String testConnectionOnStartup) {
+            setProperty("testConnectionOnStartup", testConnectionOnStartup);
+            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
+         */
+        public default AMQPEndpointBuilder password(String password) {
+            setProperty("password", password);
+            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
+         */
+        public default AMQPEndpointBuilder username(String username) {
+            setProperty("username", username);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * The option is a <code>boolean</code> type.
+         * @group transaction
+         */
+        public default AMQPEndpointBuilder transacted(boolean transacted) {
+            setProperty("transacted", transacted);
+            return this;
+        }
+        /**
+         * Specifies whether to use transacted mode.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction
+         */
+        public default AMQPEndpointBuilder transacted(String transacted) {
+            setProperty("transacted", transacted);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the AMQP component.
+     */
+    public static interface AdvancedAMQPEndpointBuilder
+            extends
+                AdvancedAMQPEndpointConsumerBuilder, AdvancedAMQPEndpointProducerBuilder {
+        public default AMQPEndpointBuilder basic() {
+            return (AMQPEndpointBuilder) this;
+        }
+        /**
+         * Controls whether or not to include serialized headers. Applies only
+         * when isTransferExchange() is true. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder allowSerializedHeaders(
+                boolean allowSerializedHeaders) {
+            setProperty("allowSerializedHeaders", allowSerializedHeaders);
+            return this;
+        }
+        /**
+         * Controls whether or not to include serialized headers. Applies only
+         * when isTransferExchange() is true. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder allowSerializedHeaders(
+                String allowSerializedHeaders) {
+            setProperty("allowSerializedHeaders", allowSerializedHeaders);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder asyncStartListener(
+                boolean asyncStartListener) {
+            setProperty("asyncStartListener", asyncStartListener);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder asyncStartListener(
+                String asyncStartListener) {
+            setProperty("asyncStartListener", asyncStartListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder asyncStopListener(
+                boolean asyncStopListener) {
+            setProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder asyncStopListener(
+                String asyncStopListener) {
+            setProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder basicPropertyBinding(
+                String basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            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
+         */
+        public default AdvancedAMQPEndpointBuilder destinationResolver(
+                Object destinationResolver) {
+            setProperty("destinationResolver", destinationResolver);
+            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 will be converted to a
+         * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder destinationResolver(
+                String destinationResolver) {
+            setProperty("destinationResolver", destinationResolver);
+            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
+         */
+        public default AdvancedAMQPEndpointBuilder errorHandler(
+                Object errorHandler) {
+            setProperty("errorHandler", errorHandler);
+            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 will be converted to a
+         * <code>org.springframework.util.ErrorHandler</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder errorHandler(
+                String errorHandler) {
+            setProperty("errorHandler", errorHandler);
+            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
+         */
+        public default AdvancedAMQPEndpointBuilder exceptionListener(
+                Object exceptionListener) {
+            setProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * Specifies the JMS Exception Listener that is to be notified of any
+         * underlying JMS exceptions.
+         * The option will be converted to a
+         * <code>javax.jms.ExceptionListener</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder exceptionListener(
+                String exceptionListener) {
+            setProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+        /**
+         * To use a custom HeaderFilterStrategy to filter header to and from
+         * Camel message.
+         * The option is a
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder headerFilterStrategy(
+                HeaderFilterStrategy headerFilterStrategy) {
+            setProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+        /**
+         * To use a custom HeaderFilterStrategy to filter header to and from
+         * Camel message.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder headerFilterStrategy(
+                String headerFilterStrategy) {
+            setProperty("headerFilterStrategy", headerFilterStrategy);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder idleConsumerLimit(
+                int idleConsumerLimit) {
+            setProperty("idleConsumerLimit", idleConsumerLimit);
+            return this;
+        }
+        /**
+         * Specify the limit for the number of consumers that are allowed to be
+         * idle at any given time.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder idleConsumerLimit(
+                String idleConsumerLimit) {
+            setProperty("idleConsumerLimit", idleConsumerLimit);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder idleTaskExecutionLimit(
+                int idleTaskExecutionLimit) {
+            setProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder idleTaskExecutionLimit(
+                String idleTaskExecutionLimit) {
+            setProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder includeAllJMSXProperties(
+                boolean includeAllJMSXProperties) {
+            setProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder includeAllJMSXProperties(
+                String includeAllJMSXProperties) {
+            setProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            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
+         */
+        public default AdvancedAMQPEndpointBuilder jmsKeyFormatStrategy(
+                Object jmsKeyFormatStrategy) {
+            setProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
+         * type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder jmsKeyFormatStrategy(
+                String jmsKeyFormatStrategy) {
+            setProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            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.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder mapJmsMessage(
+                boolean mapJmsMessage) {
+            setProperty("mapJmsMessage", mapJmsMessage);
+            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.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder mapJmsMessage(
+                String mapJmsMessage) {
+            setProperty("mapJmsMessage", mapJmsMessage);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder maxMessagesPerTask(
+                int maxMessagesPerTask) {
+            setProperty("maxMessagesPerTask", maxMessagesPerTask);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder maxMessagesPerTask(
+                String maxMessagesPerTask) {
+            setProperty("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
+         */
+        public default AdvancedAMQPEndpointBuilder messageConverter(
+                Object messageConverter) {
+            setProperty("messageConverter", messageConverter);
+            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 will be converted to a
+         * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageConverter(
+                String messageConverter) {
+            setProperty("messageConverter", messageConverter);
+            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
+         */
+        public default AdvancedAMQPEndpointBuilder messageCreatedStrategy(
+                Object messageCreatedStrategy) {
+            setProperty("messageCreatedStrategy", messageCreatedStrategy);
+            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 will be converted to a
+         * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
+         * type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageCreatedStrategy(
+                String messageCreatedStrategy) {
+            setProperty("messageCreatedStrategy", messageCreatedStrategy);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageIdEnabled(
+                boolean messageIdEnabled) {
+            setProperty("messageIdEnabled", messageIdEnabled);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageIdEnabled(
+                String messageIdEnabled) {
+            setProperty("messageIdEnabled", messageIdEnabled);
+            return this;
+        }
+        /**
+         * Registry ID of the MessageListenerContainerFactory used to determine
+         * what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use to consume messages. Setting this will automatically set
+         * consumerType to Custom.
+         * The option is a
+         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageListenerContainerFactory(
+                Object messageListenerContainerFactory) {
+            setProperty("messageListenerContainerFactory", messageListenerContainerFactory);
+            return this;
+        }
+        /**
+         * Registry ID of the MessageListenerContainerFactory used to determine
+         * what
+         * org.springframework.jms.listener.AbstractMessageListenerContainer to
+         * use to consume messages. Setting this will automatically set
+         * consumerType to Custom.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageListenerContainerFactory(
+                String messageListenerContainerFactory) {
+            setProperty("messageListenerContainerFactory", messageListenerContainerFactory);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageTimestampEnabled(
+                boolean messageTimestampEnabled) {
+            setProperty("messageTimestampEnabled", messageTimestampEnabled);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder messageTimestampEnabled(
+                String messageTimestampEnabled) {
+            setProperty("messageTimestampEnabled", messageTimestampEnabled);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder pubSubNoLocal(
+                boolean pubSubNoLocal) {
+            setProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder pubSubNoLocal(
+                String pubSubNoLocal) {
+            setProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * The option is a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder receiveTimeout(
+                long receiveTimeout) {
+            setProperty("receiveTimeout", receiveTimeout);
+            return this;
+        }
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder receiveTimeout(
+                String receiveTimeout) {
+            setProperty("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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder recoveryInterval(
+                long recoveryInterval) {
+            setProperty("recoveryInterval", recoveryInterval);
+            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 will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder recoveryInterval(
+                String recoveryInterval) {
+            setProperty("recoveryInterval", recoveryInterval);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder requestTimeoutCheckerInterval(
+                long requestTimeoutCheckerInterval) {
+            setProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            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 will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder requestTimeoutCheckerInterval(
+                String requestTimeoutCheckerInterval) {
+            setProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder synchronous(
+                boolean synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder synchronous(
+                String synchronous) {
+            setProperty("synchronous", synchronous);
+            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.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder transferException(
+                boolean transferException) {
+            setProperty("transferException", transferException);
+            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.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder transferException(
+                String transferException) {
+            setProperty("transferException", transferException);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder transferExchange(
+                boolean transferExchange) {
+            setProperty("transferExchange", transferExchange);
+            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 will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder transferExchange(
+                String transferExchange) {
+            setProperty("transferExchange", transferExchange);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed with a SOAP fault (not exception) on the consumer
+         * side, then the fault flag on org.apache.camel.Message#isFault() will
+         * be send back in the response as a JMS header with the key
+         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
+         * fault flag will be set on the
+         * org.apache.camel.Message#setFault(boolean). You may want to enable
+         * this when using Camel components that support faults such as SOAP
+         * based such as cxf or spring-ws.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder transferFault(
+                boolean transferFault) {
+            setProperty("transferFault", transferFault);
+            return this;
+        }
+        /**
+         * If enabled and you are using Request Reply messaging (InOut) and an
+         * Exchange failed with a SOAP fault (not exception) on the consumer
+         * side, then the fault flag on org.apache.camel.Message#isFault() will
+         * be send back in the response as a JMS header with the key
+         * JmsConstants#JMS_TRANSFER_FAULT. If the client is Camel, the returned
+         * fault flag will be set on the
+         * org.apache.camel.Message#setFault(boolean). You may want to enable
+         * this when using Camel components that support faults such as SOAP
+         * based such as cxf or spring-ws.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder transferFault(
+                String transferFault) {
+            setProperty("transferFault", transferFault);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder useMessageIDAsCorrelationID(
+                boolean useMessageIDAsCorrelationID) {
+            setProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            return this;
+        }
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder useMessageIDAsCorrelationID(
+                String useMessageIDAsCorrelationID) {
+            setProperty("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
+            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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                int waitForProvisionCorrelationToBeUpdatedCounter) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
+            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 will be converted to a <code>int</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder waitForProvisionCorrelationToBeUpdatedCounter(
+                String waitForProvisionCorrelationToBeUpdatedCounter) {
+            setProperty("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.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            return this;
+        }
+        /**
+         * Interval in millis to sleep each time while waiting for provisional
+         * correlation id to be updated.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
+         */
+        public default AdvancedAMQPEndpointBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
+                String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            setProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            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.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointBuilder lazyCreateTransactionManager(
+                boolean lazyCreateTransactionManager) {
+            setProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * If true, Camel will create a JmsTransactionManager, if there is no
+         * transactionManager injected when option transacted=true.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointBuilder lazyCreateTransactionManager(
+                String lazyCreateTransactionManager) {
+            setProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * The option is a
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointBuilder transactionManager(
+                Object transactionManager) {
+            setProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The Spring transaction manager to use.
+         * The option will be converted to a
+         * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointBuilder transactionManager(
+                String transactionManager) {
+            setProperty("transactionManager", transactionManager);
+            return this;
+        }
+        /**
+         * The name of the transaction to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointBuilder transactionName(
+                String transactionName) {
+            setProperty("transactionName", transactionName);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * The option is a <code>int</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointBuilder transactionTimeout(
+                int transactionTimeout) {
+            setProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * The option will be converted to a <code>int</code> type.
+         * @group transaction (advanced)
+         */
+        public default AdvancedAMQPEndpointBuilder transactionTimeout(
+                String transactionTimeout) {
+            setProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+    }
+
+    /**
+     * Proxy enum for <code>org.apache.camel.component.jms.JmsMessageType</code>
+     * enum.
+     */
+    public static enum JmsMessageType {
+        Bytes, Map, Object, Stream, Text, Blob;
+    }
+
+    /**
+     * Proxy enum for <code>org.apache.camel.component.jms.ConsumerType</code>
+     * enum.
+     */
+    public static enum ConsumerType {
+        Simple, Default, Custom;
+    }
+
+    /**
+     * Proxy enum for
+     * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code> enum.
+     */
+    public static enum DefaultTaskExecutorType {
+        ThreadPool, SimpleAsync;
+    }
+
+    /**
+     * Proxy enum for <code>org.apache.camel.component.jms.ReplyToType</code>
+     * enum.
+     */
+    public static enum ReplyToType {
+        Temporary, Shared, Exclusive;
+    }
+    /**
+     * Messaging with AMQP protocol using Apache QPid Client. Creates a builder
+     * to build endpoints for the AMQP component.
+     */
+    public default AMQPEndpointBuilder aMQP(String path) {
+        class AMQPEndpointBuilderImpl extends AbstractEndpointBuilder implements AMQPEndpointBuilder, AdvancedAMQPEndpointBuilder {
+            public AMQPEndpointBuilderImpl(String path) {
+                super("amqp", path);
+            }
+        }
+        return new AMQPEndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java
deleted file mode 100644
index 5064a0c..0000000
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java
+++ /dev/null
@@ -1,668 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model.endpoint;
-
-import java.security.PrivateKey;
-import java.security.cert.Certificate;
-import javax.annotation.Generated;
-import org.apache.camel.ExchangePattern;
-import org.apache.camel.model.AbstractEndpointBuilder;
-import org.apache.camel.model.EndpointConsumerBuilder;
-import org.apache.camel.model.EndpointProducerBuilder;
-import org.apache.camel.spi.ExceptionHandler;
-
-/**
- * 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.EndpointDslMojo")
-public interface AS2EndpointBuilder {
-
-
-    /**
-     * Base class for the AS2 component builders.
-     */
-    public static class AS2CommonBuilder<T extends AbstractEndpointBuilder>
-            extends
-                AbstractEndpointBuilder<T> {
-        AS2CommonBuilder(String path) {
-            super("as2", path);
-        }
-        /**
-         * What kind of operation to perform.
-         * The option is a
-         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
-         * @group common
-         */
-        public T apiName(AS2ApiName apiName) {
-            this.properties.put("apiName", apiName);
-            return (T) this;
-        }
-        /**
-         * What kind of operation to perform.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
-         * @group common
-         */
-        public T apiName(String apiName) {
-            this.properties.put("apiName", apiName);
-            return (T) this;
-        }
-        /**
-         * What sub operation to use for the selected operation.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T methodName(String methodName) {
-            this.properties.put("methodName", methodName);
-            return (T) this;
-        }
-        /**
-         * The value of the AS2From header of AS2 message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T as2From(String as2From) {
-            this.properties.put("as2From", as2From);
-            return (T) this;
-        }
-        /**
-         * The structure of AS2 Message. One of: PLAIN - No encryption, no
-         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
-         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
-         * The option is a
-         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
-         * type.
-         * @group common
-         */
-        public T as2MessageStructure(AS2MessageStructure as2MessageStructure) {
-            this.properties.put("as2MessageStructure", as2MessageStructure);
-            return (T) this;
-        }
-        /**
-         * The structure of AS2 Message. One of: PLAIN - No encryption, no
-         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
-         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
-         * type.
-         * @group common
-         */
-        public T as2MessageStructure(String as2MessageStructure) {
-            this.properties.put("as2MessageStructure", as2MessageStructure);
-            return (T) this;
-        }
-        /**
-         * The value of the AS2To header of AS2 message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T as2To(String as2To) {
-            this.properties.put("as2To", as2To);
-            return (T) this;
-        }
-        /**
-         * The version of the AS2 protocol.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T as2Version(String as2Version) {
-            this.properties.put("as2Version", as2Version);
-            return (T) this;
-        }
-        /**
-         * The Client Fully Qualified Domain Name (FQDN). Used in message ids
-         * sent by endpoint.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T clientFqdn(String clientFqdn) {
-            this.properties.put("clientFqdn", clientFqdn);
-            return (T) this;
-        }
-        /**
-         * The algorithm used to compress EDI message.
-         * The option is a
-         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
-         * @group common
-         */
-        public T compressionAlgorithm(
-                AS2CompressionAlgorithm compressionAlgorithm) {
-            this.properties.put("compressionAlgorithm", compressionAlgorithm);
-            return (T) this;
-        }
-        /**
-         * The algorithm used to compress EDI message.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
-         * @group common
-         */
-        public T compressionAlgorithm(String compressionAlgorithm) {
-            this.properties.put("compressionAlgorithm", compressionAlgorithm);
-            return (T) this;
-        }
-        /**
-         * The key used to encrypt the EDI message.
-         * The option is a <code>java.security.PrivateKey</code> type.
-         * @group common
-         */
-        public T decryptingPrivateKey(PrivateKey decryptingPrivateKey) {
-            this.properties.put("decryptingPrivateKey", decryptingPrivateKey);
-            return (T) this;
-        }
-        /**
-         * The key used to encrypt the EDI message.
-         * The option will be converted to a
-         * <code>java.security.PrivateKey</code> type.
-         * @group common
-         */
-        public T decryptingPrivateKey(String decryptingPrivateKey) {
-            this.properties.put("decryptingPrivateKey", decryptingPrivateKey);
-            return (T) this;
-        }
-        /**
-         * The value of the Disposition-Notification-To header. Assigning a
-         * value to this parameter requests a message disposition notification
-         * (MDN) for the AS2 message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T dispositionNotificationTo(String dispositionNotificationTo) {
-            this.properties.put("dispositionNotificationTo", dispositionNotificationTo);
-            return (T) this;
-        }
-        /**
-         * The transfer encoding of EDI message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T ediMessageTransferEncoding(String ediMessageTransferEncoding) {
-            this.properties.put("ediMessageTransferEncoding", ediMessageTransferEncoding);
-            return (T) this;
-        }
-        /**
-         * The content type of EDI message. One of application/edifact,
-         * application/edi-x12, application/edi-consent.
-         * The option is a <code>org.apache.http.entity.ContentType</code> type.
-         * @group common
-         */
-        public T ediMessageType(Object ediMessageType) {
-            this.properties.put("ediMessageType", ediMessageType);
-            return (T) this;
-        }
-        /**
-         * The content type of EDI message. One of application/edifact,
-         * application/edi-x12, application/edi-consent.
-         * The option will be converted to a
-         * <code>org.apache.http.entity.ContentType</code> type.
-         * @group common
-         */
-        public T ediMessageType(String ediMessageType) {
-            this.properties.put("ediMessageType", ediMessageType);
-            return (T) this;
-        }
-        /**
-         * The algorithm used to encrypt EDI message.
-         * The option is a
-         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
-         * @group common
-         */
-        public T encryptingAlgorithm(AS2EncryptionAlgorithm encryptingAlgorithm) {
-            this.properties.put("encryptingAlgorithm", encryptingAlgorithm);
-            return (T) this;
-        }
-        /**
-         * The algorithm used to encrypt EDI message.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
-         * @group common
-         */
-        public T encryptingAlgorithm(String encryptingAlgorithm) {
-            this.properties.put("encryptingAlgorithm", encryptingAlgorithm);
-            return (T) this;
-        }
-        /**
-         * The chain of certificates used to encrypt EDI message.
-         * The option is a <code>java.security.cert.Certificate[]</code> type.
-         * @group common
-         */
-        public T encryptingCertificateChain(
-                Certificate[] encryptingCertificateChain) {
-            this.properties.put("encryptingCertificateChain", encryptingCertificateChain);
-            return (T) this;
-        }
-        /**
-         * The chain of certificates used to encrypt EDI message.
-         * The option will be converted to a
-         * <code>java.security.cert.Certificate[]</code> type.
-         * @group common
-         */
-        public T encryptingCertificateChain(String encryptingCertificateChain) {
-            this.properties.put("encryptingCertificateChain", encryptingCertificateChain);
-            return (T) this;
-        }
-        /**
-         * The value of the From header of AS2 message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T from(String from) {
-            this.properties.put("from", from);
-            return (T) this;
-        }
-        /**
-         * Sets the name of a parameter to be passed in the exchange In Body.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T inBody(String inBody) {
-            this.properties.put("inBody", inBody);
-            return (T) this;
-        }
-        /**
-         * The template used to format MDN message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T mdnMessageTemplate(String mdnMessageTemplate) {
-            this.properties.put("mdnMessageTemplate", mdnMessageTemplate);
-            return (T) this;
-        }
-        /**
-         * The request URI of EDI message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T requestUri(String requestUri) {
-            this.properties.put("requestUri", requestUri);
-            return (T) this;
-        }
-        /**
-         * The value included in the Server message header identifying the AS2
-         * Server.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T server(String server) {
-            this.properties.put("server", server);
-            return (T) this;
-        }
-        /**
-         * The Server Fully Qualified Domain Name (FQDN). Used in message ids
-         * sent by endpoint.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T serverFqdn(String serverFqdn) {
-            this.properties.put("serverFqdn", serverFqdn);
-            return (T) this;
-        }
-        /**
-         * The port number of server.
-         * The option is a <code>java.lang.Integer</code> type.
-         * @group common
-         */
-        public T serverPortNumber(Integer serverPortNumber) {
-            this.properties.put("serverPortNumber", serverPortNumber);
-            return (T) this;
-        }
-        /**
-         * The port number of server.
-         * The option will be converted to a <code>java.lang.Integer</code>
-         * type.
-         * @group common
-         */
-        public T serverPortNumber(String serverPortNumber) {
-            this.properties.put("serverPortNumber", serverPortNumber);
-            return (T) this;
-        }
-        /**
-         * The list of algorithms, in order of preference, requested to generate
-         * a message integrity check (MIC) returned in message dispostion
-         * notification (MDN).
-         * The option is a <code>java.lang.String[]</code> type.
-         * @group common
-         */
-        public T signedReceiptMicAlgorithms(String[] signedReceiptMicAlgorithms) {
-            this.properties.put("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
-            return (T) this;
-        }
-        /**
-         * The list of algorithms, in order of preference, requested to generate
-         * a message integrity check (MIC) returned in message dispostion
-         * notification (MDN).
-         * The option will be converted to a <code>java.lang.String[]</code>
-         * type.
-         * @group common
-         */
-        public T signedReceiptMicAlgorithms(String signedReceiptMicAlgorithms) {
-            this.properties.put("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
-            return (T) this;
-        }
-        /**
-         * The algorithm used to sign EDI message.
-         * The option is a
-         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
-         * type.
-         * @group common
-         */
-        public T signingAlgorithm(AS2SignatureAlgorithm signingAlgorithm) {
-            this.properties.put("signingAlgorithm", signingAlgorithm);
-            return (T) this;
-        }
-        /**
-         * The algorithm used to sign EDI message.
-         * The option will be converted to a
-         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
-         * type.
-         * @group common
-         */
-        public T signingAlgorithm(String signingAlgorithm) {
-            this.properties.put("signingAlgorithm", signingAlgorithm);
-            return (T) this;
-        }
-        /**
-         * The chain of certificates used to sign EDI message.
-         * The option is a <code>java.security.cert.Certificate[]</code> type.
-         * @group common
-         */
-        public T signingCertificateChain(Certificate[] signingCertificateChain) {
-            this.properties.put("signingCertificateChain", signingCertificateChain);
-            return (T) this;
-        }
-        /**
-         * The chain of certificates used to sign EDI message.
-         * The option will be converted to a
-         * <code>java.security.cert.Certificate[]</code> type.
-         * @group common
-         */
-        public T signingCertificateChain(String signingCertificateChain) {
-            this.properties.put("signingCertificateChain", signingCertificateChain);
-            return (T) this;
-        }
-        /**
-         * The key used to sign the EDI message.
-         * The option is a <code>java.security.PrivateKey</code> type.
-         * @group common
-         */
-        public T signingPrivateKey(PrivateKey signingPrivateKey) {
-            this.properties.put("signingPrivateKey", signingPrivateKey);
-            return (T) this;
-        }
-        /**
-         * The key used to sign the EDI message.
-         * The option will be converted to a
-         * <code>java.security.PrivateKey</code> type.
-         * @group common
-         */
-        public T signingPrivateKey(String signingPrivateKey) {
-            this.properties.put("signingPrivateKey", signingPrivateKey);
-            return (T) this;
-        }
-        /**
-         * The value of Subject header of AS2 message.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T subject(String subject) {
-            this.properties.put("subject", subject);
-            return (T) this;
-        }
-        /**
-         * The host name (IP or DNS name) of target host.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T targetHostname(String targetHostname) {
-            this.properties.put("targetHostname", targetHostname);
-            return (T) this;
-        }
-        /**
-         * The port number of target host. -1 indicates the scheme default port.
-         * The option is a <code>java.lang.Integer</code> type.
-         * @group common
-         */
-        public T targetPortNumber(Integer targetPortNumber) {
-            this.properties.put("targetPortNumber", targetPortNumber);
-            return (T) this;
-        }
-        /**
-         * The port number of target host. -1 indicates the scheme default port.
-         * The option will be converted to a <code>java.lang.Integer</code>
-         * type.
-         * @group common
-         */
-        public T targetPortNumber(String targetPortNumber) {
-            this.properties.put("targetPortNumber", targetPortNumber);
-            return (T) this;
-        }
-        /**
-         * The value included in the User-Agent message header identifying the
-         * AS2 user agent.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T userAgent(String userAgent) {
-            this.properties.put("userAgent", userAgent);
-            return (T) this;
-        }
-        /**
-         * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities.
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T basicPropertyBinding(boolean basicPropertyBinding) {
-            this.properties.put("basicPropertyBinding", basicPropertyBinding);
-            return (T) this;
-        }
-        /**
-         * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities.
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T basicPropertyBinding(String basicPropertyBinding) {
-            this.properties.put("basicPropertyBinding", basicPropertyBinding);
-            return (T) this;
-        }
-        /**
-         * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported).
-         * The option is a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T synchronous(boolean synchronous) {
-            this.properties.put("synchronous", synchronous);
-            return (T) this;
-        }
-        /**
-         * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported).
-         * The option will be converted to a <code>boolean</code> type.
-         * @group advanced
-         */
-        public T synchronous(String synchronous) {
-            this.properties.put("synchronous", synchronous);
-            return (T) this;
-        }
-    }
-
-    /**
-     * Builder for endpoint consumers for the AS2 component.
-     */
-    public static class AS2ConsumerBuilder
-            extends
-                AS2CommonBuilder<AS2ConsumerBuilder>
-            implements
-                EndpointConsumerBuilder {
-        public AS2ConsumerBuilder(String path) {
-            super(path);
-        }
-        /**
-         * Allows for bridging the consumer to the Camel routing Error 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.
-         * @group consumer
-         */
-        public AS2ConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
-            this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
-            return (AS2ConsumerBuilder) 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 will be converted to a <code>boolean</code> type.
-         * @group consumer
-         */
-        public AS2ConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
-            this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
-            return (AS2ConsumerBuilder) this;
-        }
-        /**
-         * To let the consumer use a custom ExceptionHandler. Notice if the
-         * option bridgeErrorHandler is enabled then this option is not in use.
-         * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored.
-         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
-         * @group consumer (advanced)
-         */
-        public AS2ConsumerBuilder exceptionHandler(
-                ExceptionHandler exceptionHandler) {
-            this.properties.put("exceptionHandler", exceptionHandler);
-            return (AS2ConsumerBuilder) this;
-        }
-        /**
-         * To let the consumer use a custom ExceptionHandler. Notice if the
-         * option bridgeErrorHandler is enabled then this option is not in use.
-         * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored.
-         * The option will be converted to a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
-         * @group consumer (advanced)
-         */
-        public AS2ConsumerBuilder exceptionHandler(String exceptionHandler) {
-            this.properties.put("exceptionHandler", exceptionHandler);
-            return (AS2ConsumerBuilder) this;
-        }
-        /**
-         * Sets the exchange pattern when the consumer creates an exchange.
-         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
-         * @group consumer (advanced)
-         */
-        public AS2ConsumerBuilder exchangePattern(
-                ExchangePattern exchangePattern) {
-            this.properties.put("exchangePattern", exchangePattern);
-            return (AS2ConsumerBuilder) this;
-        }
-        /**
-         * Sets the exchange pattern when the consumer creates an exchange.
-         * The option will be converted to a
-         * <code>org.apache.camel.ExchangePattern</code> type.
-         * @group consumer (advanced)
-         */
-        public AS2ConsumerBuilder exchangePattern(String exchangePattern) {
-            this.properties.put("exchangePattern", exchangePattern);
-            return (AS2ConsumerBuilder) this;
-        }
-    }
-
-    /**
-     * Builder for endpoint producers for the AS2 component.
-     */
-    public static class AS2ProducerBuilder
-            extends
-                AS2CommonBuilder<AS2ProducerBuilder>
-            implements
-                EndpointProducerBuilder {
-        public AS2ProducerBuilder(String path) {
-            super(path);
-        }
-    }
-
-    /**
-     * Proxy enum for
-     * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> enum.
-     */
-    public static enum AS2ApiName {
-        CLIENT, SERVER;
-    }
-
-    /**
-     * Proxy enum for
-     * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code> enum.
-     */
-    public static enum AS2MessageStructure {
-        PLAIN, SIGNED, ENCRYPTED, SIGNED_ENCRYPTED, PLAIN_COMPRESSED, SIGNED_COMPRESSED, ENCRYPTED_COMPRESSED, ENCRYPTED_COMPRESSED_SIGNED;
-    }
-
-    /**
-     * Proxy enum for
-     * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code>
-     * enum.
-     */
-    public static enum AS2CompressionAlgorithm {
-        ZLIB;
-    }
-
-    /**
-     * Proxy enum for
-     * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code>
-     * enum.
-     */
-    public static enum AS2EncryptionAlgorithm {
-        AES128_CBC, AES192_CBC, AES256_CBC, AES128_CCM, AES192_CCM, AES256_CCM, AES128_GCM, AES192_GCM, AES256_GCM, CAMELLIA128_CBC, CAMELLIA192_CBC, CAMELLIA256_CBC, CAST5_CBC, DES_CBC, DES_EDE3_CBC, GOST28147_GCFB, IDEA_CBC, RC2_CBC, RC4, SEED_CBC;
-    }
-
-    /**
-     * Proxy enum for
-     * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
-     * enum.
-     */
-    public static enum AS2SignatureAlgorithm {
-        SHA3_224WITHRSA, SHA3_256WITHRSA, SHA3_384withRSA, SHA3_512WITHRSA, MD5WITHRSA, SHA1WITHRSA, MD2WITHRSA, SHA224WITHRSA, SHA256WITHRSA, SHA384WITHRSA, SHA512WITHRSA, RIPEMD128WITHRSA, RIPEMD160WITHRSA, RIPEMD256WITHRSA, SHA224WITHDSA, SHA256WITHDSA, SHA384WITHDSA, SHA512WITHDSA, SHA3_224WITHDSA, SHA3_256WITHDSA, SHA3_384WITHDSA, SHA3_512WITHDSA, SHA1WITHDSA, SHA3_224WITHECDSA, SHA3_256WITHECDSA, SHA3_384WITHECDSA, SHA3_512WITHECDSA, SHA1WITHECDSA, SHA224WITHECDSA, SHA256WITHECDSA, [...]
-    }
-    /**
-     * Component used for transferring data secure and reliable over the
-     * internet using the AS2 protocol. Creates a builder to build a consumer
-     * endpoint for the AS2 component.
-     */
-    public default AS2ConsumerBuilder fromAS2(String path) {
-        return new AS2ConsumerBuilder(path);
-    }
-    /**
-     * Component used for transferring data secure and reliable over the
-     * internet using the AS2 protocol. Creates a builder to build a producer
-     * endpoint for the AS2 component.
-     */
-    public default AS2ProducerBuilder toAS2(String path) {
-        return new AS2ProducerBuilder(path);
-    }
-}
\ No newline at end of file
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilderFactory.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilderFactory.java
new file mode 100644
index 0000000..5c452af
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilderFactory.java
@@ -0,0 +1,1700 @@
+/*
+ * 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.model.endpoint;
+
+import java.security.PrivateKey;
+import java.security.cert.Certificate;
+import javax.annotation.Generated;
+import org.apache.camel.ExchangePattern;
+import org.apache.camel.model.AbstractEndpointBuilder;
+import org.apache.camel.model.EndpointConsumerBuilder;
+import org.apache.camel.model.EndpointProducerBuilder;
+import org.apache.camel.spi.ExceptionHandler;
+
+/**
+ * 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.EndpointDslMojo")
+public interface AS2EndpointBuilderFactory {
+
+
+    /**
+     * Builder for endpoint consumers for the AS2 component.
+     */
+    public interface AS2EndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        public default AdvancedAS2EndpointConsumerBuilder advanced() {
+            return (AdvancedAS2EndpointConsumerBuilder) this;
+        }
+        /**
+         * What kind of operation to perform.
+         * The option is a
+         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder apiName(AS2ApiName apiName) {
+            setProperty("apiName", apiName);
+            return this;
+        }
+        /**
+         * What kind of operation to perform.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder apiName(String apiName) {
+            setProperty("apiName", apiName);
+            return this;
+        }
+        /**
+         * What sub operation to use for the selected operation.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder methodName(String methodName) {
+            setProperty("methodName", methodName);
+            return this;
+        }
+        /**
+         * The value of the AS2From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder as2From(String as2From) {
+            setProperty("as2From", as2From);
+            return this;
+        }
+        /**
+         * The structure of AS2 Message. One of: PLAIN - No encryption, no
+         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder as2MessageStructure(
+                AS2MessageStructure as2MessageStructure) {
+            setProperty("as2MessageStructure", as2MessageStructure);
+            return this;
+        }
+        /**
+         * The structure of AS2 Message. One of: PLAIN - No encryption, no
+         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder as2MessageStructure(
+                String as2MessageStructure) {
+            setProperty("as2MessageStructure", as2MessageStructure);
+            return this;
+        }
+        /**
+         * The value of the AS2To header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder as2To(String as2To) {
+            setProperty("as2To", as2To);
+            return this;
+        }
+        /**
+         * The version of the AS2 protocol.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder as2Version(String as2Version) {
+            setProperty("as2Version", as2Version);
+            return this;
+        }
+        /**
+         * The Client Fully Qualified Domain Name (FQDN). Used in message ids
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder clientFqdn(String clientFqdn) {
+            setProperty("clientFqdn", clientFqdn);
+            return this;
+        }
+        /**
+         * The algorithm used to compress EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder compressionAlgorithm(
+                AS2CompressionAlgorithm compressionAlgorithm) {
+            setProperty("compressionAlgorithm", compressionAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to compress EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder compressionAlgorithm(
+                String compressionAlgorithm) {
+            setProperty("compressionAlgorithm", compressionAlgorithm);
+            return this;
+        }
+        /**
+         * The key used to encrypt the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder decryptingPrivateKey(
+                PrivateKey decryptingPrivateKey) {
+            setProperty("decryptingPrivateKey", decryptingPrivateKey);
+            return this;
+        }
+        /**
+         * The key used to encrypt the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder decryptingPrivateKey(
+                String decryptingPrivateKey) {
+            setProperty("decryptingPrivateKey", decryptingPrivateKey);
+            return this;
+        }
+        /**
+         * The value of the Disposition-Notification-To header. Assigning a
+         * value to this parameter requests a message disposition notification
+         * (MDN) for the AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder dispositionNotificationTo(
+                String dispositionNotificationTo) {
+            setProperty("dispositionNotificationTo", dispositionNotificationTo);
+            return this;
+        }
+        /**
+         * The transfer encoding of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder ediMessageTransferEncoding(
+                String ediMessageTransferEncoding) {
+            setProperty("ediMessageTransferEncoding", ediMessageTransferEncoding);
+            return this;
+        }
+        /**
+         * The content type of EDI message. One of application/edifact,
+         * application/edi-x12, application/edi-consent.
+         * The option is a <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder ediMessageType(
+                Object ediMessageType) {
+            setProperty("ediMessageType", ediMessageType);
+            return this;
+        }
+        /**
+         * The content type of EDI message. One of application/edifact,
+         * application/edi-x12, application/edi-consent.
+         * The option will be converted to a
+         * <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder ediMessageType(
+                String ediMessageType) {
+            setProperty("ediMessageType", ediMessageType);
+            return this;
+        }
+        /**
+         * The algorithm used to encrypt EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder encryptingAlgorithm(
+                AS2EncryptionAlgorithm encryptingAlgorithm) {
+            setProperty("encryptingAlgorithm", encryptingAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to encrypt EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder encryptingAlgorithm(
+                String encryptingAlgorithm) {
+            setProperty("encryptingAlgorithm", encryptingAlgorithm);
+            return this;
+        }
+        /**
+         * The chain of certificates used to encrypt EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder encryptingCertificateChain(
+                Certificate[] encryptingCertificateChain) {
+            setProperty("encryptingCertificateChain", encryptingCertificateChain);
+            return this;
+        }
+        /**
+         * The chain of certificates used to encrypt EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder encryptingCertificateChain(
+                String encryptingCertificateChain) {
+            setProperty("encryptingCertificateChain", encryptingCertificateChain);
+            return this;
+        }
+        /**
+         * The value of the From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder from(String from) {
+            setProperty("from", from);
+            return this;
+        }
+        /**
+         * Sets the name of a parameter to be passed in the exchange In Body.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder inBody(String inBody) {
+            setProperty("inBody", inBody);
+            return this;
+        }
+        /**
+         * The template used to format MDN message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder mdnMessageTemplate(
+                String mdnMessageTemplate) {
+            setProperty("mdnMessageTemplate", mdnMessageTemplate);
+            return this;
+        }
+        /**
+         * The request URI of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder requestUri(String requestUri) {
+            setProperty("requestUri", requestUri);
+            return this;
+        }
+        /**
+         * The value included in the Server message header identifying the AS2
+         * Server.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder server(String server) {
+            setProperty("server", server);
+            return this;
+        }
+        /**
+         * The Server Fully Qualified Domain Name (FQDN). Used in message ids
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder serverFqdn(String serverFqdn) {
+            setProperty("serverFqdn", serverFqdn);
+            return this;
+        }
+        /**
+         * The port number of server.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder serverPortNumber(
+                Integer serverPortNumber) {
+            setProperty("serverPortNumber", serverPortNumber);
+            return this;
+        }
+        /**
+         * The port number of server.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder serverPortNumber(
+                String serverPortNumber) {
+            setProperty("serverPortNumber", serverPortNumber);
+            return this;
+        }
+        /**
+         * The list of algorithms, in order of preference, requested to generate
+         * a message integrity check (MIC) returned in message dispostion
+         * notification (MDN).
+         * The option is a <code>java.lang.String[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signedReceiptMicAlgorithms(
+                String[] signedReceiptMicAlgorithms) {
+            setProperty("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
+            return this;
+        }
+        /**
+         * The list of algorithms, in order of preference, requested to generate
+         * a message integrity check (MIC) returned in message dispostion
+         * notification (MDN).
+         * The option will be converted to a <code>java.lang.String[]</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signedReceiptMicAlgorithms(
+                String signedReceiptMicAlgorithms) {
+            setProperty("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
+            return this;
+        }
+        /**
+         * The algorithm used to sign EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signingAlgorithm(
+                AS2SignatureAlgorithm signingAlgorithm) {
+            setProperty("signingAlgorithm", signingAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to sign EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signingAlgorithm(
+                String signingAlgorithm) {
+            setProperty("signingAlgorithm", signingAlgorithm);
+            return this;
+        }
+        /**
+         * The chain of certificates used to sign EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signingCertificateChain(
+                Certificate[] signingCertificateChain) {
+            setProperty("signingCertificateChain", signingCertificateChain);
+            return this;
+        }
+        /**
+         * The chain of certificates used to sign EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signingCertificateChain(
+                String signingCertificateChain) {
+            setProperty("signingCertificateChain", signingCertificateChain);
+            return this;
+        }
+        /**
+         * The key used to sign the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signingPrivateKey(
+                PrivateKey signingPrivateKey) {
+            setProperty("signingPrivateKey", signingPrivateKey);
+            return this;
+        }
+        /**
+         * The key used to sign the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder signingPrivateKey(
+                String signingPrivateKey) {
+            setProperty("signingPrivateKey", signingPrivateKey);
+            return this;
+        }
+        /**
+         * The value of Subject header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder subject(String subject) {
+            setProperty("subject", subject);
+            return this;
+        }
+        /**
+         * The host name (IP or DNS name) of target host.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder targetHostname(
+                String targetHostname) {
+            setProperty("targetHostname", targetHostname);
+            return this;
+        }
+        /**
+         * The port number of target host. -1 indicates the scheme default port.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder targetPortNumber(
+                Integer targetPortNumber) {
+            setProperty("targetPortNumber", targetPortNumber);
+            return this;
+        }
+        /**
+         * The port number of target host. -1 indicates the scheme default port.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder targetPortNumber(
+                String targetPortNumber) {
+            setProperty("targetPortNumber", targetPortNumber);
+            return this;
+        }
+        /**
+         * The value included in the User-Agent message header identifying the
+         * AS2 user agent.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointConsumerBuilder userAgent(String userAgent) {
+            setProperty("userAgent", userAgent);
+            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.
+         * @group consumer
+         */
+        public default AS2EndpointConsumerBuilder bridgeErrorHandler(
+                boolean bridgeErrorHandler) {
+            setProperty("bridgeErrorHandler", bridgeErrorHandler);
+            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 will be converted to a <code>boolean</code> type.
+         * @group consumer
+         */
+        public default AS2EndpointConsumerBuilder bridgeErrorHandler(
+                String bridgeErrorHandler) {
+            setProperty("bridgeErrorHandler", bridgeErrorHandler);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint consumers for the AS2 component.
+     */
+    public interface AdvancedAS2EndpointConsumerBuilder
+            extends
+                EndpointConsumerBuilder {
+        public default AS2EndpointConsumerBuilder basic() {
+            return (AS2EndpointConsumerBuilder) this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAS2EndpointConsumerBuilder exceptionHandler(
+                ExceptionHandler exceptionHandler) {
+            setProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * To let the consumer use a custom ExceptionHandler. Notice if the
+         * option bridgeErrorHandler is enabled then this option is not in use.
+         * By default the consumer will deal with exceptions, that will be
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAS2EndpointConsumerBuilder exceptionHandler(
+                String exceptionHandler) {
+            setProperty("exceptionHandler", exceptionHandler);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAS2EndpointConsumerBuilder exchangePattern(
+                ExchangePattern exchangePattern) {
+            setProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
+         * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
+         */
+        public default AdvancedAS2EndpointConsumerBuilder exchangePattern(
+                String exchangePattern) {
+            setProperty("exchangePattern", exchangePattern);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointConsumerBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointConsumerBuilder basicPropertyBinding(
+                String basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointConsumerBuilder synchronous(
+                boolean synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointConsumerBuilder synchronous(
+                String synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint producers for the AS2 component.
+     */
+    public static interface AS2EndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        public default AdvancedAS2EndpointProducerBuilder advanced() {
+            return (AdvancedAS2EndpointProducerBuilder) this;
+        }
+        /**
+         * What kind of operation to perform.
+         * The option is a
+         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder apiName(AS2ApiName apiName) {
+            setProperty("apiName", apiName);
+            return this;
+        }
+        /**
+         * What kind of operation to perform.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder apiName(String apiName) {
+            setProperty("apiName", apiName);
+            return this;
+        }
+        /**
+         * What sub operation to use for the selected operation.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder methodName(String methodName) {
+            setProperty("methodName", methodName);
+            return this;
+        }
+        /**
+         * The value of the AS2From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder as2From(String as2From) {
+            setProperty("as2From", as2From);
+            return this;
+        }
+        /**
+         * The structure of AS2 Message. One of: PLAIN - No encryption, no
+         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder as2MessageStructure(
+                AS2MessageStructure as2MessageStructure) {
+            setProperty("as2MessageStructure", as2MessageStructure);
+            return this;
+        }
+        /**
+         * The structure of AS2 Message. One of: PLAIN - No encryption, no
+         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder as2MessageStructure(
+                String as2MessageStructure) {
+            setProperty("as2MessageStructure", as2MessageStructure);
+            return this;
+        }
+        /**
+         * The value of the AS2To header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder as2To(String as2To) {
+            setProperty("as2To", as2To);
+            return this;
+        }
+        /**
+         * The version of the AS2 protocol.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder as2Version(String as2Version) {
+            setProperty("as2Version", as2Version);
+            return this;
+        }
+        /**
+         * The Client Fully Qualified Domain Name (FQDN). Used in message ids
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder clientFqdn(String clientFqdn) {
+            setProperty("clientFqdn", clientFqdn);
+            return this;
+        }
+        /**
+         * The algorithm used to compress EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder compressionAlgorithm(
+                AS2CompressionAlgorithm compressionAlgorithm) {
+            setProperty("compressionAlgorithm", compressionAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to compress EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder compressionAlgorithm(
+                String compressionAlgorithm) {
+            setProperty("compressionAlgorithm", compressionAlgorithm);
+            return this;
+        }
+        /**
+         * The key used to encrypt the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder decryptingPrivateKey(
+                PrivateKey decryptingPrivateKey) {
+            setProperty("decryptingPrivateKey", decryptingPrivateKey);
+            return this;
+        }
+        /**
+         * The key used to encrypt the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder decryptingPrivateKey(
+                String decryptingPrivateKey) {
+            setProperty("decryptingPrivateKey", decryptingPrivateKey);
+            return this;
+        }
+        /**
+         * The value of the Disposition-Notification-To header. Assigning a
+         * value to this parameter requests a message disposition notification
+         * (MDN) for the AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder dispositionNotificationTo(
+                String dispositionNotificationTo) {
+            setProperty("dispositionNotificationTo", dispositionNotificationTo);
+            return this;
+        }
+        /**
+         * The transfer encoding of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder ediMessageTransferEncoding(
+                String ediMessageTransferEncoding) {
+            setProperty("ediMessageTransferEncoding", ediMessageTransferEncoding);
+            return this;
+        }
+        /**
+         * The content type of EDI message. One of application/edifact,
+         * application/edi-x12, application/edi-consent.
+         * The option is a <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder ediMessageType(
+                Object ediMessageType) {
+            setProperty("ediMessageType", ediMessageType);
+            return this;
+        }
+        /**
+         * The content type of EDI message. One of application/edifact,
+         * application/edi-x12, application/edi-consent.
+         * The option will be converted to a
+         * <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder ediMessageType(
+                String ediMessageType) {
+            setProperty("ediMessageType", ediMessageType);
+            return this;
+        }
+        /**
+         * The algorithm used to encrypt EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder encryptingAlgorithm(
+                AS2EncryptionAlgorithm encryptingAlgorithm) {
+            setProperty("encryptingAlgorithm", encryptingAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to encrypt EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder encryptingAlgorithm(
+                String encryptingAlgorithm) {
+            setProperty("encryptingAlgorithm", encryptingAlgorithm);
+            return this;
+        }
+        /**
+         * The chain of certificates used to encrypt EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder encryptingCertificateChain(
+                Certificate[] encryptingCertificateChain) {
+            setProperty("encryptingCertificateChain", encryptingCertificateChain);
+            return this;
+        }
+        /**
+         * The chain of certificates used to encrypt EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder encryptingCertificateChain(
+                String encryptingCertificateChain) {
+            setProperty("encryptingCertificateChain", encryptingCertificateChain);
+            return this;
+        }
+        /**
+         * The value of the From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder from(String from) {
+            setProperty("from", from);
+            return this;
+        }
+        /**
+         * Sets the name of a parameter to be passed in the exchange In Body.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder inBody(String inBody) {
+            setProperty("inBody", inBody);
+            return this;
+        }
+        /**
+         * The template used to format MDN message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder mdnMessageTemplate(
+                String mdnMessageTemplate) {
+            setProperty("mdnMessageTemplate", mdnMessageTemplate);
+            return this;
+        }
+        /**
+         * The request URI of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder requestUri(String requestUri) {
+            setProperty("requestUri", requestUri);
+            return this;
+        }
+        /**
+         * The value included in the Server message header identifying the AS2
+         * Server.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder server(String server) {
+            setProperty("server", server);
+            return this;
+        }
+        /**
+         * The Server Fully Qualified Domain Name (FQDN). Used in message ids
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder serverFqdn(String serverFqdn) {
+            setProperty("serverFqdn", serverFqdn);
+            return this;
+        }
+        /**
+         * The port number of server.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder serverPortNumber(
+                Integer serverPortNumber) {
+            setProperty("serverPortNumber", serverPortNumber);
+            return this;
+        }
+        /**
+         * The port number of server.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder serverPortNumber(
+                String serverPortNumber) {
+            setProperty("serverPortNumber", serverPortNumber);
+            return this;
+        }
+        /**
+         * The list of algorithms, in order of preference, requested to generate
+         * a message integrity check (MIC) returned in message dispostion
+         * notification (MDN).
+         * The option is a <code>java.lang.String[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signedReceiptMicAlgorithms(
+                String[] signedReceiptMicAlgorithms) {
+            setProperty("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
+            return this;
+        }
+        /**
+         * The list of algorithms, in order of preference, requested to generate
+         * a message integrity check (MIC) returned in message dispostion
+         * notification (MDN).
+         * The option will be converted to a <code>java.lang.String[]</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signedReceiptMicAlgorithms(
+                String signedReceiptMicAlgorithms) {
+            setProperty("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
+            return this;
+        }
+        /**
+         * The algorithm used to sign EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signingAlgorithm(
+                AS2SignatureAlgorithm signingAlgorithm) {
+            setProperty("signingAlgorithm", signingAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to sign EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signingAlgorithm(
+                String signingAlgorithm) {
+            setProperty("signingAlgorithm", signingAlgorithm);
+            return this;
+        }
+        /**
+         * The chain of certificates used to sign EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signingCertificateChain(
+                Certificate[] signingCertificateChain) {
+            setProperty("signingCertificateChain", signingCertificateChain);
+            return this;
+        }
+        /**
+         * The chain of certificates used to sign EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signingCertificateChain(
+                String signingCertificateChain) {
+            setProperty("signingCertificateChain", signingCertificateChain);
+            return this;
+        }
+        /**
+         * The key used to sign the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signingPrivateKey(
+                PrivateKey signingPrivateKey) {
+            setProperty("signingPrivateKey", signingPrivateKey);
+            return this;
+        }
+        /**
+         * The key used to sign the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder signingPrivateKey(
+                String signingPrivateKey) {
+            setProperty("signingPrivateKey", signingPrivateKey);
+            return this;
+        }
+        /**
+         * The value of Subject header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder subject(String subject) {
+            setProperty("subject", subject);
+            return this;
+        }
+        /**
+         * The host name (IP or DNS name) of target host.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder targetHostname(
+                String targetHostname) {
+            setProperty("targetHostname", targetHostname);
+            return this;
+        }
+        /**
+         * The port number of target host. -1 indicates the scheme default port.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder targetPortNumber(
+                Integer targetPortNumber) {
+            setProperty("targetPortNumber", targetPortNumber);
+            return this;
+        }
+        /**
+         * The port number of target host. -1 indicates the scheme default port.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder targetPortNumber(
+                String targetPortNumber) {
+            setProperty("targetPortNumber", targetPortNumber);
+            return this;
+        }
+        /**
+         * The value included in the User-Agent message header identifying the
+         * AS2 user agent.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointProducerBuilder userAgent(String userAgent) {
+            setProperty("userAgent", userAgent);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint producers for the AS2 component.
+     */
+    public interface AdvancedAS2EndpointProducerBuilder
+            extends
+                EndpointProducerBuilder {
+        public default AS2EndpointProducerBuilder basic() {
+            return (AS2EndpointProducerBuilder) this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointProducerBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointProducerBuilder basicPropertyBinding(
+                String basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointProducerBuilder synchronous(
+                boolean synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointProducerBuilder synchronous(
+                String synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+    }
+
+    /**
+     * Builder for endpoint for the AS2 component.
+     */
+    public static interface AS2EndpointBuilder
+            extends
+                AS2EndpointConsumerBuilder, AS2EndpointProducerBuilder {
+        public default AdvancedAS2EndpointBuilder advanced() {
+            return (AdvancedAS2EndpointBuilder) this;
+        }
+        /**
+         * What kind of operation to perform.
+         * The option is a
+         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder apiName(AS2ApiName apiName) {
+            setProperty("apiName", apiName);
+            return this;
+        }
+        /**
+         * What kind of operation to perform.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder apiName(String apiName) {
+            setProperty("apiName", apiName);
+            return this;
+        }
+        /**
+         * What sub operation to use for the selected operation.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder methodName(String methodName) {
+            setProperty("methodName", methodName);
+            return this;
+        }
+        /**
+         * The value of the AS2From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder as2From(String as2From) {
+            setProperty("as2From", as2From);
+            return this;
+        }
+        /**
+         * The structure of AS2 Message. One of: PLAIN - No encryption, no
+         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointBuilder as2MessageStructure(
+                AS2MessageStructure as2MessageStructure) {
+            setProperty("as2MessageStructure", as2MessageStructure);
+            return this;
+        }
+        /**
+         * The structure of AS2 Message. One of: PLAIN - No encryption, no
+         * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointBuilder as2MessageStructure(
+                String as2MessageStructure) {
+            setProperty("as2MessageStructure", as2MessageStructure);
+            return this;
+        }
+        /**
+         * The value of the AS2To header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder as2To(String as2To) {
+            setProperty("as2To", as2To);
+            return this;
+        }
+        /**
+         * The version of the AS2 protocol.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder as2Version(String as2Version) {
+            setProperty("as2Version", as2Version);
+            return this;
+        }
+        /**
+         * The Client Fully Qualified Domain Name (FQDN). Used in message ids
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder clientFqdn(String clientFqdn) {
+            setProperty("clientFqdn", clientFqdn);
+            return this;
+        }
+        /**
+         * The algorithm used to compress EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder compressionAlgorithm(
+                AS2CompressionAlgorithm compressionAlgorithm) {
+            setProperty("compressionAlgorithm", compressionAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to compress EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder compressionAlgorithm(
+                String compressionAlgorithm) {
+            setProperty("compressionAlgorithm", compressionAlgorithm);
+            return this;
+        }
+        /**
+         * The key used to encrypt the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder decryptingPrivateKey(
+                PrivateKey decryptingPrivateKey) {
+            setProperty("decryptingPrivateKey", decryptingPrivateKey);
+            return this;
+        }
+        /**
+         * The key used to encrypt the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder decryptingPrivateKey(
+                String decryptingPrivateKey) {
+            setProperty("decryptingPrivateKey", decryptingPrivateKey);
+            return this;
+        }
+        /**
+         * The value of the Disposition-Notification-To header. Assigning a
+         * value to this parameter requests a message disposition notification
+         * (MDN) for the AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder dispositionNotificationTo(
+                String dispositionNotificationTo) {
+            setProperty("dispositionNotificationTo", dispositionNotificationTo);
+            return this;
+        }
+        /**
+         * The transfer encoding of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder ediMessageTransferEncoding(
+                String ediMessageTransferEncoding) {
+            setProperty("ediMessageTransferEncoding", ediMessageTransferEncoding);
+            return this;
+        }
+        /**
+         * The content type of EDI message. One of application/edifact,
+         * application/edi-x12, application/edi-consent.
+         * The option is a <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder ediMessageType(Object ediMessageType) {
+            setProperty("ediMessageType", ediMessageType);
+            return this;
+        }
+        /**
+         * The content type of EDI message. One of application/edifact,
+         * application/edi-x12, application/edi-consent.
+         * The option will be converted to a
+         * <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder ediMessageType(String ediMessageType) {
+            setProperty("ediMessageType", ediMessageType);
+            return this;
+        }
+        /**
+         * The algorithm used to encrypt EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder encryptingAlgorithm(
+                AS2EncryptionAlgorithm encryptingAlgorithm) {
+            setProperty("encryptingAlgorithm", encryptingAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to encrypt EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder encryptingAlgorithm(
+                String encryptingAlgorithm) {
+            setProperty("encryptingAlgorithm", encryptingAlgorithm);
+            return this;
+        }
+        /**
+         * The chain of certificates used to encrypt EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder encryptingCertificateChain(
+                Certificate[] encryptingCertificateChain) {
+            setProperty("encryptingCertificateChain", encryptingCertificateChain);
+            return this;
+        }
+        /**
+         * The chain of certificates used to encrypt EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder encryptingCertificateChain(
+                String encryptingCertificateChain) {
+            setProperty("encryptingCertificateChain", encryptingCertificateChain);
+            return this;
+        }
+        /**
+         * The value of the From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder from(String from) {
+            setProperty("from", from);
+            return this;
+        }
+        /**
+         * Sets the name of a parameter to be passed in the exchange In Body.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder inBody(String inBody) {
+            setProperty("inBody", inBody);
+            return this;
+        }
+        /**
+         * The template used to format MDN message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder mdnMessageTemplate(
+                String mdnMessageTemplate) {
+            setProperty("mdnMessageTemplate", mdnMessageTemplate);
+            return this;
+        }
+        /**
+         * The request URI of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder requestUri(String requestUri) {
+            setProperty("requestUri", requestUri);
+            return this;
+        }
+        /**
+         * The value included in the Server message header identifying the AS2
+         * Server.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder server(String server) {
+            setProperty("server", server);
+            return this;
+        }
+        /**
+         * The Server Fully Qualified Domain Name (FQDN). Used in message ids
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder serverFqdn(String serverFqdn) {
+            setProperty("serverFqdn", serverFqdn);
+            return this;
+        }
+        /**
+         * The port number of server.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder serverPortNumber(
+                Integer serverPortNumber) {
+            setProperty("serverPortNumber", serverPortNumber);
+            return this;
+        }
+        /**
+         * The port number of server.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointBuilder serverPortNumber(
+                String serverPortNumber) {
+            setProperty("serverPortNumber", serverPortNumber);
+            return this;
+        }
+        /**
+         * The list of algorithms, in order of preference, requested to generate
+         * a message integrity check (MIC) returned in message dispostion
+         * notification (MDN).
+         * The option is a <code>java.lang.String[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signedReceiptMicAlgorithms(
+                String[] signedReceiptMicAlgorithms) {
+            setProperty("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
+            return this;
+        }
+        /**
+         * The list of algorithms, in order of preference, requested to generate
+         * a message integrity check (MIC) returned in message dispostion
+         * notification (MDN).
+         * The option will be converted to a <code>java.lang.String[]</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signedReceiptMicAlgorithms(
+                String signedReceiptMicAlgorithms) {
+            setProperty("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
+            return this;
+        }
+        /**
+         * The algorithm used to sign EDI message.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signingAlgorithm(
+                AS2SignatureAlgorithm signingAlgorithm) {
+            setProperty("signingAlgorithm", signingAlgorithm);
+            return this;
+        }
+        /**
+         * The algorithm used to sign EDI message.
+         * The option will be converted to a
+         * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signingAlgorithm(
+                String signingAlgorithm) {
+            setProperty("signingAlgorithm", signingAlgorithm);
+            return this;
+        }
+        /**
+         * The chain of certificates used to sign EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signingCertificateChain(
+                Certificate[] signingCertificateChain) {
+            setProperty("signingCertificateChain", signingCertificateChain);
+            return this;
+        }
+        /**
+         * The chain of certificates used to sign EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signingCertificateChain(
+                String signingCertificateChain) {
+            setProperty("signingCertificateChain", signingCertificateChain);
+            return this;
+        }
+        /**
+         * The key used to sign the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signingPrivateKey(
+                PrivateKey signingPrivateKey) {
+            setProperty("signingPrivateKey", signingPrivateKey);
+            return this;
+        }
+        /**
+         * The key used to sign the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder signingPrivateKey(
+                String signingPrivateKey) {
+            setProperty("signingPrivateKey", signingPrivateKey);
+            return this;
+        }
+        /**
+         * The value of Subject header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder subject(String subject) {
+            setProperty("subject", subject);
+            return this;
+        }
+        /**
+         * The host name (IP or DNS name) of target host.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder targetHostname(String targetHostname) {
+            setProperty("targetHostname", targetHostname);
+            return this;
+        }
+        /**
+         * The port number of target host. -1 indicates the scheme default port.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder targetPortNumber(
+                Integer targetPortNumber) {
+            setProperty("targetPortNumber", targetPortNumber);
+            return this;
+        }
+        /**
+         * The port number of target host. -1 indicates the scheme default port.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group common
+         */
+        public default AS2EndpointBuilder targetPortNumber(
+                String targetPortNumber) {
+            setProperty("targetPortNumber", targetPortNumber);
+            return this;
+        }
+        /**
+         * The value included in the User-Agent message header identifying the
+         * AS2 user agent.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
+         */
+        public default AS2EndpointBuilder userAgent(String userAgent) {
+            setProperty("userAgent", userAgent);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the AS2 component.
+     */
+    public static interface AdvancedAS2EndpointBuilder
+            extends
+                AdvancedAS2EndpointConsumerBuilder, AdvancedAS2EndpointProducerBuilder {
+        public default AS2EndpointBuilder basic() {
+            return (AS2EndpointBuilder) this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointBuilder basicPropertyBinding(
+                String basicPropertyBinding) {
+            setProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointBuilder synchronous(
+                boolean synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
+         */
+        public default AdvancedAS2EndpointBuilder synchronous(String synchronous) {
+            setProperty("synchronous", synchronous);
+            return this;
+        }
+    }
+
+    /**
+     * Proxy enum for
+     * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> enum.
+     */
+    public static enum AS2ApiName {
+        CLIENT, SERVER;
+    }
+
+    /**
+     * Proxy enum for
+     * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code> enum.
+     */
+    public static enum AS2MessageStructure {
+        PLAIN, SIGNED, ENCRYPTED, SIGNED_ENCRYPTED, PLAIN_COMPRESSED, SIGNED_COMPRESSED, ENCRYPTED_COMPRESSED, ENCRYPTED_COMPRESSED_SIGNED;
+    }
+
+    /**
+     * Proxy enum for
+     * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code>
+     * enum.
+     */
+    public static enum AS2CompressionAlgorithm {
+        ZLIB;
+    }
+
+    /**
+     * Proxy enum for
+     * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code>
+     * enum.
+     */
+    public static enum AS2EncryptionAlgorithm {
+        AES128_CBC, AES192_CBC, AES256_CBC, AES128_CCM, AES192_CCM, AES256_CCM, AES128_GCM, AES192_GCM, AES256_GCM, CAMELLIA128_CBC, CAMELLIA192_CBC, CAMELLIA256_CBC, CAST5_CBC, DES_CBC, DES_EDE3_CBC, GOST28147_GCFB, IDEA_CBC, RC2_CBC, RC4, SEED_CBC;
+    }
+
+    /**
+     * Proxy enum for
+     * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
+     * enum.
+     */
+    public static enum AS2SignatureAlgorithm {
+        SHA3_224WITHRSA, SHA3_256WITHRSA, SHA3_384withRSA, SHA3_512WITHRSA, MD5WITHRSA, SHA1WITHRSA, MD2WITHRSA, SHA224WITHRSA, SHA256WITHRSA, SHA384WITHRSA, SHA512WITHRSA, RIPEMD128WITHRSA, RIPEMD160WITHRSA, RIPEMD256WITHRSA, SHA224WITHDSA, SHA256WITHDSA, SHA384WITHDSA, SHA512WITHDSA, SHA3_224WITHDSA, SHA3_256WITHDSA, SHA3_384WITHDSA, SHA3_512WITHDSA, SHA1WITHDSA, SHA3_224WITHECDSA, SHA3_256WITHECDSA, SHA3_384WITHECDSA, SHA3_512WITHECDSA, SHA1WITHECDSA, SHA224WITHECDSA, SHA256WITHECDSA, [...]
+    }
+    /**
+     * Component used for transferring data secure and reliable over the
+     * internet using the AS2 protocol. Creates a builder to build endpoints for
+     * the AS2 component.
+     */
+    public default AS2EndpointBuilder aS2(String path) {
+        class AS2EndpointBuilderImpl extends AbstractEndpointBuilder implements AS2EndpointBuilder, AdvancedAS2EndpointBuilder {
+            public AS2EndpointBuilderImpl(String path) {
+                super("as2", path);
+            }
+        }
+        return new AS2EndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java
deleted file mode 100644
index 03169dd..0000000
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java
+++ /dev/null
@@ -1,2347 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.model.endpoint;
-
-import javax.annotation.Generated;
-import org.apache.camel.ExchangePattern;
-import org.apache.camel.LoggingLevel;
-import org.apache.camel.model.AbstractEndpointBuilder;
-import org.apache.camel.model.EndpointConsumerBuilder;
-import org.apache.camel.model.EndpointProducerBuilder;
-import org.apache.camel.spi.ExceptionHandler;
-import org.apache.camel.spi.HeaderFilterStrategy;
-
-/**
- * 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.EndpointDslMojo")
-public interface ActiveMQEndpointBuilder {
-
-
-    /**
-     * Base class for the ActiveMQ component builders.
-     */
-    public static class ActiveMQCommonBuilder<T extends AbstractEndpointBuilder>
-            extends
-                AbstractEndpointBuilder<T> {
-        ActiveMQCommonBuilder(String path) {
-            super("activemq", path);
-        }
-        /**
-         * The kind of destination to use.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T destinationType(String destinationType) {
-            this.properties.put("destinationType", destinationType);
-            return (T) this;
-        }
-        /**
-         * Name of the queue or topic to use as destination.
-         * The option is a <code>java.lang.String</code> type.
-         * @group common
-         */
-        public T destinationName(String destinationName) {
-            this.properties.put("destinationName", destinationName);
-            return (T) this;
-        }
-        /**
-         * Sets the JMS client ID to use. Note that this value, if specified,
... 363363 lines suppressed ...


[camel] 01/02: Add the property's group in the javadoc

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

gnodet pushed a commit to branch endpoint-dsl
in repository https://gitbox.apache.org/repos/asf/camel.git

commit d4b20c3c9ea1fbe4f08508aaaec76866d0decd37
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed Jun 12 15:57:24 2019 +0200

    Add the property's group in the javadoc
---
 .../camel/model/endpoint/AMQPEndpointBuilder.java  |  750 +++++++++-----
 .../camel/model/endpoint/AS2EndpointBuilder.java   |  249 +++--
 .../model/endpoint/ActiveMQEndpointBuilder.java    |  750 +++++++++-----
 .../camel/model/endpoint/AhcEndpointBuilder.java   |  146 ++-
 .../camel/model/endpoint/ApnsEndpointBuilder.java  |  208 ++--
 .../model/endpoint/AsteriskEndpointBuilder.java    |   76 +-
 .../camel/model/endpoint/AtmosEndpointBuilder.java |  107 +-
 .../AtmosphereWebsocketEndpointBuilder.java        |  233 +++--
 .../camel/model/endpoint/AtomEndpointBuilder.java  |  274 +++--
 .../model/endpoint/AtomixMapEndpointBuilder.java   |  182 ++--
 .../endpoint/AtomixMessagingEndpointBuilder.java   |  181 ++--
 .../endpoint/AtomixMultiMapEndpointBuilder.java    |  182 ++--
 .../model/endpoint/AtomixQueueEndpointBuilder.java |  163 +--
 .../model/endpoint/AtomixSetEndpointBuilder.java   |  172 ++--
 .../model/endpoint/AtomixValueEndpointBuilder.java |  172 ++--
 .../camel/model/endpoint/AvroEndpointBuilder.java  |  122 ++-
 .../camel/model/endpoint/BeanEndpointBuilder.java  |   54 +-
 .../endpoint/BeanValidatorEndpointBuilder.java     |   72 +-
 .../model/endpoint/BeanstalkEndpointBuilder.java   |  272 +++--
 .../model/endpoint/BlobServiceEndpointBuilder.java |  181 ++--
 .../model/endpoint/BonitaEndpointBuilder.java      |   84 +-
 .../camel/model/endpoint/BoxEndpointBuilder.java   |  162 +--
 .../model/endpoint/BraintreeEndpointBuilder.java   |  127 ++-
 .../model/endpoint/BrowseEndpointBuilder.java      |   56 +-
 .../camel/model/endpoint/CMEndpointBuilder.java    |   55 +-
 .../camel/model/endpoint/CMISEndpointBuilder.java  |  123 ++-
 .../endpoint/CaffeineCacheEndpointBuilder.java     |  197 ++--
 .../endpoint/CaffeineLoadCacheEndpointBuilder.java |  197 ++--
 .../model/endpoint/CassandraEndpointBuilder.java   |  281 ++++--
 .../model/endpoint/ChatScriptEndpointBuilder.java  |   55 +-
 .../camel/model/endpoint/ChunkEndpointBuilder.java |   60 +-
 .../model/endpoint/CinderEndpointBuilder.java      |   69 +-
 .../camel/model/endpoint/ClassEndpointBuilder.java |   54 +-
 .../model/endpoint/ClientEndpointBuilder.java      |  190 ++--
 .../camel/model/endpoint/CoAPEndpointBuilder.java  |  122 ++-
 .../model/endpoint/CometdEndpointBuilder.java      |  160 +--
 .../model/endpoint/ConsulEndpointBuilder.java      |   55 +-
 .../model/endpoint/ControlBusEndpointBuilder.java  |   69 +-
 .../camel/model/endpoint/CordaEndpointBuilder.java |   59 +-
 .../model/endpoint/CouchDbEndpointBuilder.java     |  124 ++-
 .../model/endpoint/CouchbaseEndpointBuilder.java   |  438 +++++---
 .../model/endpoint/CryptoCmsEndpointBuilder.java   |  168 ++--
 .../camel/model/endpoint/CwEndpointBuilder.java    |   92 +-
 .../camel/model/endpoint/CxfEndpointBuilder.java   |  304 ++++--
 .../camel/model/endpoint/CxfRsEndpointBuilder.java |  290 ++++--
 .../model/endpoint/DataFormatEndpointBuilder.java  |   30 +-
 .../model/endpoint/DataSetEndpointBuilder.java     |  160 +--
 .../model/endpoint/DataSetTestEndpointBuilder.java |  135 ++-
 .../camel/model/endpoint/DdbEndpointBuilder.java   |  112 ++-
 .../model/endpoint/DdbStreamEndpointBuilder.java   |  276 ++++--
 .../endpoint/DigitalOceanEndpointBuilder.java      |  104 +-
 .../endpoint/DigitalSignatureEndpointBuilder.java  |  150 ++-
 .../model/endpoint/DirectEndpointBuilder.java      |   85 +-
 .../model/endpoint/DirectVmEndpointBuilder.java    |  103 +-
 .../model/endpoint/DisruptorEndpointBuilder.java   |  129 ++-
 .../model/endpoint/DisruptorVmEndpointBuilder.java |  129 ++-
 .../camel/model/endpoint/DnsEndpointBuilder.java   |   30 +-
 .../model/endpoint/DockerEndpointBuilder.java      |  183 ++--
 .../camel/model/endpoint/DozerEndpointBuilder.java |   54 +-
 .../camel/model/endpoint/DrillEndpointBuilder.java |   54 +-
 .../model/endpoint/DropboxEndpointBuilder.java     |  105 +-
 .../camel/model/endpoint/EC2EndpointBuilder.java   |   75 +-
 .../camel/model/endpoint/ECSEndpointBuilder.java   |   76 +-
 .../camel/model/endpoint/EKSEndpointBuilder.java   |   76 +-
 .../model/endpoint/EhcacheEndpointBuilder.java     |  176 ++--
 .../camel/model/endpoint/EjbEndpointBuilder.java   |   54 +-
 .../endpoint/ElasticsearchEndpointBuilder.java     |  114 ++-
 .../camel/model/endpoint/ElsqlEndpointBuilder.java |  423 +++++---
 .../camel/model/endpoint/EtcdEndpointBuilder.java  |  295 ++++--
 .../model/endpoint/EventAdminEndpointBuilder.java  |   65 +-
 .../camel/model/endpoint/EventEndpointBuilder.java |   55 +-
 .../camel/model/endpoint/ExecEndpointBuilder.java  |   69 +-
 .../model/endpoint/FacebookEndpointBuilder.java    |  735 +++++++++-----
 .../camel/model/endpoint/FhirEndpointBuilder.java  |  217 ++--
 .../camel/model/endpoint/FileEndpointBuilder.java  |  786 +++++++++------
 .../model/endpoint/FlatpackEndpointBuilder.java    |  269 +++--
 .../camel/model/endpoint/FlinkEndpointBuilder.java |   74 +-
 .../camel/model/endpoint/FopEndpointBuilder.java   |   42 +-
 .../model/endpoint/FreemarkerEndpointBuilder.java  |   59 +-
 .../camel/model/endpoint/FtpEndpointBuilder.java   |  946 ++++++++++++------
 .../camel/model/endpoint/FtpsEndpointBuilder.java  | 1047 +++++++++++++-------
 .../model/endpoint/GangliaEndpointBuilder.java     |  121 ++-
 .../model/endpoint/GeoCoderEndpointBuilder.java    |   95 +-
 .../camel/model/endpoint/GitEndpointBuilder.java   |  105 +-
 .../model/endpoint/GitHubEndpointBuilder.java      |   99 +-
 .../model/endpoint/GlanceEndpointBuilder.java      |   64 +-
 .../endpoint/GoogleBigQueryEndpointBuilder.java    |   48 +-
 .../endpoint/GoogleBigQuerySQLEndpointBuilder.java |   38 +-
 .../endpoint/GoogleCalendarEndpointBuilder.java    |  109 +-
 .../GoogleCalendarStreamEndpointBuilder.java       |  281 ++++--
 .../model/endpoint/GoogleDriveEndpointBuilder.java |  111 ++-
 .../model/endpoint/GoogleMailEndpointBuilder.java  |   86 +-
 .../endpoint/GoogleMailStreamEndpointBuilder.java  |  257 +++--
 .../endpoint/GooglePubsubEndpointBuilder.java      |  101 +-
 .../endpoint/GoogleSheetsEndpointBuilder.java      |   90 +-
 .../GoogleSheetsStreamEndpointBuilder.java         |  276 ++++--
 .../camel/model/endpoint/GoraEndpointBuilder.java  |  198 ++--
 .../camel/model/endpoint/GrapeEndpointBuilder.java |   24 +-
 .../model/endpoint/GridFsEndpointBuilder.java      |  138 ++-
 .../camel/model/endpoint/GrpcEndpointBuilder.java  |  211 ++--
 .../endpoint/GuavaEventBusEndpointBuilder.java     |   74 +-
 .../camel/model/endpoint/HBaseEndpointBuilder.java |  144 ++-
 .../HazelcastAtomicnumberEndpointBuilder.java      |  105 +-
 .../endpoint/HazelcastInstanceEndpointBuilder.java |  165 +--
 .../endpoint/HazelcastListEndpointBuilder.java     |  165 +--
 .../endpoint/HazelcastMapEndpointBuilder.java      |  165 +--
 .../endpoint/HazelcastMultimapEndpointBuilder.java |  165 +--
 .../endpoint/HazelcastQueueEndpointBuilder.java    |  165 +--
 .../HazelcastReplicatedmapEndpointBuilder.java     |  165 +--
 .../HazelcastRingbufferEndpointBuilder.java        |  105 +-
 .../endpoint/HazelcastSedaEndpointBuilder.java     |  165 +--
 .../endpoint/HazelcastSetEndpointBuilder.java      |  165 +--
 .../endpoint/HazelcastTopicEndpointBuilder.java    |  165 +--
 .../camel/model/endpoint/HdfsEndpointBuilder.java  |  368 ++++---
 .../model/endpoint/HipchatEndpointBuilder.java     |  241 +++--
 .../camel/model/endpoint/HttpEndpointBuilder.java  |  424 +++++---
 .../camel/model/endpoint/IAMEndpointBuilder.java   |   72 +-
 .../camel/model/endpoint/IOTAEndpointBuilder.java  |  100 +-
 .../camel/model/endpoint/IPFSEndpointBuilder.java  |   35 +-
 .../model/endpoint/IgniteCacheEndpointBuilder.java |  162 +--
 .../endpoint/IgniteComputeEndpointBuilder.java     |   83 +-
 .../endpoint/IgniteEventsEndpointBuilder.java      |   95 +-
 .../model/endpoint/IgniteIdGenEndpointBuilder.java |   72 +-
 .../endpoint/IgniteMessagingEndpointBuilder.java   |  103 +-
 .../model/endpoint/IgniteQueueEndpointBuilder.java |   82 +-
 .../model/endpoint/IgniteSetEndpointBuilder.java   |   61 +-
 .../model/endpoint/InfinispanEndpointBuilder.java  |  188 ++--
 .../model/endpoint/InfluxDbEndpointBuilder.java    |   54 +-
 .../camel/model/endpoint/IrcEndpointBuilder.java   |  242 +++--
 .../model/endpoint/IronMQEndpointBuilder.java      |  284 ++++--
 .../camel/model/endpoint/JBPMEndpointBuilder.java  |  292 ++++--
 .../model/endpoint/JCacheEndpointBuilder.java      |  201 ++--
 .../model/endpoint/JGroupsEndpointBuilder.java     |   70 +-
 .../model/endpoint/JGroupsRaftEndpointBuilder.java |   62 +-
 .../camel/model/endpoint/JMXEndpointBuilder.java   |  244 +++--
 .../endpoint/JSR356WebSocketEndpointBuilder.java   |   69 +-
 .../model/endpoint/JcloudsEndpointBuilder.java     |  119 ++-
 .../camel/model/endpoint/JcrEndpointBuilder.java   |  133 ++-
 .../camel/model/endpoint/JdbcEndpointBuilder.java  |  135 ++-
 .../model/endpoint/JettyHttpEndpointBuilder9.java  |  504 ++++++----
 .../camel/model/endpoint/JingEndpointBuilder.java  |   34 +-
 .../camel/model/endpoint/JiraEndpointBuilder.java  |  115 ++-
 .../camel/model/endpoint/JmsEndpointBuilder.java   |  750 +++++++++-----
 .../camel/model/endpoint/JoltEndpointBuilder.java  |   64 +-
 .../camel/model/endpoint/JooqEndpointBuilder.java  |  237 +++--
 .../camel/model/endpoint/JpaEndpointBuilder.java   |  418 +++++---
 .../endpoint/JsonValidatorEndpointBuilder.java     |   69 +-
 .../camel/model/endpoint/Jt400EndpointBuilder.java |  321 +++---
 .../camel/model/endpoint/KMSEndpointBuilder.java   |   74 +-
 .../camel/model/endpoint/KafkaEndpointBuilder.java |  739 +++++++++-----
 .../model/endpoint/KeystoneEndpointBuilder.java    |   64 +-
 .../model/endpoint/KinesisEndpointBuilder.java     |  288 ++++--
 .../endpoint/KinesisFirehoseEndpointBuilder.java   |   64 +-
 .../KubernetesConfigMapsEndpointBuilder.java       |  133 ++-
 .../KubernetesDeploymentsEndpointBuilder.java      |  192 ++--
 .../endpoint/KubernetesHPAEndpointBuilder.java     |  192 ++--
 .../endpoint/KubernetesJobEndpointBuilder.java     |  192 ++--
 .../KubernetesNamespacesEndpointBuilder.java       |  192 ++--
 .../endpoint/KubernetesNodesEndpointBuilder.java   |  192 ++--
 ...etesPersistentVolumesClaimsEndpointBuilder.java |  133 ++-
 ...KubernetesPersistentVolumesEndpointBuilder.java |  133 ++-
 .../endpoint/KubernetesPodsEndpointBuilder.java    |  192 ++--
 ...netesReplicationControllersEndpointBuilder.java |  192 ++--
 .../KubernetesResourcesQuotaEndpointBuilder.java   |  133 ++-
 .../endpoint/KubernetesSecretsEndpointBuilder.java |  133 ++-
 .../KubernetesServiceAccountsEndpointBuilder.java  |  133 ++-
 .../KubernetesServicesEndpointBuilder.java         |  192 ++--
 .../model/endpoint/LambdaEndpointBuilder.java      |   76 +-
 .../model/endpoint/LanguageEndpointBuilder.java    |   75 +-
 .../camel/model/endpoint/LdapEndpointBuilder.java  |   48 +-
 .../camel/model/endpoint/LdifEndpointBuilder.java  |   25 +-
 .../model/endpoint/LinkedInEndpointBuilder.java    |  142 ++-
 .../camel/model/endpoint/LogEndpointBuilder.java   |  241 +++--
 .../model/endpoint/LuceneEndpointBuilder.java      |   68 +-
 .../model/endpoint/LumberjackEndpointBuilder.java  |   74 +-
 .../camel/model/endpoint/MQEndpointBuilder.java    |   76 +-
 .../camel/model/endpoint/MQTTEndpointBuilder.java  |  329 +++---
 .../camel/model/endpoint/MSKEndpointBuilder.java   |   76 +-
 .../camel/model/endpoint/MailEndpointBuilder.java  |  567 +++++++----
 .../model/endpoint/MasterEndpointBuilder.java      |   61 +-
 .../model/endpoint/MetricsEndpointBuilder.java     |   90 +-
 .../model/endpoint/MicrometerEndpointBuilder.java  |   62 +-
 .../model/endpoint/MiloClientEndpointBuilder.java  |  223 +++--
 .../model/endpoint/MiloServerEndpointBuilder.java  |   55 +-
 .../camel/model/endpoint/Mina2EndpointBuilder.java |  282 ++++--
 .../camel/model/endpoint/MllpEndpointBuilder.java  |  267 +++--
 .../camel/model/endpoint/MockEndpointBuilder.java  |  103 +-
 .../model/endpoint/MongoDbEndpointBuilder.java     |  152 ++-
 .../camel/model/endpoint/MsvEndpointBuilder.java   |   89 +-
 .../model/endpoint/MustacheEndpointBuilder.java    |   50 +-
 .../camel/model/endpoint/MvelEndpointBuilder.java  |   40 +-
 .../model/endpoint/MyBatisBeanEndpointBuilder.java |   36 +-
 .../model/endpoint/MyBatisEndpointBuilder.java     |  279 ++++--
 .../model/endpoint/NagiosEndpointBuilder.java      |   79 +-
 .../camel/model/endpoint/NatsEndpointBuilder.java  |  230 +++--
 .../model/endpoint/NetWeaverEndpointBuilder.java   |   65 +-
 .../camel/model/endpoint/NettyEndpointBuilder.java |  683 ++++++++-----
 .../model/endpoint/NettyHttpEndpointBuilder.java   |  746 +++++++++-----
 .../model/endpoint/NeutronEndpointBuilder.java     |   69 +-
 .../camel/model/endpoint/NovaEndpointBuilder.java  |   69 +-
 .../camel/model/endpoint/NsqEndpointBuilder.java   |  157 +--
 .../model/endpoint/Olingo2EndpointBuilder.java     |  151 ++-
 .../model/endpoint/Olingo4EndpointBuilder.java     |  151 ++-
 .../OpenshiftBuildConfigsEndpointBuilder.java      |  133 ++-
 .../endpoint/OpenshiftBuildsEndpointBuilder.java   |  133 ++-
 .../model/endpoint/OptaPlannerEndpointBuilder.java |   81 +-
 .../camel/model/endpoint/PahoEndpointBuilder.java  |  135 ++-
 .../model/endpoint/PaxLoggingEndpointBuilder.java  |   56 +-
 .../camel/model/endpoint/PdfEndpointBuilder.java   |   99 +-
 .../model/endpoint/PgEventEndpointBuilder.java     |   97 +-
 .../model/endpoint/PrinterEndpointBuilder.java     |  102 +-
 .../model/endpoint/PropertiesEndpointBuilder.java  |   74 +-
 .../model/endpoint/PubNubEndpointBuilder.java      |  120 ++-
 .../model/endpoint/PulsarEndpointBuilder.java      |  104 +-
 .../model/endpoint/QuartzEndpointBuilder.java      |  212 ++--
 .../endpoint/QueueServiceEndpointBuilder.java      |  107 +-
 .../model/endpoint/QuickfixjEndpointBuilder.java   |   74 +-
 .../model/endpoint/RabbitMQEndpointBuilder.java    |  490 +++++----
 .../endpoint/ReactiveStreamsEndpointBuilder.java   |  102 +-
 .../camel/model/endpoint/RedisEndpointBuilder.java |  112 ++-
 .../camel/model/endpoint/RefEndpointBuilder.java   |   56 +-
 .../model/endpoint/RestApiEndpointBuilder.java     |   69 +-
 .../camel/model/endpoint/RestEndpointBuilder.java  |  119 ++-
 .../model/endpoint/RestSwaggerEndpointBuilder.java |   54 +-
 .../model/endpoint/RestletEndpointBuilder.java     |  209 ++--
 .../camel/model/endpoint/RssEndpointBuilder.java   |  274 +++--
 .../camel/model/endpoint/S3EndpointBuilder.java    |  470 +++++----
 .../camel/model/endpoint/SWFEndpointBuilder.java   |  220 ++--
 .../camel/model/endpoint/SagaEndpointBuilder.java  |   29 +-
 .../model/endpoint/SalesforceEndpointBuilder.java  |  333 ++++---
 .../model/endpoint/SchedulerEndpointBuilder.java   |  216 ++--
 .../model/endpoint/SchematronEndpointBuilder.java  |   38 +-
 .../camel/model/endpoint/ScpEndpointBuilder.java   |  187 ++--
 .../camel/model/endpoint/SdbEndpointBuilder.java   |   94 +-
 .../camel/model/endpoint/SedaEndpointBuilder.java  |  173 ++--
 .../model/endpoint/ServerEndpointBuilder.java      |  200 ++--
 .../model/endpoint/ServiceEndpointBuilder.java     |   56 +-
 .../model/endpoint/ServiceNowEndpointBuilder.java  |  338 ++++---
 .../model/endpoint/ServletEndpointBuilder.java     |  213 ++--
 .../camel/model/endpoint/SesEndpointBuilder.java   |   96 +-
 .../camel/model/endpoint/SftpEndpointBuilder.java  |  992 ++++++++++++-------
 .../camel/model/endpoint/SipEndpointBuilder.java   |  383 ++++---
 .../camel/model/endpoint/Sjms2EndpointBuilder.java |  348 ++++---
 .../model/endpoint/SjmsBatchEndpointBuilder.java   |  216 ++--
 .../camel/model/endpoint/SjmsEndpointBuilder.java  |  323 +++---
 .../camel/model/endpoint/SlackEndpointBuilder.java |  240 +++--
 .../camel/model/endpoint/SmppEndpointBuilder.java  |  334 ++++---
 .../camel/model/endpoint/SnmpEndpointBuilder.java  |  330 +++---
 .../camel/model/endpoint/SnsEndpointBuilder.java   |  132 ++-
 .../camel/model/endpoint/SolrEndpointBuilder.java  |  127 ++-
 .../model/endpoint/SoroushBotEndpointBuilder.java  |  207 ++--
 .../camel/model/endpoint/SparkEndpointBuilder.java |  125 ++-
 .../model/endpoint/SplunkEndpointBuilder.java      |  355 ++++---
 .../model/endpoint/SpringBatchEndpointBuilder.java |   52 +-
 .../endpoint/SpringIntegrationEndpointBuilder.java |   76 +-
 .../model/endpoint/SpringLdapEndpointBuilder.java  |   38 +-
 .../endpoint/SpringWebserviceEndpointBuilder.java  |  214 ++--
 .../camel/model/endpoint/SqlEndpointBuilder.java   |  391 +++++---
 .../model/endpoint/SqlStoredEndpointBuilder.java   |   79 +-
 .../camel/model/endpoint/SqsEndpointBuilder.java   |  467 +++++----
 .../camel/model/endpoint/SshEndpointBuilder.java   |  298 +++---
 .../camel/model/endpoint/StAXEndpointBuilder.java  |   25 +-
 .../camel/model/endpoint/StompEndpointBuilder.java |   91 +-
 .../model/endpoint/StreamEndpointBuilder.java      |  186 ++--
 .../endpoint/StringTemplateEndpointBuilder.java    |   53 +-
 .../camel/model/endpoint/StubEndpointBuilder.java  |  173 ++--
 .../camel/model/endpoint/SwiftEndpointBuilder.java |   69 +-
 .../model/endpoint/TelegramEndpointBuilder.java    |  253 +++--
 .../model/endpoint/ThriftEndpointBuilder.java      |  141 ++-
 .../camel/model/endpoint/TikaEndpointBuilder.java  |   58 +-
 .../camel/model/endpoint/TimerEndpointBuilder.java |  128 ++-
 .../model/endpoint/TwilioEndpointBuilder.java      |   65 +-
 .../TwitterDirectMessageEndpointBuilder.java       |  373 ++++---
 .../endpoint/TwitterSearchEndpointBuilder.java     |  374 ++++---
 .../endpoint/TwitterStreamingEndpointBuilder.java  |  381 ++++---
 .../endpoint/TwitterTimelineEndpointBuilder.java   |  384 ++++---
 .../model/endpoint/UndertowEndpointBuilder.java    |  235 +++--
 .../model/endpoint/ValidatorEndpointBuilder.java   |   89 +-
 .../model/endpoint/VelocityEndpointBuilder.java    |   53 +-
 .../camel/model/endpoint/VertxEndpointBuilder.java |   67 +-
 .../camel/model/endpoint/VmEndpointBuilder.java    |  173 ++--
 .../model/endpoint/WeatherEndpointBuilder.java     |  375 ++++---
 .../camel/model/endpoint/Web3jEndpointBuilder.java |  303 ++++--
 .../model/endpoint/WebhookEndpointBuilder.java     |   80 +-
 .../model/endpoint/WebsocketEndpointBuilder.java   |  200 ++--
 .../model/endpoint/WordpressEndpointBuilder.java   |  126 ++-
 .../camel/model/endpoint/WsEndpointBuilder.java    |  164 +--
 .../model/endpoint/XChangeEndpointBuilder.java     |   61 +-
 .../model/endpoint/XQueryEndpointBuilder.java      |  335 ++++---
 .../endpoint/XmlSignatureEndpointBuilder.java      |  281 ++++--
 .../camel/model/endpoint/XmppEndpointBuilder.java  |  172 ++--
 .../camel/model/endpoint/XsltEndpointBuilder.java  |  162 +--
 .../model/endpoint/YammerEndpointBuilder.java      |  267 +++--
 .../model/endpoint/ZendeskEndpointBuilder.java     |   79 +-
 .../model/endpoint/ZooKeeperEndpointBuilder.java   |  117 ++-
 .../endpoint/ZooKeeperMasterEndpointBuilder.java   |   61 +-
 .../camel/maven/packaging/EndpointDslMojo.java     |   10 +-
 297 files changed, 34196 insertions(+), 19416 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java
index bb520c4..f5889a8 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AMQPEndpointBuilder.java
@@ -44,16 +44,18 @@ public interface AMQPEndpointBuilder {
             super("amqp", path);
         }
         /**
-         * The kind of destination to use. The option is a
-         * <code>java.lang.String</code> type.
+         * The kind of destination to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T destinationType(String destinationType) {
             this.properties.put("destinationType", destinationType);
             return (T) this;
         }
         /**
-         * Name of the queue or topic to use as destination. The option is a
-         * <code>java.lang.String</code> type.
+         * Name of the queue or topic to use as destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T destinationName(String destinationName) {
             this.properties.put("destinationName", destinationName);
@@ -64,7 +66,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * Topics instead.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T clientId(String clientId) {
             this.properties.put("clientId", clientId);
@@ -74,8 +78,9 @@ public interface AMQPEndpointBuilder {
          * Sets the default connection factory to be used if a connection
          * factory is not specified for either
          * setTemplateConnectionFactory(ConnectionFactory) or
-         * setListenerConnectionFactory(ConnectionFactory). The option is a
-         * <code>javax.jms.ConnectionFactory</code> type.
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option is a <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
          */
         public T connectionFactory(Object connectionFactory) {
             this.properties.put("connectionFactory", connectionFactory);
@@ -85,8 +90,10 @@ public interface AMQPEndpointBuilder {
          * Sets the default connection factory to be used if a connection
          * factory is not specified for either
          * setTemplateConnectionFactory(ConnectionFactory) or
-         * setListenerConnectionFactory(ConnectionFactory). The option will be
-         * converted to a <code>javax.jms.ConnectionFactory</code> type.
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option will be converted to a
+         * <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
          */
         public T connectionFactory(String connectionFactory) {
             this.properties.put("connectionFactory", connectionFactory);
@@ -100,8 +107,9 @@ public interface AMQPEndpointBuilder {
          * send back a reply message because another component in your code
          * handles the reply message. You can also use this option if you want
          * to use Camel as a proxy between different message brokers and you
-         * want to route message from one system to another. The option is a
-         * <code>boolean</code> type.
+         * want to route message from one system to another.
+         * The option is a <code>boolean</code> type.
+         * @group common
          */
         public T disableReplyTo(boolean disableReplyTo) {
             this.properties.put("disableReplyTo", disableReplyTo);
@@ -115,8 +123,9 @@ public interface AMQPEndpointBuilder {
          * send back a reply message because another component in your code
          * handles the reply message. You can also use this option if you want
          * to use Camel as a proxy between different message brokers and you
-         * want to route message from one system to another. The option will be
-         * converted to a <code>boolean</code> type.
+         * want to route message from one system to another.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T disableReplyTo(String disableReplyTo) {
             this.properties.put("disableReplyTo", disableReplyTo);
@@ -124,8 +133,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * subscriptions. The clientId option must be configured as well.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T durableSubscriptionName(String durableSubscriptionName) {
             this.properties.put("durableSubscriptionName", durableSubscriptionName);
@@ -136,8 +146,10 @@ public interface AMQPEndpointBuilder {
          * implementation for sending JMS messages. Possible values are: Bytes,
          * Map, Object, Stream, Text. By default, Camel would determine which
          * JMS message type to use from the In body type. This option allows you
-         * to specify it. The option is a
+         * to specify it.
+         * The option is a
          * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
          */
         public T jmsMessageType(JmsMessageType jmsMessageType) {
             this.properties.put("jmsMessageType", jmsMessageType);
@@ -148,8 +160,10 @@ public interface AMQPEndpointBuilder {
          * implementation for sending JMS messages. Possible values are: Bytes,
          * Map, Object, Stream, Text. By default, Camel would determine which
          * JMS message type to use from the In body type. This option allows you
-         * to specify it. The option will be converted to a
+         * to specify it.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
          */
         public T jmsMessageType(String jmsMessageType) {
             this.properties.put("jmsMessageType", jmsMessageType);
@@ -162,6 +176,7 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * @group common
          */
         public T testConnectionOnStartup(boolean testConnectionOnStartup) {
             this.properties.put("testConnectionOnStartup", testConnectionOnStartup);
@@ -174,6 +189,7 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T testConnectionOnStartup(String testConnectionOnStartup) {
             this.properties.put("testConnectionOnStartup", testConnectionOnStartup);
@@ -183,7 +199,9 @@ public interface AMQPEndpointBuilder {
          * Controls whether or not to include serialized headers. Applies only
          * when isTransferExchange() is true. This requires that the objects are
          * serializable. Camel will exclude any non-serializable objects and log
-         * it at WARN level. The option is a <code>boolean</code> type.
+         * it at WARN level.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T allowSerializedHeaders(boolean allowSerializedHeaders) {
             this.properties.put("allowSerializedHeaders", allowSerializedHeaders);
@@ -193,8 +211,9 @@ public interface AMQPEndpointBuilder {
          * Controls whether or not to include serialized headers. Applies only
          * when isTransferExchange() is true. This requires that the objects are
          * serializable. Camel will exclude any non-serializable objects and log
-         * it at WARN level. The option will be converted to a
-         * <code>boolean</code> type.
+         * it at WARN level.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T allowSerializedHeaders(String allowSerializedHeaders) {
             this.properties.put("allowSerializedHeaders", allowSerializedHeaders);
@@ -210,8 +229,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * messages; You can then restart the route to retry.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStartListener(boolean asyncStartListener) {
             this.properties.put("asyncStartListener", asyncStartListener);
@@ -227,8 +247,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be
-         * converted to a <code>boolean</code> type.
+         * messages; You can then restart the route to retry.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStartListener(String asyncStartListener) {
             this.properties.put("asyncStartListener", asyncStartListener);
@@ -236,7 +257,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Whether to stop the JmsConsumer message listener asynchronously, when
-         * stopping a route. The option is a <code>boolean</code> type.
+         * stopping a route.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStopListener(boolean asyncStopListener) {
             this.properties.put("asyncStopListener", asyncStopListener);
@@ -244,8 +267,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Whether to stop the JmsConsumer message listener asynchronously, when
-         * stopping a route. The option will be converted to a
-         * <code>boolean</code> type.
+         * stopping a route.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStopListener(String asyncStopListener) {
             this.properties.put("asyncStopListener", asyncStopListener);
@@ -253,8 +277,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -262,8 +287,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -273,8 +299,10 @@ public interface AMQPEndpointBuilder {
          * 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
+         * destination in a JNDI registry).
+         * The option is a
          * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * @group advanced
          */
         public T destinationResolver(Object destinationResolver) {
             this.properties.put("destinationResolver", destinationResolver);
@@ -284,8 +312,10 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
+         * destination in a JNDI registry).
+         * The option will be converted to a
          * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * @group advanced
          */
         public T destinationResolver(String destinationResolver) {
             this.properties.put("destinationResolver", destinationResolver);
@@ -298,8 +328,10 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * configure, than having to code a custom errorHandler.
+         * The option is a <code>org.springframework.util.ErrorHandler</code>
+         * type.
+         * @group advanced
          */
         public T errorHandler(Object errorHandler) {
             this.properties.put("errorHandler", errorHandler);
@@ -312,9 +344,10 @@ public interface AMQPEndpointBuilder {
          * 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 will
-         * be converted to a <code>org.springframework.util.ErrorHandler</code>
-         * type.
+         * configure, than having to code a custom errorHandler.
+         * The option will be converted to a
+         * <code>org.springframework.util.ErrorHandler</code> type.
+         * @group advanced
          */
         public T errorHandler(String errorHandler) {
             this.properties.put("errorHandler", errorHandler);
@@ -322,8 +355,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * underlying JMS exceptions.
+         * The option is a <code>javax.jms.ExceptionListener</code> type.
+         * @group advanced
          */
         public T exceptionListener(Object exceptionListener) {
             this.properties.put("exceptionListener", exceptionListener);
@@ -331,8 +365,10 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies the JMS Exception Listener that is to be notified of any
-         * underlying JMS exceptions. The option will be converted to a
+         * underlying JMS exceptions.
+         * The option will be converted to a
          * <code>javax.jms.ExceptionListener</code> type.
+         * @group advanced
          */
         public T exceptionListener(String exceptionListener) {
             this.properties.put("exceptionListener", exceptionListener);
@@ -340,8 +376,10 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option is a
+         * Camel message.
+         * The option is a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
          */
         public T headerFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -349,8 +387,10 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option will be converted to a
+         * Camel message.
+         * The option will be converted to a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
          */
         public T headerFilterStrategy(String headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -358,7 +398,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * idle at any given time.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T idleConsumerLimit(int idleConsumerLimit) {
             this.properties.put("idleConsumerLimit", idleConsumerLimit);
@@ -366,8 +408,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specify the limit for the number of consumers that are allowed to be
-         * idle at any given time. The option will be converted to a
-         * <code>int</code> type.
+         * idle at any given time.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T idleConsumerLimit(String idleConsumerLimit) {
             this.properties.put("idleConsumerLimit", idleConsumerLimit);
@@ -378,8 +421,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * setting). There is additional doc available from Spring.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T idleTaskExecutionLimit(int idleTaskExecutionLimit) {
             this.properties.put("idleTaskExecutionLimit", idleTaskExecutionLimit);
@@ -390,8 +434,9 @@ public interface AMQPEndpointBuilder {
          * 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
-         * will be converted to a <code>int</code> type.
+         * setting). There is additional doc available from Spring.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T idleTaskExecutionLimit(String idleTaskExecutionLimit) {
             this.properties.put("idleTaskExecutionLimit", idleTaskExecutionLimit);
@@ -401,8 +446,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * headerFilterStrategy then this option does not apply.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T includeAllJMSXProperties(boolean includeAllJMSXProperties) {
             this.properties.put("includeAllJMSXProperties", includeAllJMSXProperties);
@@ -412,8 +458,9 @@ public interface AMQPEndpointBuilder {
          * 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 will
-         * be converted to a <code>boolean</code> type.
+         * headerFilterStrategy then this option does not apply.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T includeAllJMSXProperties(String includeAllJMSXProperties) {
             this.properties.put("includeAllJMSXProperties", includeAllJMSXProperties);
@@ -428,9 +475,11 @@ public interface AMQPEndpointBuilder {
          * 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
+         * using the # notation.
+         * The option is a
          * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
          * type.
+         * @group advanced
          */
         public T jmsKeyFormatStrategy(Object jmsKeyFormatStrategy) {
             this.properties.put("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
@@ -445,9 +494,11 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
+         * using the # notation.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
          * type.
+         * @group advanced
          */
         public T jmsKeyFormatStrategy(String jmsKeyFormatStrategy) {
             this.properties.put("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
@@ -457,6 +508,7 @@ public interface AMQPEndpointBuilder {
          * Specifies whether Camel should auto map the received JMS message to a
          * suited payload type, such as javax.jms.TextMessage to a String etc.
          * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapJmsMessage(boolean mapJmsMessage) {
             this.properties.put("mapJmsMessage", mapJmsMessage);
@@ -466,6 +518,7 @@ public interface AMQPEndpointBuilder {
          * Specifies whether Camel should auto map the received JMS message to a
          * suited payload type, such as javax.jms.TextMessage to a String etc.
          * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapJmsMessage(String mapJmsMessage) {
             this.properties.put("mapJmsMessage", mapJmsMessage);
@@ -475,8 +528,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * shrink when less work is required.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T maxMessagesPerTask(int maxMessagesPerTask) {
             this.properties.put("maxMessagesPerTask", maxMessagesPerTask);
@@ -486,8 +540,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
-         * <code>int</code> type.
+         * shrink when less work is required.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T maxMessagesPerTask(String maxMessagesPerTask) {
             this.properties.put("maxMessagesPerTask", maxMessagesPerTask);
@@ -496,8 +551,10 @@ public interface AMQPEndpointBuilder {
         /**
          * 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
+         * 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
          */
         public T messageConverter(Object messageConverter) {
             this.properties.put("messageConverter", messageConverter);
@@ -506,9 +563,10 @@ public interface AMQPEndpointBuilder {
         /**
          * 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 will
-         * be converted to a
+         * be in control how to map to/from a javax.jms.Message.
+         * The option will be converted to a
          * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
+         * @group advanced
          */
         public T messageConverter(String messageConverter) {
             this.properties.put("messageConverter", messageConverter);
@@ -517,9 +575,11 @@ public interface AMQPEndpointBuilder {
         /**
          * 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
+         * sending a JMS message.
+         * The option is a
          * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
          * type.
+         * @group advanced
          */
         public T messageCreatedStrategy(Object messageCreatedStrategy) {
             this.properties.put("messageCreatedStrategy", messageCreatedStrategy);
@@ -528,9 +588,11 @@ public interface AMQPEndpointBuilder {
         /**
          * 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 will be converted to a
+         * sending a JMS message.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
          * type.
+         * @group advanced
          */
         public T messageCreatedStrategy(String messageCreatedStrategy) {
             this.properties.put("messageCreatedStrategy", messageCreatedStrategy);
@@ -541,7 +603,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * unique value.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageIdEnabled(boolean messageIdEnabled) {
             this.properties.put("messageIdEnabled", messageIdEnabled);
@@ -552,8 +616,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a <code>boolean</code>
-         * type.
+         * unique value.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageIdEnabled(String messageIdEnabled) {
             this.properties.put("messageIdEnabled", messageIdEnabled);
@@ -564,8 +629,10 @@ public interface AMQPEndpointBuilder {
          * what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
          * use to consume messages. Setting this will automatically set
-         * consumerType to Custom. The option is a
+         * consumerType to Custom.
+         * The option is a
          * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
          */
         public T messageListenerContainerFactory(
                 Object messageListenerContainerFactory) {
@@ -577,8 +644,10 @@ public interface AMQPEndpointBuilder {
          * what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
          * use to consume messages. Setting this will automatically set
-         * consumerType to Custom. The option will be converted to a
+         * consumerType to Custom.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
          */
         public T messageListenerContainerFactory(
                 String messageListenerContainerFactory) {
@@ -590,7 +659,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * its normal value.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageTimestampEnabled(boolean messageTimestampEnabled) {
             this.properties.put("messageTimestampEnabled", messageTimestampEnabled);
@@ -601,8 +672,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * its normal value.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageTimestampEnabled(String messageTimestampEnabled) {
             this.properties.put("messageTimestampEnabled", messageTimestampEnabled);
@@ -610,7 +682,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies whether to inhibit the delivery of messages published by
-         * its own connection. The option is a <code>boolean</code> type.
+         * its own connection.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T pubSubNoLocal(boolean pubSubNoLocal) {
             this.properties.put("pubSubNoLocal", pubSubNoLocal);
@@ -618,24 +692,27 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies whether to inhibit the delivery of messages published by
-         * its own connection. The option will be converted to a
-         * <code>boolean</code> type.
+         * its own connection.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T pubSubNoLocal(String pubSubNoLocal) {
             this.properties.put("pubSubNoLocal", pubSubNoLocal);
             return (T) this;
         }
         /**
-         * The timeout for receiving messages (in milliseconds). The option is a
-         * <code>long</code> type.
+         * The timeout for receiving messages (in milliseconds).
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T receiveTimeout(long receiveTimeout) {
             this.properties.put("receiveTimeout", receiveTimeout);
             return (T) this;
         }
         /**
-         * The timeout for receiving messages (in milliseconds). The option will
-         * be converted to a <code>long</code> type.
+         * The timeout for receiving messages (in milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T receiveTimeout(String receiveTimeout) {
             this.properties.put("receiveTimeout", receiveTimeout);
@@ -644,7 +721,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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.
+         * ms, that is, 5 seconds.
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T recoveryInterval(long recoveryInterval) {
             this.properties.put("recoveryInterval", recoveryInterval);
@@ -653,8 +732,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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 will be converted to a
-         * <code>long</code> type.
+         * ms, that is, 5 seconds.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T recoveryInterval(String recoveryInterval) {
             this.properties.put("recoveryInterval", recoveryInterval);
@@ -665,8 +745,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * determined by the option requestTimeout.
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T requestTimeoutCheckerInterval(
                 long requestTimeoutCheckerInterval) {
@@ -678,8 +759,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted
-         * to a <code>long</code> type.
+         * determined by the option requestTimeout.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T requestTimeoutCheckerInterval(
                 String requestTimeoutCheckerInterval) {
@@ -688,8 +770,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -697,8 +780,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -716,6 +800,7 @@ public interface AMQPEndpointBuilder {
          * the consumer side can be wrapped in an outer exception such as
          * org.apache.camel.RuntimeCamelException when returned to the producer.
          * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferException(boolean transferException) {
             this.properties.put("transferException", transferException);
@@ -733,6 +818,7 @@ public interface AMQPEndpointBuilder {
          * the consumer side can be wrapped in an outer exception such as
          * org.apache.camel.RuntimeCamelException when returned to the producer.
          * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferException(String transferException) {
             this.properties.put("transferException", transferException);
@@ -746,7 +832,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * a regular payload.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferExchange(boolean transferExchange) {
             this.properties.put("transferExchange", transferExchange);
@@ -760,8 +848,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * a regular payload.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferExchange(String transferExchange) {
             this.properties.put("transferExchange", transferExchange);
@@ -776,8 +865,9 @@ public interface AMQPEndpointBuilder {
          * fault flag will be set on the
          * org.apache.camel.Message#setFault(boolean). You may want to enable
          * this when using Camel components that support faults such as SOAP
-         * based such as cxf or spring-ws. The option is a <code>boolean</code>
-         * type.
+         * based such as cxf or spring-ws.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferFault(boolean transferFault) {
             this.properties.put("transferFault", transferFault);
@@ -792,8 +882,9 @@ public interface AMQPEndpointBuilder {
          * fault flag will be set on the
          * org.apache.camel.Message#setFault(boolean). You may want to enable
          * this when using Camel components that support faults such as SOAP
-         * based such as cxf or spring-ws. The option will be converted to a
-         * <code>boolean</code> type.
+         * based such as cxf or spring-ws.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferFault(String transferFault) {
             this.properties.put("transferFault", transferFault);
@@ -801,8 +892,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies whether JMSMessageID should always be used as
-         * JMSCorrelationID for InOut messages. The option is a
-         * <code>boolean</code> type.
+         * JMSCorrelationID for InOut messages.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T useMessageIDAsCorrelationID(boolean useMessageIDAsCorrelationID) {
             this.properties.put("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
@@ -810,8 +902,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies whether JMSMessageID should always be used as
-         * JMSCorrelationID for InOut messages. The option will be converted to
-         * a <code>boolean</code> type.
+         * JMSCorrelationID for InOut messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T useMessageIDAsCorrelationID(String useMessageIDAsCorrelationID) {
             this.properties.put("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
@@ -820,8 +913,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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.
+         * when the option useMessageIDAsCorrelationID is enabled.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedCounter(
                 int waitForProvisionCorrelationToBeUpdatedCounter) {
@@ -831,8 +925,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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
-         * will be converted to a <code>int</code> type.
+         * when the option useMessageIDAsCorrelationID is enabled.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedCounter(
                 String waitForProvisionCorrelationToBeUpdatedCounter) {
@@ -841,7 +936,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Interval in millis to sleep each time while waiting for provisional
-         * correlation id to be updated. The option is a <code>long</code> type.
+         * correlation id to be updated.
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
                 long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
@@ -850,8 +947,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Interval in millis to sleep each time while waiting for provisional
-         * correlation id to be updated. The option will be converted to a
-         * <code>long</code> type.
+         * correlation id to be updated.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
                 String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
@@ -860,8 +958,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * username/password directly on the ConnectionFactory.
+         * The option is a <code>java.lang.String</code> type.
+         * @group security
          */
         public T password(String password) {
             this.properties.put("password", password);
@@ -869,24 +968,27 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * username/password directly on the ConnectionFactory.
+         * The option is a <code>java.lang.String</code> type.
+         * @group security
          */
         public T username(String username) {
             this.properties.put("username", username);
             return (T) this;
         }
         /**
-         * Specifies whether to use transacted mode. The option is a
-         * <code>boolean</code> type.
+         * Specifies whether to use transacted mode.
+         * The option is a <code>boolean</code> type.
+         * @group transaction
          */
         public T transacted(boolean transacted) {
             this.properties.put("transacted", transacted);
             return (T) this;
         }
         /**
-         * Specifies whether to use transacted mode. The option will be
-         * converted to a <code>boolean</code> type.
+         * Specifies whether to use transacted mode.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction
          */
         public T transacted(String transacted) {
             this.properties.put("transacted", transacted);
@@ -894,8 +996,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * transactionManager injected when option transacted=true.
+         * The option is a <code>boolean</code> type.
+         * @group transaction (advanced)
          */
         public T lazyCreateTransactionManager(
                 boolean lazyCreateTransactionManager) {
@@ -904,8 +1007,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * If true, Camel will create a JmsTransactionManager, if there is no
-         * transactionManager injected when option transacted=true. The option
-         * will be converted to a <code>boolean</code> type.
+         * transactionManager injected when option transacted=true.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction (advanced)
          */
         public T lazyCreateTransactionManager(
                 String lazyCreateTransactionManager) {
@@ -913,25 +1017,29 @@ public interface AMQPEndpointBuilder {
             return (T) this;
         }
         /**
-         * The Spring transaction manager to use. The option is a
+         * The Spring transaction manager to use.
+         * The option is a
          * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
          */
         public T transactionManager(Object transactionManager) {
             this.properties.put("transactionManager", transactionManager);
             return (T) this;
         }
         /**
-         * The Spring transaction manager to use. The option will be converted
-         * to a
+         * The Spring transaction manager to use.
+         * The option will be converted to a
          * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
          */
         public T transactionManager(String transactionManager) {
             this.properties.put("transactionManager", transactionManager);
             return (T) this;
         }
         /**
-         * The name of the transaction to use. The option is a
-         * <code>java.lang.String</code> type.
+         * The name of the transaction to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group transaction (advanced)
          */
         public T transactionName(String transactionName) {
             this.properties.put("transactionName", transactionName);
@@ -939,7 +1047,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * The timeout value of the transaction (in seconds), if using
-         * transacted mode. The option is a <code>int</code> type.
+         * transacted mode.
+         * The option is a <code>int</code> type.
+         * @group transaction (advanced)
          */
         public T transactionTimeout(int transactionTimeout) {
             this.properties.put("transactionTimeout", transactionTimeout);
@@ -947,8 +1057,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * The timeout value of the transaction (in seconds), if using
-         * transacted mode. The option will be converted to a <code>int</code>
-         * type.
+         * transacted mode.
+         * The option will be converted to a <code>int</code> type.
+         * @group transaction (advanced)
          */
         public T transactionTimeout(String transactionTimeout) {
             this.properties.put("transactionTimeout", transactionTimeout);
@@ -969,8 +1080,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder acknowledgementModeName(
                 String acknowledgementModeName) {
@@ -987,7 +1099,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * async transactions).
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder asyncConsumer(boolean asyncConsumer) {
             this.properties.put("asyncConsumer", asyncConsumer);
@@ -1003,24 +1117,27 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * async transactions).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder asyncConsumer(String asyncConsumer) {
             this.properties.put("asyncConsumer", asyncConsumer);
             return (AMQPConsumerBuilder) this;
         }
         /**
-         * Specifies whether the consumer container should auto-startup. The
-         * option is a <code>boolean</code> type.
+         * Specifies whether the consumer container should auto-startup.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder autoStartup(boolean autoStartup) {
             this.properties.put("autoStartup", autoStartup);
             return (AMQPConsumerBuilder) this;
         }
         /**
-         * Specifies whether the consumer container should auto-startup. The
-         * option will be converted to a <code>boolean</code> type.
+         * Specifies whether the consumer container should auto-startup.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder autoStartup(String autoStartup) {
             this.properties.put("autoStartup", autoStartup);
@@ -1033,7 +1150,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -1046,7 +1165,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -1054,8 +1175,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * cacheLevelName option for more details.
+         * The option is a <code>int</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder cacheLevel(int cacheLevel) {
             this.properties.put("cacheLevel", cacheLevel);
@@ -1063,8 +1185,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Sets the cache level by ID for the underlying JMS resources. See
-         * cacheLevelName option for more details. The option will be converted
-         * to a <code>int</code> type.
+         * cacheLevelName option for more details.
+         * The option will be converted to a <code>int</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder cacheLevel(String cacheLevel) {
             this.properties.put("cacheLevel", cacheLevel);
@@ -1075,7 +1198,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * information.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder cacheLevelName(String cacheLevelName) {
             this.properties.put("cacheLevelName", cacheLevelName);
@@ -1087,8 +1212,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * consumers on the reply message listener.
+         * The option is a <code>int</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder concurrentConsumers(int concurrentConsumers) {
             this.properties.put("concurrentConsumers", concurrentConsumers);
@@ -1100,8 +1226,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted
-         * to a <code>int</code> type.
+         * consumers on the reply message listener.
+         * The option will be converted to a <code>int</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder concurrentConsumers(
                 String concurrentConsumers) {
@@ -1114,8 +1241,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * consumers on the reply message listener.
+         * The option is a <code>int</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder maxConcurrentConsumers(
                 int maxConcurrentConsumers) {
@@ -1128,8 +1256,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted
-         * to a <code>int</code> type.
+         * consumers on the reply message listener.
+         * The option will be converted to a <code>int</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder maxConcurrentConsumers(
                 String maxConcurrentConsumers) {
@@ -1138,8 +1267,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Provides an explicit ReplyTo destination, which overrides any
-         * incoming value of Message.getJMSReplyTo(). The option is a
-         * <code>java.lang.String</code> type.
+         * incoming value of Message.getJMSReplyTo().
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder replyTo(String replyTo) {
             this.properties.put("replyTo", replyTo);
@@ -1148,6 +1278,7 @@ public interface AMQPEndpointBuilder {
         /**
          * Specifies whether to use persistent delivery by default for replies.
          * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder replyToDeliveryPersistent(
                 boolean replyToDeliveryPersistent) {
@@ -1157,6 +1288,7 @@ public interface AMQPEndpointBuilder {
         /**
          * Specifies whether to use persistent delivery by default for replies.
          * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder replyToDeliveryPersistent(
                 String replyToDeliveryPersistent) {
@@ -1164,8 +1296,9 @@ public interface AMQPEndpointBuilder {
             return (AMQPConsumerBuilder) this;
         }
         /**
-         * Sets the JMS selector to use. The option is a
-         * <code>java.lang.String</code> type.
+         * Sets the JMS selector to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder selector(String selector) {
             this.properties.put("selector", selector);
@@ -1179,7 +1312,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * pubSubDomain flag as well.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder subscriptionDurable(
                 boolean subscriptionDurable) {
@@ -1194,8 +1329,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * pubSubDomain flag as well.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder subscriptionDurable(
                 String subscriptionDurable) {
@@ -1209,8 +1345,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * for a shared subscription (which requires JMS 2.0).
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder subscriptionName(String subscriptionName) {
             this.properties.put("subscriptionName", subscriptionName);
@@ -1227,7 +1364,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * broker.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder subscriptionShared(boolean subscriptionShared) {
             this.properties.put("subscriptionShared", subscriptionShared);
@@ -1244,7 +1383,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * broker.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AMQPConsumerBuilder subscriptionShared(String subscriptionShared) {
             this.properties.put("subscriptionShared", subscriptionShared);
@@ -1258,8 +1399,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * avoid this its recommended to enable this option.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder acceptMessagesWhileStopping(
                 boolean acceptMessagesWhileStopping) {
@@ -1274,8 +1416,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be
-         * converted to a <code>boolean</code> type.
+         * avoid this its recommended to enable this option.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder acceptMessagesWhileStopping(
                 String acceptMessagesWhileStopping) {
@@ -1289,8 +1432,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * but to enable for reply managers you must enable this flag.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder allowReplyManagerQuickStop(
                 boolean allowReplyManagerQuickStop) {
@@ -1304,8 +1448,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * but to enable for reply managers you must enable this flag.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder allowReplyManagerQuickStop(
                 String allowReplyManagerQuickStop) {
@@ -1322,8 +1467,10 @@ public interface AMQPEndpointBuilder {
          * Custom is specified, the MessageListenerContainerFactory defined by
          * the messageListenerContainerFactory option will determine what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use. The option is a
+         * use.
+         * The option is a
          * <code>org.apache.camel.component.jms.ConsumerType</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder consumerType(ConsumerType consumerType) {
             this.properties.put("consumerType", consumerType);
@@ -1339,8 +1486,10 @@ public interface AMQPEndpointBuilder {
          * Custom is specified, the MessageListenerContainerFactory defined by
          * the messageListenerContainerFactory option will determine what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use. The option will be converted to a
+         * use.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.ConsumerType</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder consumerType(String consumerType) {
             this.properties.put("consumerType", consumerType);
@@ -1356,9 +1505,11 @@ public interface AMQPEndpointBuilder {
          * 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
+         * decreasing concurrent consumers.
+         * The option is a
          * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
          * type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder defaultTaskExecutorType(
                 DefaultTaskExecutorType defaultTaskExecutorType) {
@@ -1375,9 +1526,11 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
+         * decreasing concurrent consumers.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
          * type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder defaultTaskExecutorType(
                 String defaultTaskExecutorType) {
@@ -1389,7 +1542,9 @@ public interface AMQPEndpointBuilder {
          * 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. The option is a <code>boolean</code> type.
+         * properties.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder eagerLoadingOfProperties(
                 boolean eagerLoadingOfProperties) {
@@ -1401,8 +1556,9 @@ public interface AMQPEndpointBuilder {
          * 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. The option will be converted to a <code>boolean</code>
-         * type.
+         * properties.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder eagerLoadingOfProperties(
                 String eagerLoadingOfProperties) {
@@ -1413,8 +1569,10 @@ public interface AMQPEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -1425,17 +1583,19 @@ public interface AMQPEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (AMQPConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -1443,9 +1603,10 @@ public interface AMQPEndpointBuilder {
             return (AMQPConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
@@ -1453,7 +1614,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies whether the listener session should be exposed when
-         * consuming messages. The option is a <code>boolean</code> type.
+         * consuming messages.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder exposeListenerSession(
                 boolean exposeListenerSession) {
@@ -1462,8 +1625,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies whether the listener session should be exposed when
-         * consuming messages. The option will be converted to a
-         * <code>boolean</code> type.
+         * consuming messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder exposeListenerSession(
                 String exposeListenerSession) {
@@ -1474,7 +1638,9 @@ public interface AMQPEndpointBuilder {
          * Whether a JMS consumer is allowed to send a reply message to the same
          * destination that the consumer is using to consume from. This prevents
          * an endless loop by consuming and sending back the same message to
-         * itself. The option is a <code>boolean</code> type.
+         * itself.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder replyToSameDestinationAllowed(
                 boolean replyToSameDestinationAllowed) {
@@ -1485,7 +1651,9 @@ public interface AMQPEndpointBuilder {
          * Whether a JMS consumer is allowed to send a reply message to the same
          * destination that the consumer is using to consume from. This prevents
          * an endless loop by consuming and sending back the same message to
-         * itself. The option will be converted to a <code>boolean</code> type.
+         * itself.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder replyToSameDestinationAllowed(
                 String replyToSameDestinationAllowed) {
@@ -1496,6 +1664,7 @@ public interface AMQPEndpointBuilder {
          * 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)
          */
         public AMQPConsumerBuilder taskExecutor(Object taskExecutor) {
             this.properties.put("taskExecutor", taskExecutor);
@@ -1505,6 +1674,7 @@ public interface AMQPEndpointBuilder {
          * Allows you to specify a custom task executor for consuming messages.
          * The option will be converted to a
          * <code>org.springframework.core.task.TaskExecutor</code> type.
+         * @group consumer (advanced)
          */
         public AMQPConsumerBuilder taskExecutor(String taskExecutor) {
             this.properties.put("taskExecutor", taskExecutor);
@@ -1512,8 +1682,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Allows to configure the default errorHandler logging level for
-         * logging uncaught exceptions. The option is a
-         * <code>org.apache.camel.LoggingLevel</code> type.
+         * logging uncaught exceptions.
+         * The option is a <code>org.apache.camel.LoggingLevel</code> type.
+         * @group logging
          */
         public AMQPConsumerBuilder errorHandlerLoggingLevel(
                 LoggingLevel errorHandlerLoggingLevel) {
@@ -1522,8 +1693,10 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Allows to configure the default errorHandler logging level for
-         * logging uncaught exceptions. The option will be converted to a
+         * logging uncaught exceptions.
+         * The option will be converted to a
          * <code>org.apache.camel.LoggingLevel</code> type.
+         * @group logging
          */
         public AMQPConsumerBuilder errorHandlerLoggingLevel(
                 String errorHandlerLoggingLevel) {
@@ -1532,7 +1705,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Allows to control whether stacktraces should be logged or not, by the
-         * default errorHandler. The option is a <code>boolean</code> type.
+         * default errorHandler.
+         * The option is a <code>boolean</code> type.
+         * @group logging
          */
         public AMQPConsumerBuilder errorHandlerLogStackTrace(
                 boolean errorHandlerLogStackTrace) {
@@ -1541,8 +1716,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Allows to control whether stacktraces should be logged or not, by the
-         * default errorHandler. The option will be converted to a
-         * <code>boolean</code> type.
+         * default errorHandler.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group logging
          */
         public AMQPConsumerBuilder errorHandlerLogStackTrace(
                 String errorHandlerLogStackTrace) {
@@ -1565,7 +1741,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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.
+         * = 2.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder deliveryMode(Integer deliveryMode) {
             this.properties.put("deliveryMode", deliveryMode);
@@ -1574,24 +1752,28 @@ public interface AMQPEndpointBuilder {
         /**
          * Specifies the delivery mode to be used. Possibles values are those
          * defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT
-         * = 2. The option will be converted to a <code>java.lang.Integer</code>
+         * = 2.
+         * The option will be converted to a <code>java.lang.Integer</code>
          * type.
+         * @group producer
          */
         public AMQPProducerBuilder deliveryMode(String deliveryMode) {
             this.properties.put("deliveryMode", deliveryMode);
             return (AMQPProducerBuilder) this;
         }
         /**
-         * Specifies whether persistent delivery is used by default. The option
-         * is a <code>boolean</code> type.
+         * Specifies whether persistent delivery is used by default.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder deliveryPersistent(boolean deliveryPersistent) {
             this.properties.put("deliveryPersistent", deliveryPersistent);
             return (AMQPProducerBuilder) this;
         }
         /**
-         * Specifies whether persistent delivery is used by default. The option
-         * will be converted to a <code>boolean</code> type.
+         * Specifies whether persistent delivery is used by default.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder deliveryPersistent(String deliveryPersistent) {
             this.properties.put("deliveryPersistent", deliveryPersistent);
@@ -1605,6 +1787,7 @@ public interface AMQPEndpointBuilder {
          * preserveMessageQos option, which operates at message granularity,
          * reading QoS properties exclusively from the Camel In message headers.
          * The option is a <code>java.lang.Boolean</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder explicitQosEnabled(Boolean explicitQosEnabled) {
             this.properties.put("explicitQosEnabled", explicitQosEnabled);
@@ -1619,6 +1802,7 @@ public interface AMQPEndpointBuilder {
          * reading QoS properties exclusively from the Camel In message headers.
          * The option will be converted to a <code>java.lang.Boolean</code>
          * type.
+         * @group producer
          */
         public AMQPProducerBuilder explicitQosEnabled(String explicitQosEnabled) {
             this.properties.put("explicitQosEnabled", explicitQosEnabled);
@@ -1626,7 +1810,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Sets whether date headers should be formatted according to the ISO
-         * 8601 standard. The option is a <code>boolean</code> type.
+         * 8601 standard.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder formatDateHeadersToIso8601(
                 boolean formatDateHeadersToIso8601) {
@@ -1635,8 +1821,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Sets whether date headers should be formatted according to the ISO
-         * 8601 standard. The option will be converted to a <code>boolean</code>
-         * type.
+         * 8601 standard.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder formatDateHeadersToIso8601(
                 String formatDateHeadersToIso8601) {
@@ -1652,8 +1839,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * values from the message header.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder preserveMessageQos(boolean preserveMessageQos) {
             this.properties.put("preserveMessageQos", preserveMessageQos);
@@ -1668,8 +1856,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * values from the message header.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder preserveMessageQos(String preserveMessageQos) {
             this.properties.put("preserveMessageQos", preserveMessageQos);
@@ -1679,7 +1868,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * option to have any effect.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder priority(int priority) {
             this.properties.put("priority", priority);
@@ -1689,8 +1880,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
-         * <code>int</code> type.
+         * option to have any effect.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder priority(String priority) {
             this.properties.put("priority", priority);
@@ -1699,8 +1891,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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.
+         * control dynamic scaling up/down of threads.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToConcurrentConsumers(
                 int replyToConcurrentConsumers) {
@@ -1710,8 +1903,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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 will be
-         * converted to a <code>int</code> type.
+         * control dynamic scaling up/down of threads.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToConcurrentConsumers(
                 String replyToConcurrentConsumers) {
@@ -1721,8 +1915,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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.
+         * control dynamic scaling up/down of threads.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToMaxConcurrentConsumers(
                 int replyToMaxConcurrentConsumers) {
@@ -1732,8 +1927,9 @@ public interface AMQPEndpointBuilder {
         /**
          * 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 will be
-         * converted to a <code>int</code> type.
+         * control dynamic scaling up/down of threads.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToMaxConcurrentConsumers(
                 String replyToMaxConcurrentConsumers) {
@@ -1742,8 +1938,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * 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.
+         * routing when timeout occurred when using request/reply over JMS.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
                 int replyToOnTimeoutMaxConcurrentConsumers) {
@@ -1752,8 +1949,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * Specifies the maximum number of concurrent consumers for continue
-         * routing when timeout occurred when using request/reply over JMS. The
-         * option will be converted to a <code>int</code> type.
+         * routing when timeout occurred when using request/reply over JMS.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
                 String replyToOnTimeoutMaxConcurrentConsumers) {
@@ -1764,8 +1962,9 @@ public interface AMQPEndpointBuilder {
          * Provides an explicit ReplyTo destination in the JMS message, which
          * overrides the setting of replyTo. It is useful if you want to forward
          * the message to a remote Queue and receive the reply message from the
-         * ReplyTo destination. The option is a <code>java.lang.String</code>
-         * type.
+         * ReplyTo destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToOverride(String replyToOverride) {
             this.properties.put("replyToOverride", replyToOverride);
@@ -1780,9 +1979,10 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * lower performance than its alternatives Temporary and Exclusive.
+         * The option is a
+         * <code>org.apache.camel.component.jms.ReplyToType</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToType(ReplyToType replyToType) {
             this.properties.put("replyToType", replyToType);
@@ -1797,9 +1997,10 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a
+         * lower performance than its alternatives Temporary and Exclusive.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.ReplyToType</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder replyToType(String replyToType) {
             this.properties.put("replyToType", replyToType);
@@ -1812,6 +2013,7 @@ public interface AMQPEndpointBuilder {
          * configured timeout value, and thus have per message individual
          * timeout values. See also the requestTimeoutCheckerInterval option.
          * The option is a <code>long</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder requestTimeout(long requestTimeout) {
             this.properties.put("requestTimeout", requestTimeout);
@@ -1824,6 +2026,7 @@ public interface AMQPEndpointBuilder {
          * configured timeout value, and thus have per message individual
          * timeout values. See also the requestTimeoutCheckerInterval option.
          * The option will be converted to a <code>long</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder requestTimeout(String requestTimeout) {
             this.properties.put("requestTimeout", requestTimeout);
@@ -1831,7 +2034,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * When sending messages, specifies the time-to-live of the message (in
-         * milliseconds). The option is a <code>long</code> type.
+         * milliseconds).
+         * The option is a <code>long</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder timeToLive(long timeToLive) {
             this.properties.put("timeToLive", timeToLive);
@@ -1839,8 +2044,9 @@ public interface AMQPEndpointBuilder {
         }
         /**
          * When sending messages, specifies the time-to-live of the message (in
-         * milliseconds). The option will be converted to a <code>long</code>
-         * type.
+         * milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group producer
          */
         public AMQPProducerBuilder timeToLive(String timeToLive) {
             this.properties.put("timeToLive", timeToLive);
@@ -1852,8 +2058,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * use as suffix for wildcard matching.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder allowAdditionalHeaders(
                 String allowAdditionalHeaders) {
@@ -1864,6 +2071,7 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder allowNullBody(boolean allowNullBody) {
             this.properties.put("allowNullBody", allowNullBody);
@@ -1873,6 +2081,7 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder allowNullBody(String allowNullBody) {
             this.properties.put("allowNullBody", allowNullBody);
@@ -1884,8 +2093,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * replyToDestinationSelectorName is set).
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder alwaysCopyMessage(boolean alwaysCopyMessage) {
             this.properties.put("alwaysCopyMessage", alwaysCopyMessage);
@@ -1897,8 +2107,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted
-         * to a <code>boolean</code> type.
+         * replyToDestinationSelectorName is set).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder alwaysCopyMessage(String alwaysCopyMessage) {
             this.properties.put("alwaysCopyMessage", alwaysCopyMessage);
@@ -1911,7 +2122,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder correlationProperty(
                 String correlationProperty) {
@@ -1927,7 +2140,9 @@ public interface AMQPEndpointBuilder {
          * to archive. So you can use disableTimeToLive=true to not set a time
          * to live value on the sent message. Then the message will not expire
          * on the receiver system. See below in section About time to live for
-         * more details. The option is a <code>boolean</code> type.
+         * more details.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder disableTimeToLive(boolean disableTimeToLive) {
             this.properties.put("disableTimeToLive", disableTimeToLive);
@@ -1942,8 +2157,9 @@ public interface AMQPEndpointBuilder {
          * to archive. So you can use disableTimeToLive=true to not set a time
          * to live value on the sent message. Then the message will not expire
          * on the receiver system. See below in section About time to live for
-         * more details. The option will be converted to a <code>boolean</code>
-         * type.
+         * more details.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder disableTimeToLive(String disableTimeToLive) {
             this.properties.put("disableTimeToLive", disableTimeToLive);
@@ -1953,8 +2169,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * original JMS message that was received.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder forceSendOriginalMessage(
                 boolean forceSendOriginalMessage) {
@@ -1965,8 +2182,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted
-         * to a <code>boolean</code> type.
+         * original JMS message that was received.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder forceSendOriginalMessage(
                 String forceSendOriginalMessage) {
@@ -1977,8 +2195,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * message was sent to the JMS destination.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder includeSentJMSMessageID(
                 boolean includeSentJMSMessageID) {
@@ -1989,8 +2208,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted
-         * to a <code>boolean</code> type.
+         * message was sent to the JMS destination.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder includeSentJMSMessageID(
                 String includeSentJMSMessageID) {
@@ -2006,8 +2226,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * value such as CACHE_CONSUMER or CACHE_SESSION.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder replyToCacheLevelName(
                 String replyToCacheLevelName) {
@@ -2017,8 +2238,9 @@ public interface AMQPEndpointBuilder {
         /**
          * Sets the JMS Selector using the fixed name to be used so you can
          * filter out your own replies from the others when using a shared queue
-         * (that is, if you are not using a temporary reply queue). The option
-         * is a <code>java.lang.String</code> type.
+         * (that is, if you are not using a temporary reply queue).
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder replyToDestinationSelectorName(
                 String replyToDestinationSelectorName) {
@@ -2032,8 +2254,9 @@ public interface AMQPEndpointBuilder {
          * 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.
+         * chunk is then written to the StreamMessage until no more data.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder streamMessageTypeEnabled(
                 boolean streamMessageTypeEnabled) {
@@ -2047,8 +2270,9 @@ public interface AMQPEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * chunk is then written to the StreamMessage until no more data.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public AMQPProducerBuilder streamMessageTypeEnabled(
                 String streamMessageTypeEnabled) {
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java
index 9459dd9..5064a0c 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AS2EndpointBuilder.java
@@ -45,32 +45,38 @@ public interface AS2EndpointBuilder {
             super("as2", path);
         }
         /**
-         * What kind of operation to perform. The option is a
+         * What kind of operation to perform.
+         * The option is a
          * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
          */
         public T apiName(AS2ApiName apiName) {
             this.properties.put("apiName", apiName);
             return (T) this;
         }
         /**
-         * What kind of operation to perform. The option will be converted to a
+         * What kind of operation to perform.
+         * The option will be converted to a
          * <code>org.apache.camel.component.as2.internal.AS2ApiName</code> type.
+         * @group common
          */
         public T apiName(String apiName) {
             this.properties.put("apiName", apiName);
             return (T) this;
         }
         /**
-         * What sub operation to use for the selected operation. The option is a
-         * <code>java.lang.String</code> type.
+         * What sub operation to use for the selected operation.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T methodName(String methodName) {
             this.properties.put("methodName", methodName);
             return (T) this;
         }
         /**
-         * The value of the AS2From header of AS2 message. The option is a
-         * <code>java.lang.String</code> type.
+         * The value of the AS2From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T as2From(String as2From) {
             this.properties.put("as2From", as2From);
@@ -79,9 +85,11 @@ public interface AS2EndpointBuilder {
         /**
          * The structure of AS2 Message. One of: PLAIN - No encryption, no
          * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
-         * no signature, ENCRYPTED_SIGNED - Encryption, signature. The option is
-         * a <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option is a
+         * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
          * type.
+         * @group common
          */
         public T as2MessageStructure(AS2MessageStructure as2MessageStructure) {
             this.properties.put("as2MessageStructure", as2MessageStructure);
@@ -90,26 +98,29 @@ public interface AS2EndpointBuilder {
         /**
          * The structure of AS2 Message. One of: PLAIN - No encryption, no
          * signature, SIGNED - No encryption, signature, ENCRYPTED - Encryption,
-         * no signature, ENCRYPTED_SIGNED - Encryption, signature. The option
-         * will be converted to a
+         * no signature, ENCRYPTED_SIGNED - Encryption, signature.
+         * The option will be converted to a
          * <code>org.apache.camel.component.as2.api.AS2MessageStructure</code>
          * type.
+         * @group common
          */
         public T as2MessageStructure(String as2MessageStructure) {
             this.properties.put("as2MessageStructure", as2MessageStructure);
             return (T) this;
         }
         /**
-         * The value of the AS2To header of AS2 message. The option is a
-         * <code>java.lang.String</code> type.
+         * The value of the AS2To header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T as2To(String as2To) {
             this.properties.put("as2To", as2To);
             return (T) this;
         }
         /**
-         * The version of the AS2 protocol. The option is a
-         * <code>java.lang.String</code> type.
+         * The version of the AS2 protocol.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T as2Version(String as2Version) {
             this.properties.put("as2Version", as2Version);
@@ -117,15 +128,19 @@ public interface AS2EndpointBuilder {
         }
         /**
          * The Client Fully Qualified Domain Name (FQDN). Used in message ids
-         * sent by endpoint. The option is a <code>java.lang.String</code> type.
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T clientFqdn(String clientFqdn) {
             this.properties.put("clientFqdn", clientFqdn);
             return (T) this;
         }
         /**
-         * The algorithm used to compress EDI message. The option is a
+         * The algorithm used to compress EDI message.
+         * The option is a
          * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
          */
         public T compressionAlgorithm(
                 AS2CompressionAlgorithm compressionAlgorithm) {
@@ -133,25 +148,29 @@ public interface AS2EndpointBuilder {
             return (T) this;
         }
         /**
-         * The algorithm used to compress EDI message. The option will be
-         * converted to a
+         * The algorithm used to compress EDI message.
+         * The option will be converted to a
          * <code>org.apache.camel.component.as2.api.AS2CompressionAlgorithm</code> type.
+         * @group common
          */
         public T compressionAlgorithm(String compressionAlgorithm) {
             this.properties.put("compressionAlgorithm", compressionAlgorithm);
             return (T) this;
         }
         /**
-         * The key used to encrypt the EDI message. The option is a
-         * <code>java.security.PrivateKey</code> type.
+         * The key used to encrypt the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
          */
         public T decryptingPrivateKey(PrivateKey decryptingPrivateKey) {
             this.properties.put("decryptingPrivateKey", decryptingPrivateKey);
             return (T) this;
         }
         /**
-         * The key used to encrypt the EDI message. The option will be converted
-         * to a <code>java.security.PrivateKey</code> type.
+         * The key used to encrypt the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
          */
         public T decryptingPrivateKey(String decryptingPrivateKey) {
             this.properties.put("decryptingPrivateKey", decryptingPrivateKey);
@@ -160,16 +179,18 @@ public interface AS2EndpointBuilder {
         /**
          * The value of the Disposition-Notification-To header. Assigning a
          * value to this parameter requests a message disposition notification
-         * (MDN) for the AS2 message. The option is a
-         * <code>java.lang.String</code> type.
+         * (MDN) for the AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T dispositionNotificationTo(String dispositionNotificationTo) {
             this.properties.put("dispositionNotificationTo", dispositionNotificationTo);
             return (T) this;
         }
         /**
-         * The transfer encoding of EDI message. The option is a
-         * <code>java.lang.String</code> type.
+         * The transfer encoding of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T ediMessageTransferEncoding(String ediMessageTransferEncoding) {
             this.properties.put("ediMessageTransferEncoding", ediMessageTransferEncoding);
@@ -177,8 +198,9 @@ public interface AS2EndpointBuilder {
         }
         /**
          * The content type of EDI message. One of application/edifact,
-         * application/edi-x12, application/edi-consent. The option is a
-         * <code>org.apache.http.entity.ContentType</code> type.
+         * application/edi-x12, application/edi-consent.
+         * The option is a <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
          */
         public T ediMessageType(Object ediMessageType) {
             this.properties.put("ediMessageType", ediMessageType);
@@ -186,33 +208,39 @@ public interface AS2EndpointBuilder {
         }
         /**
          * The content type of EDI message. One of application/edifact,
-         * application/edi-x12, application/edi-consent. The option will be
-         * converted to a <code>org.apache.http.entity.ContentType</code> type.
+         * application/edi-x12, application/edi-consent.
+         * The option will be converted to a
+         * <code>org.apache.http.entity.ContentType</code> type.
+         * @group common
          */
         public T ediMessageType(String ediMessageType) {
             this.properties.put("ediMessageType", ediMessageType);
             return (T) this;
         }
         /**
-         * The algorithm used to encrypt EDI message. The option is a
+         * The algorithm used to encrypt EDI message.
+         * The option is a
          * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
          */
         public T encryptingAlgorithm(AS2EncryptionAlgorithm encryptingAlgorithm) {
             this.properties.put("encryptingAlgorithm", encryptingAlgorithm);
             return (T) this;
         }
         /**
-         * The algorithm used to encrypt EDI message. The option will be
-         * converted to a
+         * The algorithm used to encrypt EDI message.
+         * The option will be converted to a
          * <code>org.apache.camel.component.as2.api.AS2EncryptionAlgorithm</code> type.
+         * @group common
          */
         public T encryptingAlgorithm(String encryptingAlgorithm) {
             this.properties.put("encryptingAlgorithm", encryptingAlgorithm);
             return (T) this;
         }
         /**
-         * The chain of certificates used to encrypt EDI message. The option is
-         * a <code>java.security.cert.Certificate[]</code> type.
+         * The chain of certificates used to encrypt EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
          */
         public T encryptingCertificateChain(
                 Certificate[] encryptingCertificateChain) {
@@ -220,17 +248,19 @@ public interface AS2EndpointBuilder {
             return (T) this;
         }
         /**
-         * The chain of certificates used to encrypt EDI message. The option
-         * will be converted to a <code>java.security.cert.Certificate[]</code>
-         * type.
+         * The chain of certificates used to encrypt EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
          */
         public T encryptingCertificateChain(String encryptingCertificateChain) {
             this.properties.put("encryptingCertificateChain", encryptingCertificateChain);
             return (T) this;
         }
         /**
-         * The value of the From header of AS2 message. The option is a
-         * <code>java.lang.String</code> type.
+         * The value of the From header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T from(String from) {
             this.properties.put("from", from);
@@ -239,22 +269,25 @@ public interface AS2EndpointBuilder {
         /**
          * Sets the name of a parameter to be passed in the exchange In Body.
          * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T inBody(String inBody) {
             this.properties.put("inBody", inBody);
             return (T) this;
         }
         /**
-         * The template used to format MDN message. The option is a
-         * <code>java.lang.String</code> type.
+         * The template used to format MDN message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T mdnMessageTemplate(String mdnMessageTemplate) {
             this.properties.put("mdnMessageTemplate", mdnMessageTemplate);
             return (T) this;
         }
         /**
-         * The request URI of EDI message. The option is a
-         * <code>java.lang.String</code> type.
+         * The request URI of EDI message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T requestUri(String requestUri) {
             this.properties.put("requestUri", requestUri);
@@ -262,7 +295,9 @@ public interface AS2EndpointBuilder {
         }
         /**
          * The value included in the Server message header identifying the AS2
-         * Server. The option is a <code>java.lang.String</code> type.
+         * Server.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T server(String server) {
             this.properties.put("server", server);
@@ -270,23 +305,28 @@ public interface AS2EndpointBuilder {
         }
         /**
          * The Server Fully Qualified Domain Name (FQDN). Used in message ids
-         * sent by endpoint. The option is a <code>java.lang.String</code> type.
+         * sent by endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T serverFqdn(String serverFqdn) {
             this.properties.put("serverFqdn", serverFqdn);
             return (T) this;
         }
         /**
-         * The port number of server. The option is a
-         * <code>java.lang.Integer</code> type.
+         * The port number of server.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group common
          */
         public T serverPortNumber(Integer serverPortNumber) {
             this.properties.put("serverPortNumber", serverPortNumber);
             return (T) this;
         }
         /**
-         * The port number of server. The option will be converted to a
-         * <code>java.lang.Integer</code> type.
+         * The port number of server.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group common
          */
         public T serverPortNumber(String serverPortNumber) {
             this.properties.put("serverPortNumber", serverPortNumber);
@@ -295,8 +335,9 @@ public interface AS2EndpointBuilder {
         /**
          * The list of algorithms, in order of preference, requested to generate
          * a message integrity check (MIC) returned in message dispostion
-         * notification (MDN). The option is a <code>java.lang.String[]</code>
-         * type.
+         * notification (MDN).
+         * The option is a <code>java.lang.String[]</code> type.
+         * @group common
          */
         public T signedReceiptMicAlgorithms(String[] signedReceiptMicAlgorithms) {
             this.properties.put("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
@@ -305,75 +346,88 @@ public interface AS2EndpointBuilder {
         /**
          * The list of algorithms, in order of preference, requested to generate
          * a message integrity check (MIC) returned in message dispostion
-         * notification (MDN). The option will be converted to a
-         * <code>java.lang.String[]</code> type.
+         * notification (MDN).
+         * The option will be converted to a <code>java.lang.String[]</code>
+         * type.
+         * @group common
          */
         public T signedReceiptMicAlgorithms(String signedReceiptMicAlgorithms) {
             this.properties.put("signedReceiptMicAlgorithms", signedReceiptMicAlgorithms);
             return (T) this;
         }
         /**
-         * The algorithm used to sign EDI message. The option is a
+         * The algorithm used to sign EDI message.
+         * The option is a
          * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
          * type.
+         * @group common
          */
         public T signingAlgorithm(AS2SignatureAlgorithm signingAlgorithm) {
             this.properties.put("signingAlgorithm", signingAlgorithm);
             return (T) this;
         }
         /**
-         * The algorithm used to sign EDI message. The option will be converted
-         * to a
+         * The algorithm used to sign EDI message.
+         * The option will be converted to a
          * <code>org.apache.camel.component.as2.api.AS2SignatureAlgorithm</code>
          * type.
+         * @group common
          */
         public T signingAlgorithm(String signingAlgorithm) {
             this.properties.put("signingAlgorithm", signingAlgorithm);
             return (T) this;
         }
         /**
-         * The chain of certificates used to sign EDI message. The option is a
-         * <code>java.security.cert.Certificate[]</code> type.
+         * The chain of certificates used to sign EDI message.
+         * The option is a <code>java.security.cert.Certificate[]</code> type.
+         * @group common
          */
         public T signingCertificateChain(Certificate[] signingCertificateChain) {
             this.properties.put("signingCertificateChain", signingCertificateChain);
             return (T) this;
         }
         /**
-         * The chain of certificates used to sign EDI message. The option will
-         * be converted to a <code>java.security.cert.Certificate[]</code> type.
+         * The chain of certificates used to sign EDI message.
+         * The option will be converted to a
+         * <code>java.security.cert.Certificate[]</code> type.
+         * @group common
          */
         public T signingCertificateChain(String signingCertificateChain) {
             this.properties.put("signingCertificateChain", signingCertificateChain);
             return (T) this;
         }
         /**
-         * The key used to sign the EDI message. The option is a
-         * <code>java.security.PrivateKey</code> type.
+         * The key used to sign the EDI message.
+         * The option is a <code>java.security.PrivateKey</code> type.
+         * @group common
          */
         public T signingPrivateKey(PrivateKey signingPrivateKey) {
             this.properties.put("signingPrivateKey", signingPrivateKey);
             return (T) this;
         }
         /**
-         * The key used to sign the EDI message. The option will be converted to
-         * a <code>java.security.PrivateKey</code> type.
+         * The key used to sign the EDI message.
+         * The option will be converted to a
+         * <code>java.security.PrivateKey</code> type.
+         * @group common
          */
         public T signingPrivateKey(String signingPrivateKey) {
             this.properties.put("signingPrivateKey", signingPrivateKey);
             return (T) this;
         }
         /**
-         * The value of Subject header of AS2 message. The option is a
-         * <code>java.lang.String</code> type.
+         * The value of Subject header of AS2 message.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T subject(String subject) {
             this.properties.put("subject", subject);
             return (T) this;
         }
         /**
-         * The host name (IP or DNS name) of target host. The option is a
-         * <code>java.lang.String</code> type.
+         * The host name (IP or DNS name) of target host.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T targetHostname(String targetHostname) {
             this.properties.put("targetHostname", targetHostname);
@@ -382,6 +436,7 @@ public interface AS2EndpointBuilder {
         /**
          * The port number of target host. -1 indicates the scheme default port.
          * The option is a <code>java.lang.Integer</code> type.
+         * @group common
          */
         public T targetPortNumber(Integer targetPortNumber) {
             this.properties.put("targetPortNumber", targetPortNumber);
@@ -391,6 +446,7 @@ public interface AS2EndpointBuilder {
          * The port number of target host. -1 indicates the scheme default port.
          * The option will be converted to a <code>java.lang.Integer</code>
          * type.
+         * @group common
          */
         public T targetPortNumber(String targetPortNumber) {
             this.properties.put("targetPortNumber", targetPortNumber);
@@ -398,7 +454,9 @@ public interface AS2EndpointBuilder {
         }
         /**
          * The value included in the User-Agent message header identifying the
-         * AS2 user agent. The option is a <code>java.lang.String</code> type.
+         * AS2 user agent.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T userAgent(String userAgent) {
             this.properties.put("userAgent", userAgent);
@@ -406,8 +464,9 @@ public interface AS2EndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -415,8 +474,9 @@ public interface AS2EndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -424,8 +484,9 @@ public interface AS2EndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -433,8 +494,9 @@ public interface AS2EndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -460,7 +522,9 @@ public interface AS2EndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AS2ConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -473,7 +537,9 @@ public interface AS2EndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AS2ConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -483,8 +549,10 @@ public interface AS2EndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AS2ConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -495,17 +563,19 @@ public interface AS2EndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AS2ConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (AS2ConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AS2ConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -513,9 +583,10 @@ public interface AS2EndpointBuilder {
             return (AS2ConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AS2ConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java
index fd872fc..03169dd 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ActiveMQEndpointBuilder.java
@@ -45,16 +45,18 @@ public interface ActiveMQEndpointBuilder {
             super("activemq", path);
         }
         /**
-         * The kind of destination to use. The option is a
-         * <code>java.lang.String</code> type.
+         * The kind of destination to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T destinationType(String destinationType) {
             this.properties.put("destinationType", destinationType);
             return (T) this;
         }
         /**
-         * Name of the queue or topic to use as destination. The option is a
-         * <code>java.lang.String</code> type.
+         * Name of the queue or topic to use as destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T destinationName(String destinationName) {
             this.properties.put("destinationName", destinationName);
@@ -65,7 +67,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * Topics instead.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T clientId(String clientId) {
             this.properties.put("clientId", clientId);
@@ -75,8 +79,9 @@ public interface ActiveMQEndpointBuilder {
          * Sets the default connection factory to be used if a connection
          * factory is not specified for either
          * setTemplateConnectionFactory(ConnectionFactory) or
-         * setListenerConnectionFactory(ConnectionFactory). The option is a
-         * <code>javax.jms.ConnectionFactory</code> type.
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option is a <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
          */
         public T connectionFactory(Object connectionFactory) {
             this.properties.put("connectionFactory", connectionFactory);
@@ -86,8 +91,10 @@ public interface ActiveMQEndpointBuilder {
          * Sets the default connection factory to be used if a connection
          * factory is not specified for either
          * setTemplateConnectionFactory(ConnectionFactory) or
-         * setListenerConnectionFactory(ConnectionFactory). The option will be
-         * converted to a <code>javax.jms.ConnectionFactory</code> type.
+         * setListenerConnectionFactory(ConnectionFactory).
+         * The option will be converted to a
+         * <code>javax.jms.ConnectionFactory</code> type.
+         * @group common
          */
         public T connectionFactory(String connectionFactory) {
             this.properties.put("connectionFactory", connectionFactory);
@@ -101,8 +108,9 @@ public interface ActiveMQEndpointBuilder {
          * send back a reply message because another component in your code
          * handles the reply message. You can also use this option if you want
          * to use Camel as a proxy between different message brokers and you
-         * want to route message from one system to another. The option is a
-         * <code>boolean</code> type.
+         * want to route message from one system to another.
+         * The option is a <code>boolean</code> type.
+         * @group common
          */
         public T disableReplyTo(boolean disableReplyTo) {
             this.properties.put("disableReplyTo", disableReplyTo);
@@ -116,8 +124,9 @@ public interface ActiveMQEndpointBuilder {
          * send back a reply message because another component in your code
          * handles the reply message. You can also use this option if you want
          * to use Camel as a proxy between different message brokers and you
-         * want to route message from one system to another. The option will be
-         * converted to a <code>boolean</code> type.
+         * want to route message from one system to another.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T disableReplyTo(String disableReplyTo) {
             this.properties.put("disableReplyTo", disableReplyTo);
@@ -125,8 +134,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * subscriptions. The clientId option must be configured as well.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T durableSubscriptionName(String durableSubscriptionName) {
             this.properties.put("durableSubscriptionName", durableSubscriptionName);
@@ -137,8 +147,10 @@ public interface ActiveMQEndpointBuilder {
          * implementation for sending JMS messages. Possible values are: Bytes,
          * Map, Object, Stream, Text. By default, Camel would determine which
          * JMS message type to use from the In body type. This option allows you
-         * to specify it. The option is a
+         * to specify it.
+         * The option is a
          * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
          */
         public T jmsMessageType(JmsMessageType jmsMessageType) {
             this.properties.put("jmsMessageType", jmsMessageType);
@@ -149,8 +161,10 @@ public interface ActiveMQEndpointBuilder {
          * implementation for sending JMS messages. Possible values are: Bytes,
          * Map, Object, Stream, Text. By default, Camel would determine which
          * JMS message type to use from the In body type. This option allows you
-         * to specify it. The option will be converted to a
+         * to specify it.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.JmsMessageType</code> type.
+         * @group common
          */
         public T jmsMessageType(String jmsMessageType) {
             this.properties.put("jmsMessageType", jmsMessageType);
@@ -163,6 +177,7 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * @group common
          */
         public T testConnectionOnStartup(boolean testConnectionOnStartup) {
             this.properties.put("testConnectionOnStartup", testConnectionOnStartup);
@@ -175,6 +190,7 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T testConnectionOnStartup(String testConnectionOnStartup) {
             this.properties.put("testConnectionOnStartup", testConnectionOnStartup);
@@ -184,7 +200,9 @@ public interface ActiveMQEndpointBuilder {
          * Controls whether or not to include serialized headers. Applies only
          * when isTransferExchange() is true. This requires that the objects are
          * serializable. Camel will exclude any non-serializable objects and log
-         * it at WARN level. The option is a <code>boolean</code> type.
+         * it at WARN level.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T allowSerializedHeaders(boolean allowSerializedHeaders) {
             this.properties.put("allowSerializedHeaders", allowSerializedHeaders);
@@ -194,8 +212,9 @@ public interface ActiveMQEndpointBuilder {
          * Controls whether or not to include serialized headers. Applies only
          * when isTransferExchange() is true. This requires that the objects are
          * serializable. Camel will exclude any non-serializable objects and log
-         * it at WARN level. The option will be converted to a
-         * <code>boolean</code> type.
+         * it at WARN level.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T allowSerializedHeaders(String allowSerializedHeaders) {
             this.properties.put("allowSerializedHeaders", allowSerializedHeaders);
@@ -211,8 +230,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * messages; You can then restart the route to retry.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStartListener(boolean asyncStartListener) {
             this.properties.put("asyncStartListener", asyncStartListener);
@@ -228,8 +248,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be
-         * converted to a <code>boolean</code> type.
+         * messages; You can then restart the route to retry.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStartListener(String asyncStartListener) {
             this.properties.put("asyncStartListener", asyncStartListener);
@@ -237,7 +258,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Whether to stop the JmsConsumer message listener asynchronously, when
-         * stopping a route. The option is a <code>boolean</code> type.
+         * stopping a route.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStopListener(boolean asyncStopListener) {
             this.properties.put("asyncStopListener", asyncStopListener);
@@ -245,8 +268,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Whether to stop the JmsConsumer message listener asynchronously, when
-         * stopping a route. The option will be converted to a
-         * <code>boolean</code> type.
+         * stopping a route.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T asyncStopListener(String asyncStopListener) {
             this.properties.put("asyncStopListener", asyncStopListener);
@@ -254,8 +278,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -263,8 +288,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -274,8 +300,10 @@ public interface ActiveMQEndpointBuilder {
          * 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
+         * destination in a JNDI registry).
+         * The option is a
          * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * @group advanced
          */
         public T destinationResolver(Object destinationResolver) {
             this.properties.put("destinationResolver", destinationResolver);
@@ -285,8 +313,10 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
+         * destination in a JNDI registry).
+         * The option will be converted to a
          * <code>org.springframework.jms.support.destination.DestinationResolver</code> type.
+         * @group advanced
          */
         public T destinationResolver(String destinationResolver) {
             this.properties.put("destinationResolver", destinationResolver);
@@ -299,8 +329,10 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * configure, than having to code a custom errorHandler.
+         * The option is a <code>org.springframework.util.ErrorHandler</code>
+         * type.
+         * @group advanced
          */
         public T errorHandler(Object errorHandler) {
             this.properties.put("errorHandler", errorHandler);
@@ -313,9 +345,10 @@ public interface ActiveMQEndpointBuilder {
          * 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 will
-         * be converted to a <code>org.springframework.util.ErrorHandler</code>
-         * type.
+         * configure, than having to code a custom errorHandler.
+         * The option will be converted to a
+         * <code>org.springframework.util.ErrorHandler</code> type.
+         * @group advanced
          */
         public T errorHandler(String errorHandler) {
             this.properties.put("errorHandler", errorHandler);
@@ -323,8 +356,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * underlying JMS exceptions.
+         * The option is a <code>javax.jms.ExceptionListener</code> type.
+         * @group advanced
          */
         public T exceptionListener(Object exceptionListener) {
             this.properties.put("exceptionListener", exceptionListener);
@@ -332,8 +366,10 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies the JMS Exception Listener that is to be notified of any
-         * underlying JMS exceptions. The option will be converted to a
+         * underlying JMS exceptions.
+         * The option will be converted to a
          * <code>javax.jms.ExceptionListener</code> type.
+         * @group advanced
          */
         public T exceptionListener(String exceptionListener) {
             this.properties.put("exceptionListener", exceptionListener);
@@ -341,8 +377,10 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option is a
+         * Camel message.
+         * The option is a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
          */
         public T headerFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -350,8 +388,10 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option will be converted to a
+         * Camel message.
+         * The option will be converted to a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group advanced
          */
         public T headerFilterStrategy(String headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -359,7 +399,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * idle at any given time.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T idleConsumerLimit(int idleConsumerLimit) {
             this.properties.put("idleConsumerLimit", idleConsumerLimit);
@@ -367,8 +409,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specify the limit for the number of consumers that are allowed to be
-         * idle at any given time. The option will be converted to a
-         * <code>int</code> type.
+         * idle at any given time.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T idleConsumerLimit(String idleConsumerLimit) {
             this.properties.put("idleConsumerLimit", idleConsumerLimit);
@@ -379,8 +422,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * setting). There is additional doc available from Spring.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T idleTaskExecutionLimit(int idleTaskExecutionLimit) {
             this.properties.put("idleTaskExecutionLimit", idleTaskExecutionLimit);
@@ -391,8 +435,9 @@ public interface ActiveMQEndpointBuilder {
          * 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
-         * will be converted to a <code>int</code> type.
+         * setting). There is additional doc available from Spring.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T idleTaskExecutionLimit(String idleTaskExecutionLimit) {
             this.properties.put("idleTaskExecutionLimit", idleTaskExecutionLimit);
@@ -402,8 +447,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * headerFilterStrategy then this option does not apply.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T includeAllJMSXProperties(boolean includeAllJMSXProperties) {
             this.properties.put("includeAllJMSXProperties", includeAllJMSXProperties);
@@ -413,8 +459,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will
-         * be converted to a <code>boolean</code> type.
+         * headerFilterStrategy then this option does not apply.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T includeAllJMSXProperties(String includeAllJMSXProperties) {
             this.properties.put("includeAllJMSXProperties", includeAllJMSXProperties);
@@ -429,9 +476,11 @@ public interface ActiveMQEndpointBuilder {
          * 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
+         * using the # notation.
+         * The option is a
          * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
          * type.
+         * @group advanced
          */
         public T jmsKeyFormatStrategy(Object jmsKeyFormatStrategy) {
             this.properties.put("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
@@ -446,9 +495,11 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
+         * using the # notation.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.JmsKeyFormatStrategy</code>
          * type.
+         * @group advanced
          */
         public T jmsKeyFormatStrategy(String jmsKeyFormatStrategy) {
             this.properties.put("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
@@ -458,6 +509,7 @@ public interface ActiveMQEndpointBuilder {
          * Specifies whether Camel should auto map the received JMS message to a
          * suited payload type, such as javax.jms.TextMessage to a String etc.
          * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapJmsMessage(boolean mapJmsMessage) {
             this.properties.put("mapJmsMessage", mapJmsMessage);
@@ -467,6 +519,7 @@ public interface ActiveMQEndpointBuilder {
          * Specifies whether Camel should auto map the received JMS message to a
          * suited payload type, such as javax.jms.TextMessage to a String etc.
          * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapJmsMessage(String mapJmsMessage) {
             this.properties.put("mapJmsMessage", mapJmsMessage);
@@ -476,8 +529,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * shrink when less work is required.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T maxMessagesPerTask(int maxMessagesPerTask) {
             this.properties.put("maxMessagesPerTask", maxMessagesPerTask);
@@ -487,8 +541,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
-         * <code>int</code> type.
+         * shrink when less work is required.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T maxMessagesPerTask(String maxMessagesPerTask) {
             this.properties.put("maxMessagesPerTask", maxMessagesPerTask);
@@ -497,8 +552,10 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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
+         * 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
          */
         public T messageConverter(Object messageConverter) {
             this.properties.put("messageConverter", messageConverter);
@@ -507,9 +564,10 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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 will
-         * be converted to a
+         * be in control how to map to/from a javax.jms.Message.
+         * The option will be converted to a
          * <code>org.springframework.jms.support.converter.MessageConverter</code> type.
+         * @group advanced
          */
         public T messageConverter(String messageConverter) {
             this.properties.put("messageConverter", messageConverter);
@@ -518,9 +576,11 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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
+         * sending a JMS message.
+         * The option is a
          * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
          * type.
+         * @group advanced
          */
         public T messageCreatedStrategy(Object messageCreatedStrategy) {
             this.properties.put("messageCreatedStrategy", messageCreatedStrategy);
@@ -529,9 +589,11 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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 will be converted to a
+         * sending a JMS message.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.MessageCreatedStrategy</code>
          * type.
+         * @group advanced
          */
         public T messageCreatedStrategy(String messageCreatedStrategy) {
             this.properties.put("messageCreatedStrategy", messageCreatedStrategy);
@@ -542,7 +604,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * unique value.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageIdEnabled(boolean messageIdEnabled) {
             this.properties.put("messageIdEnabled", messageIdEnabled);
@@ -553,8 +617,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a <code>boolean</code>
-         * type.
+         * unique value.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageIdEnabled(String messageIdEnabled) {
             this.properties.put("messageIdEnabled", messageIdEnabled);
@@ -565,8 +630,10 @@ public interface ActiveMQEndpointBuilder {
          * what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
          * use to consume messages. Setting this will automatically set
-         * consumerType to Custom. The option is a
+         * consumerType to Custom.
+         * The option is a
          * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
          */
         public T messageListenerContainerFactory(
                 Object messageListenerContainerFactory) {
@@ -578,8 +645,10 @@ public interface ActiveMQEndpointBuilder {
          * what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
          * use to consume messages. Setting this will automatically set
-         * consumerType to Custom. The option will be converted to a
+         * consumerType to Custom.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.MessageListenerContainerFactory</code> type.
+         * @group advanced
          */
         public T messageListenerContainerFactory(
                 String messageListenerContainerFactory) {
@@ -591,7 +660,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * its normal value.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageTimestampEnabled(boolean messageTimestampEnabled) {
             this.properties.put("messageTimestampEnabled", messageTimestampEnabled);
@@ -602,8 +673,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * its normal value.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T messageTimestampEnabled(String messageTimestampEnabled) {
             this.properties.put("messageTimestampEnabled", messageTimestampEnabled);
@@ -611,7 +683,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies whether to inhibit the delivery of messages published by
-         * its own connection. The option is a <code>boolean</code> type.
+         * its own connection.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T pubSubNoLocal(boolean pubSubNoLocal) {
             this.properties.put("pubSubNoLocal", pubSubNoLocal);
@@ -619,24 +693,27 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies whether to inhibit the delivery of messages published by
-         * its own connection. The option will be converted to a
-         * <code>boolean</code> type.
+         * its own connection.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T pubSubNoLocal(String pubSubNoLocal) {
             this.properties.put("pubSubNoLocal", pubSubNoLocal);
             return (T) this;
         }
         /**
-         * The timeout for receiving messages (in milliseconds). The option is a
-         * <code>long</code> type.
+         * The timeout for receiving messages (in milliseconds).
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T receiveTimeout(long receiveTimeout) {
             this.properties.put("receiveTimeout", receiveTimeout);
             return (T) this;
         }
         /**
-         * The timeout for receiving messages (in milliseconds). The option will
-         * be converted to a <code>long</code> type.
+         * The timeout for receiving messages (in milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T receiveTimeout(String receiveTimeout) {
             this.properties.put("receiveTimeout", receiveTimeout);
@@ -645,7 +722,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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.
+         * ms, that is, 5 seconds.
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T recoveryInterval(long recoveryInterval) {
             this.properties.put("recoveryInterval", recoveryInterval);
@@ -654,8 +733,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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 will be converted to a
-         * <code>long</code> type.
+         * ms, that is, 5 seconds.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T recoveryInterval(String recoveryInterval) {
             this.properties.put("recoveryInterval", recoveryInterval);
@@ -666,8 +746,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * determined by the option requestTimeout.
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T requestTimeoutCheckerInterval(
                 long requestTimeoutCheckerInterval) {
@@ -679,8 +760,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted
-         * to a <code>long</code> type.
+         * determined by the option requestTimeout.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T requestTimeoutCheckerInterval(
                 String requestTimeoutCheckerInterval) {
@@ -689,8 +771,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -698,8 +781,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -717,6 +801,7 @@ public interface ActiveMQEndpointBuilder {
          * the consumer side can be wrapped in an outer exception such as
          * org.apache.camel.RuntimeCamelException when returned to the producer.
          * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferException(boolean transferException) {
             this.properties.put("transferException", transferException);
@@ -734,6 +819,7 @@ public interface ActiveMQEndpointBuilder {
          * the consumer side can be wrapped in an outer exception such as
          * org.apache.camel.RuntimeCamelException when returned to the producer.
          * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferException(String transferException) {
             this.properties.put("transferException", transferException);
@@ -747,7 +833,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * a regular payload.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferExchange(boolean transferExchange) {
             this.properties.put("transferExchange", transferExchange);
@@ -761,8 +849,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * a regular payload.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferExchange(String transferExchange) {
             this.properties.put("transferExchange", transferExchange);
@@ -777,8 +866,9 @@ public interface ActiveMQEndpointBuilder {
          * fault flag will be set on the
          * org.apache.camel.Message#setFault(boolean). You may want to enable
          * this when using Camel components that support faults such as SOAP
-         * based such as cxf or spring-ws. The option is a <code>boolean</code>
-         * type.
+         * based such as cxf or spring-ws.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferFault(boolean transferFault) {
             this.properties.put("transferFault", transferFault);
@@ -793,8 +883,9 @@ public interface ActiveMQEndpointBuilder {
          * fault flag will be set on the
          * org.apache.camel.Message#setFault(boolean). You may want to enable
          * this when using Camel components that support faults such as SOAP
-         * based such as cxf or spring-ws. The option will be converted to a
-         * <code>boolean</code> type.
+         * based such as cxf or spring-ws.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T transferFault(String transferFault) {
             this.properties.put("transferFault", transferFault);
@@ -802,8 +893,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies whether JMSMessageID should always be used as
-         * JMSCorrelationID for InOut messages. The option is a
-         * <code>boolean</code> type.
+         * JMSCorrelationID for InOut messages.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T useMessageIDAsCorrelationID(boolean useMessageIDAsCorrelationID) {
             this.properties.put("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
@@ -811,8 +903,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies whether JMSMessageID should always be used as
-         * JMSCorrelationID for InOut messages. The option will be converted to
-         * a <code>boolean</code> type.
+         * JMSCorrelationID for InOut messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T useMessageIDAsCorrelationID(String useMessageIDAsCorrelationID) {
             this.properties.put("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID);
@@ -821,8 +914,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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.
+         * when the option useMessageIDAsCorrelationID is enabled.
+         * The option is a <code>int</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedCounter(
                 int waitForProvisionCorrelationToBeUpdatedCounter) {
@@ -832,8 +926,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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
-         * will be converted to a <code>int</code> type.
+         * when the option useMessageIDAsCorrelationID is enabled.
+         * The option will be converted to a <code>int</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedCounter(
                 String waitForProvisionCorrelationToBeUpdatedCounter) {
@@ -842,7 +937,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Interval in millis to sleep each time while waiting for provisional
-         * correlation id to be updated. The option is a <code>long</code> type.
+         * correlation id to be updated.
+         * The option is a <code>long</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
                 long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
@@ -851,8 +948,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Interval in millis to sleep each time while waiting for provisional
-         * correlation id to be updated. The option will be converted to a
-         * <code>long</code> type.
+         * correlation id to be updated.
+         * The option will be converted to a <code>long</code> type.
+         * @group advanced
          */
         public T waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(
                 String waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
@@ -861,8 +959,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * username/password directly on the ConnectionFactory.
+         * The option is a <code>java.lang.String</code> type.
+         * @group security
          */
         public T password(String password) {
             this.properties.put("password", password);
@@ -870,24 +969,27 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * username/password directly on the ConnectionFactory.
+         * The option is a <code>java.lang.String</code> type.
+         * @group security
          */
         public T username(String username) {
             this.properties.put("username", username);
             return (T) this;
         }
         /**
-         * Specifies whether to use transacted mode. The option is a
-         * <code>boolean</code> type.
+         * Specifies whether to use transacted mode.
+         * The option is a <code>boolean</code> type.
+         * @group transaction
          */
         public T transacted(boolean transacted) {
             this.properties.put("transacted", transacted);
             return (T) this;
         }
         /**
-         * Specifies whether to use transacted mode. The option will be
-         * converted to a <code>boolean</code> type.
+         * Specifies whether to use transacted mode.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction
          */
         public T transacted(String transacted) {
             this.properties.put("transacted", transacted);
@@ -895,8 +997,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * transactionManager injected when option transacted=true.
+         * The option is a <code>boolean</code> type.
+         * @group transaction (advanced)
          */
         public T lazyCreateTransactionManager(
                 boolean lazyCreateTransactionManager) {
@@ -905,8 +1008,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * If true, Camel will create a JmsTransactionManager, if there is no
-         * transactionManager injected when option transacted=true. The option
-         * will be converted to a <code>boolean</code> type.
+         * transactionManager injected when option transacted=true.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group transaction (advanced)
          */
         public T lazyCreateTransactionManager(
                 String lazyCreateTransactionManager) {
@@ -914,25 +1018,29 @@ public interface ActiveMQEndpointBuilder {
             return (T) this;
         }
         /**
-         * The Spring transaction manager to use. The option is a
+         * The Spring transaction manager to use.
+         * The option is a
          * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
          */
         public T transactionManager(Object transactionManager) {
             this.properties.put("transactionManager", transactionManager);
             return (T) this;
         }
         /**
-         * The Spring transaction manager to use. The option will be converted
-         * to a
+         * The Spring transaction manager to use.
+         * The option will be converted to a
          * <code>org.springframework.transaction.PlatformTransactionManager</code> type.
+         * @group transaction (advanced)
          */
         public T transactionManager(String transactionManager) {
             this.properties.put("transactionManager", transactionManager);
             return (T) this;
         }
         /**
-         * The name of the transaction to use. The option is a
-         * <code>java.lang.String</code> type.
+         * The name of the transaction to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group transaction (advanced)
          */
         public T transactionName(String transactionName) {
             this.properties.put("transactionName", transactionName);
@@ -940,7 +1048,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * The timeout value of the transaction (in seconds), if using
-         * transacted mode. The option is a <code>int</code> type.
+         * transacted mode.
+         * The option is a <code>int</code> type.
+         * @group transaction (advanced)
          */
         public T transactionTimeout(int transactionTimeout) {
             this.properties.put("transactionTimeout", transactionTimeout);
@@ -948,8 +1058,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * The timeout value of the transaction (in seconds), if using
-         * transacted mode. The option will be converted to a <code>int</code>
-         * type.
+         * transacted mode.
+         * The option will be converted to a <code>int</code> type.
+         * @group transaction (advanced)
          */
         public T transactionTimeout(String transactionTimeout) {
             this.properties.put("transactionTimeout", transactionTimeout);
@@ -970,8 +1081,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder acknowledgementModeName(
                 String acknowledgementModeName) {
@@ -988,7 +1100,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * async transactions).
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder asyncConsumer(boolean asyncConsumer) {
             this.properties.put("asyncConsumer", asyncConsumer);
@@ -1004,24 +1118,27 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * async transactions).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder asyncConsumer(String asyncConsumer) {
             this.properties.put("asyncConsumer", asyncConsumer);
             return (ActiveMQConsumerBuilder) this;
         }
         /**
-         * Specifies whether the consumer container should auto-startup. The
-         * option is a <code>boolean</code> type.
+         * Specifies whether the consumer container should auto-startup.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder autoStartup(boolean autoStartup) {
             this.properties.put("autoStartup", autoStartup);
             return (ActiveMQConsumerBuilder) this;
         }
         /**
-         * Specifies whether the consumer container should auto-startup. The
-         * option will be converted to a <code>boolean</code> type.
+         * Specifies whether the consumer container should auto-startup.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder autoStartup(String autoStartup) {
             this.properties.put("autoStartup", autoStartup);
@@ -1034,7 +1151,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -1048,7 +1167,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -1057,8 +1178,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * cacheLevelName option for more details.
+         * The option is a <code>int</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder cacheLevel(int cacheLevel) {
             this.properties.put("cacheLevel", cacheLevel);
@@ -1066,8 +1188,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Sets the cache level by ID for the underlying JMS resources. See
-         * cacheLevelName option for more details. The option will be converted
-         * to a <code>int</code> type.
+         * cacheLevelName option for more details.
+         * The option will be converted to a <code>int</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder cacheLevel(String cacheLevel) {
             this.properties.put("cacheLevel", cacheLevel);
@@ -1078,7 +1201,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * information.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder cacheLevelName(String cacheLevelName) {
             this.properties.put("cacheLevelName", cacheLevelName);
@@ -1090,8 +1215,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * consumers on the reply message listener.
+         * The option is a <code>int</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder concurrentConsumers(
                 int concurrentConsumers) {
@@ -1104,8 +1230,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted
-         * to a <code>int</code> type.
+         * consumers on the reply message listener.
+         * The option will be converted to a <code>int</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder concurrentConsumers(
                 String concurrentConsumers) {
@@ -1118,8 +1245,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * consumers on the reply message listener.
+         * The option is a <code>int</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder maxConcurrentConsumers(
                 int maxConcurrentConsumers) {
@@ -1132,8 +1260,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted
-         * to a <code>int</code> type.
+         * consumers on the reply message listener.
+         * The option will be converted to a <code>int</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder maxConcurrentConsumers(
                 String maxConcurrentConsumers) {
@@ -1142,8 +1271,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Provides an explicit ReplyTo destination, which overrides any
-         * incoming value of Message.getJMSReplyTo(). The option is a
-         * <code>java.lang.String</code> type.
+         * incoming value of Message.getJMSReplyTo().
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder replyTo(String replyTo) {
             this.properties.put("replyTo", replyTo);
@@ -1152,6 +1282,7 @@ public interface ActiveMQEndpointBuilder {
         /**
          * Specifies whether to use persistent delivery by default for replies.
          * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder replyToDeliveryPersistent(
                 boolean replyToDeliveryPersistent) {
@@ -1161,6 +1292,7 @@ public interface ActiveMQEndpointBuilder {
         /**
          * Specifies whether to use persistent delivery by default for replies.
          * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder replyToDeliveryPersistent(
                 String replyToDeliveryPersistent) {
@@ -1168,8 +1300,9 @@ public interface ActiveMQEndpointBuilder {
             return (ActiveMQConsumerBuilder) this;
         }
         /**
-         * Sets the JMS selector to use. The option is a
-         * <code>java.lang.String</code> type.
+         * Sets the JMS selector to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder selector(String selector) {
             this.properties.put("selector", selector);
@@ -1183,7 +1316,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * pubSubDomain flag as well.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder subscriptionDurable(
                 boolean subscriptionDurable) {
@@ -1198,8 +1333,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * pubSubDomain flag as well.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder subscriptionDurable(
                 String subscriptionDurable) {
@@ -1213,8 +1349,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * for a shared subscription (which requires JMS 2.0).
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder subscriptionName(String subscriptionName) {
             this.properties.put("subscriptionName", subscriptionName);
@@ -1231,7 +1368,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * broker.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder subscriptionShared(
                 boolean subscriptionShared) {
@@ -1249,7 +1388,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * broker.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ActiveMQConsumerBuilder subscriptionShared(
                 String subscriptionShared) {
@@ -1264,8 +1405,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * avoid this its recommended to enable this option.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder acceptMessagesWhileStopping(
                 boolean acceptMessagesWhileStopping) {
@@ -1280,8 +1422,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be
-         * converted to a <code>boolean</code> type.
+         * avoid this its recommended to enable this option.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder acceptMessagesWhileStopping(
                 String acceptMessagesWhileStopping) {
@@ -1295,8 +1438,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * but to enable for reply managers you must enable this flag.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder allowReplyManagerQuickStop(
                 boolean allowReplyManagerQuickStop) {
@@ -1310,8 +1454,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * but to enable for reply managers you must enable this flag.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder allowReplyManagerQuickStop(
                 String allowReplyManagerQuickStop) {
@@ -1328,8 +1473,10 @@ public interface ActiveMQEndpointBuilder {
          * Custom is specified, the MessageListenerContainerFactory defined by
          * the messageListenerContainerFactory option will determine what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use. The option is a
+         * use.
+         * The option is a
          * <code>org.apache.camel.component.jms.ConsumerType</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder consumerType(ConsumerType consumerType) {
             this.properties.put("consumerType", consumerType);
@@ -1345,8 +1492,10 @@ public interface ActiveMQEndpointBuilder {
          * Custom is specified, the MessageListenerContainerFactory defined by
          * the messageListenerContainerFactory option will determine what
          * org.springframework.jms.listener.AbstractMessageListenerContainer to
-         * use. The option will be converted to a
+         * use.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.ConsumerType</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder consumerType(String consumerType) {
             this.properties.put("consumerType", consumerType);
@@ -1362,9 +1511,11 @@ public interface ActiveMQEndpointBuilder {
          * 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
+         * decreasing concurrent consumers.
+         * The option is a
          * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
          * type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder defaultTaskExecutorType(
                 DefaultTaskExecutorType defaultTaskExecutorType) {
@@ -1381,9 +1532,11 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
+         * decreasing concurrent consumers.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.DefaultTaskExecutorType</code>
          * type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder defaultTaskExecutorType(
                 String defaultTaskExecutorType) {
@@ -1395,7 +1548,9 @@ public interface ActiveMQEndpointBuilder {
          * 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. The option is a <code>boolean</code> type.
+         * properties.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder eagerLoadingOfProperties(
                 boolean eagerLoadingOfProperties) {
@@ -1407,8 +1562,9 @@ public interface ActiveMQEndpointBuilder {
          * 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. The option will be converted to a <code>boolean</code>
-         * type.
+         * properties.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder eagerLoadingOfProperties(
                 String eagerLoadingOfProperties) {
@@ -1419,8 +1575,10 @@ public interface ActiveMQEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -1431,17 +1589,19 @@ public interface ActiveMQEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (ActiveMQConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -1449,9 +1609,10 @@ public interface ActiveMQEndpointBuilder {
             return (ActiveMQConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
@@ -1459,7 +1620,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies whether the listener session should be exposed when
-         * consuming messages. The option is a <code>boolean</code> type.
+         * consuming messages.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder exposeListenerSession(
                 boolean exposeListenerSession) {
@@ -1468,8 +1631,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies whether the listener session should be exposed when
-         * consuming messages. The option will be converted to a
-         * <code>boolean</code> type.
+         * consuming messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder exposeListenerSession(
                 String exposeListenerSession) {
@@ -1480,7 +1644,9 @@ public interface ActiveMQEndpointBuilder {
          * Whether a JMS consumer is allowed to send a reply message to the same
          * destination that the consumer is using to consume from. This prevents
          * an endless loop by consuming and sending back the same message to
-         * itself. The option is a <code>boolean</code> type.
+         * itself.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder replyToSameDestinationAllowed(
                 boolean replyToSameDestinationAllowed) {
@@ -1491,7 +1657,9 @@ public interface ActiveMQEndpointBuilder {
          * Whether a JMS consumer is allowed to send a reply message to the same
          * destination that the consumer is using to consume from. This prevents
          * an endless loop by consuming and sending back the same message to
-         * itself. The option will be converted to a <code>boolean</code> type.
+         * itself.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder replyToSameDestinationAllowed(
                 String replyToSameDestinationAllowed) {
@@ -1502,6 +1670,7 @@ public interface ActiveMQEndpointBuilder {
          * 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)
          */
         public ActiveMQConsumerBuilder taskExecutor(Object taskExecutor) {
             this.properties.put("taskExecutor", taskExecutor);
@@ -1511,6 +1680,7 @@ public interface ActiveMQEndpointBuilder {
          * Allows you to specify a custom task executor for consuming messages.
          * The option will be converted to a
          * <code>org.springframework.core.task.TaskExecutor</code> type.
+         * @group consumer (advanced)
          */
         public ActiveMQConsumerBuilder taskExecutor(String taskExecutor) {
             this.properties.put("taskExecutor", taskExecutor);
@@ -1518,8 +1688,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Allows to configure the default errorHandler logging level for
-         * logging uncaught exceptions. The option is a
-         * <code>org.apache.camel.LoggingLevel</code> type.
+         * logging uncaught exceptions.
+         * The option is a <code>org.apache.camel.LoggingLevel</code> type.
+         * @group logging
          */
         public ActiveMQConsumerBuilder errorHandlerLoggingLevel(
                 LoggingLevel errorHandlerLoggingLevel) {
@@ -1528,8 +1699,10 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Allows to configure the default errorHandler logging level for
-         * logging uncaught exceptions. The option will be converted to a
+         * logging uncaught exceptions.
+         * The option will be converted to a
          * <code>org.apache.camel.LoggingLevel</code> type.
+         * @group logging
          */
         public ActiveMQConsumerBuilder errorHandlerLoggingLevel(
                 String errorHandlerLoggingLevel) {
@@ -1538,7 +1711,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Allows to control whether stacktraces should be logged or not, by the
-         * default errorHandler. The option is a <code>boolean</code> type.
+         * default errorHandler.
+         * The option is a <code>boolean</code> type.
+         * @group logging
          */
         public ActiveMQConsumerBuilder errorHandlerLogStackTrace(
                 boolean errorHandlerLogStackTrace) {
@@ -1547,8 +1722,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Allows to control whether stacktraces should be logged or not, by the
-         * default errorHandler. The option will be converted to a
-         * <code>boolean</code> type.
+         * default errorHandler.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group logging
          */
         public ActiveMQConsumerBuilder errorHandlerLogStackTrace(
                 String errorHandlerLogStackTrace) {
@@ -1571,7 +1747,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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.
+         * = 2.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder deliveryMode(Integer deliveryMode) {
             this.properties.put("deliveryMode", deliveryMode);
@@ -1580,16 +1758,19 @@ public interface ActiveMQEndpointBuilder {
         /**
          * Specifies the delivery mode to be used. Possibles values are those
          * defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT
-         * = 2. The option will be converted to a <code>java.lang.Integer</code>
+         * = 2.
+         * The option will be converted to a <code>java.lang.Integer</code>
          * type.
+         * @group producer
          */
         public ActiveMQProducerBuilder deliveryMode(String deliveryMode) {
             this.properties.put("deliveryMode", deliveryMode);
             return (ActiveMQProducerBuilder) this;
         }
         /**
-         * Specifies whether persistent delivery is used by default. The option
-         * is a <code>boolean</code> type.
+         * Specifies whether persistent delivery is used by default.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder deliveryPersistent(
                 boolean deliveryPersistent) {
@@ -1597,8 +1778,9 @@ public interface ActiveMQEndpointBuilder {
             return (ActiveMQProducerBuilder) this;
         }
         /**
-         * Specifies whether persistent delivery is used by default. The option
-         * will be converted to a <code>boolean</code> type.
+         * Specifies whether persistent delivery is used by default.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder deliveryPersistent(
                 String deliveryPersistent) {
@@ -1613,6 +1795,7 @@ public interface ActiveMQEndpointBuilder {
          * preserveMessageQos option, which operates at message granularity,
          * reading QoS properties exclusively from the Camel In message headers.
          * The option is a <code>java.lang.Boolean</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder explicitQosEnabled(
                 Boolean explicitQosEnabled) {
@@ -1628,6 +1811,7 @@ public interface ActiveMQEndpointBuilder {
          * reading QoS properties exclusively from the Camel In message headers.
          * The option will be converted to a <code>java.lang.Boolean</code>
          * type.
+         * @group producer
          */
         public ActiveMQProducerBuilder explicitQosEnabled(
                 String explicitQosEnabled) {
@@ -1636,7 +1820,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Sets whether date headers should be formatted according to the ISO
-         * 8601 standard. The option is a <code>boolean</code> type.
+         * 8601 standard.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder formatDateHeadersToIso8601(
                 boolean formatDateHeadersToIso8601) {
@@ -1645,8 +1831,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Sets whether date headers should be formatted according to the ISO
-         * 8601 standard. The option will be converted to a <code>boolean</code>
-         * type.
+         * 8601 standard.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder formatDateHeadersToIso8601(
                 String formatDateHeadersToIso8601) {
@@ -1662,8 +1849,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * values from the message header.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder preserveMessageQos(
                 boolean preserveMessageQos) {
@@ -1679,8 +1867,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
-         * <code>boolean</code> type.
+         * values from the message header.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder preserveMessageQos(
                 String preserveMessageQos) {
@@ -1691,7 +1880,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * option to have any effect.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder priority(int priority) {
             this.properties.put("priority", priority);
@@ -1701,8 +1892,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
-         * <code>int</code> type.
+         * option to have any effect.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder priority(String priority) {
             this.properties.put("priority", priority);
@@ -1711,8 +1903,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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.
+         * control dynamic scaling up/down of threads.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToConcurrentConsumers(
                 int replyToConcurrentConsumers) {
@@ -1722,8 +1915,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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 will be
-         * converted to a <code>int</code> type.
+         * control dynamic scaling up/down of threads.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToConcurrentConsumers(
                 String replyToConcurrentConsumers) {
@@ -1733,8 +1927,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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.
+         * control dynamic scaling up/down of threads.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToMaxConcurrentConsumers(
                 int replyToMaxConcurrentConsumers) {
@@ -1744,8 +1939,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * 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 will be
-         * converted to a <code>int</code> type.
+         * control dynamic scaling up/down of threads.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToMaxConcurrentConsumers(
                 String replyToMaxConcurrentConsumers) {
@@ -1754,8 +1950,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * 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.
+         * routing when timeout occurred when using request/reply over JMS.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
                 int replyToOnTimeoutMaxConcurrentConsumers) {
@@ -1764,8 +1961,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * Specifies the maximum number of concurrent consumers for continue
-         * routing when timeout occurred when using request/reply over JMS. The
-         * option will be converted to a <code>int</code> type.
+         * routing when timeout occurred when using request/reply over JMS.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToOnTimeoutMaxConcurrentConsumers(
                 String replyToOnTimeoutMaxConcurrentConsumers) {
@@ -1776,8 +1974,9 @@ public interface ActiveMQEndpointBuilder {
          * Provides an explicit ReplyTo destination in the JMS message, which
          * overrides the setting of replyTo. It is useful if you want to forward
          * the message to a remote Queue and receive the reply message from the
-         * ReplyTo destination. The option is a <code>java.lang.String</code>
-         * type.
+         * ReplyTo destination.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToOverride(String replyToOverride) {
             this.properties.put("replyToOverride", replyToOverride);
@@ -1792,9 +1991,10 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * lower performance than its alternatives Temporary and Exclusive.
+         * The option is a
+         * <code>org.apache.camel.component.jms.ReplyToType</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToType(ReplyToType replyToType) {
             this.properties.put("replyToType", replyToType);
@@ -1809,9 +2009,10 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a
+         * lower performance than its alternatives Temporary and Exclusive.
+         * The option will be converted to a
          * <code>org.apache.camel.component.jms.ReplyToType</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder replyToType(String replyToType) {
             this.properties.put("replyToType", replyToType);
@@ -1824,6 +2025,7 @@ public interface ActiveMQEndpointBuilder {
          * configured timeout value, and thus have per message individual
          * timeout values. See also the requestTimeoutCheckerInterval option.
          * The option is a <code>long</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder requestTimeout(long requestTimeout) {
             this.properties.put("requestTimeout", requestTimeout);
@@ -1836,6 +2038,7 @@ public interface ActiveMQEndpointBuilder {
          * configured timeout value, and thus have per message individual
          * timeout values. See also the requestTimeoutCheckerInterval option.
          * The option will be converted to a <code>long</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder requestTimeout(String requestTimeout) {
             this.properties.put("requestTimeout", requestTimeout);
@@ -1843,7 +2046,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * When sending messages, specifies the time-to-live of the message (in
-         * milliseconds). The option is a <code>long</code> type.
+         * milliseconds).
+         * The option is a <code>long</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder timeToLive(long timeToLive) {
             this.properties.put("timeToLive", timeToLive);
@@ -1851,8 +2056,9 @@ public interface ActiveMQEndpointBuilder {
         }
         /**
          * When sending messages, specifies the time-to-live of the message (in
-         * milliseconds). The option will be converted to a <code>long</code>
-         * type.
+         * milliseconds).
+         * The option will be converted to a <code>long</code> type.
+         * @group producer
          */
         public ActiveMQProducerBuilder timeToLive(String timeToLive) {
             this.properties.put("timeToLive", timeToLive);
@@ -1864,8 +2070,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * use as suffix for wildcard matching.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder allowAdditionalHeaders(
                 String allowAdditionalHeaders) {
@@ -1876,6 +2083,7 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder allowNullBody(boolean allowNullBody) {
             this.properties.put("allowNullBody", allowNullBody);
@@ -1885,6 +2093,7 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder allowNullBody(String allowNullBody) {
             this.properties.put("allowNullBody", allowNullBody);
@@ -1896,8 +2105,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * replyToDestinationSelectorName is set).
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder alwaysCopyMessage(
                 boolean alwaysCopyMessage) {
@@ -1910,8 +2120,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted
-         * to a <code>boolean</code> type.
+         * replyToDestinationSelectorName is set).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder alwaysCopyMessage(
                 String alwaysCopyMessage) {
@@ -1925,7 +2136,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder correlationProperty(
                 String correlationProperty) {
@@ -1941,7 +2154,9 @@ public interface ActiveMQEndpointBuilder {
          * to archive. So you can use disableTimeToLive=true to not set a time
          * to live value on the sent message. Then the message will not expire
          * on the receiver system. See below in section About time to live for
-         * more details. The option is a <code>boolean</code> type.
+         * more details.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder disableTimeToLive(
                 boolean disableTimeToLive) {
@@ -1957,8 +2172,9 @@ public interface ActiveMQEndpointBuilder {
          * to archive. So you can use disableTimeToLive=true to not set a time
          * to live value on the sent message. Then the message will not expire
          * on the receiver system. See below in section About time to live for
-         * more details. The option will be converted to a <code>boolean</code>
-         * type.
+         * more details.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder disableTimeToLive(
                 String disableTimeToLive) {
@@ -1969,8 +2185,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * original JMS message that was received.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder forceSendOriginalMessage(
                 boolean forceSendOriginalMessage) {
@@ -1981,8 +2198,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted
-         * to a <code>boolean</code> type.
+         * original JMS message that was received.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder forceSendOriginalMessage(
                 String forceSendOriginalMessage) {
@@ -1993,8 +2211,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * message was sent to the JMS destination.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder includeSentJMSMessageID(
                 boolean includeSentJMSMessageID) {
@@ -2005,8 +2224,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted
-         * to a <code>boolean</code> type.
+         * message was sent to the JMS destination.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder includeSentJMSMessageID(
                 String includeSentJMSMessageID) {
@@ -2022,8 +2242,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * value such as CACHE_CONSUMER or CACHE_SESSION.
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder replyToCacheLevelName(
                 String replyToCacheLevelName) {
@@ -2033,8 +2254,9 @@ public interface ActiveMQEndpointBuilder {
         /**
          * Sets the JMS Selector using the fixed name to be used so you can
          * filter out your own replies from the others when using a shared queue
-         * (that is, if you are not using a temporary reply queue). The option
-         * is a <code>java.lang.String</code> type.
+         * (that is, if you are not using a temporary reply queue).
+         * The option is a <code>java.lang.String</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder replyToDestinationSelectorName(
                 String replyToDestinationSelectorName) {
@@ -2048,8 +2270,9 @@ public interface ActiveMQEndpointBuilder {
          * 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.
+         * chunk is then written to the StreamMessage until no more data.
+         * The option is a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder streamMessageTypeEnabled(
                 boolean streamMessageTypeEnabled) {
@@ -2063,8 +2286,9 @@ public interface ActiveMQEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * chunk is then written to the StreamMessage until no more data.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer (advanced)
          */
         public ActiveMQProducerBuilder streamMessageTypeEnabled(
                 String streamMessageTypeEnabled) {
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AhcEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AhcEndpointBuilder.java
index d8ea34b..b80fa51 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AhcEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AhcEndpointBuilder.java
@@ -43,16 +43,18 @@ public interface AhcEndpointBuilder {
             super("ahc", path);
         }
         /**
-         * The URI to use such as http://hostname:port/path. The option is a
-         * <code>java.net.URI</code> type.
+         * The URI to use such as http://hostname:port/path.
+         * The option is a <code>java.net.URI</code> type.
+         * @group producer
          */
         public T httpUri(URI httpUri) {
             this.properties.put("httpUri", httpUri);
             return (T) this;
         }
         /**
-         * The URI to use such as http://hostname:port/path. The option will be
-         * converted to a <code>java.net.URI</code> type.
+         * The URI to use such as http://hostname:port/path.
+         * The option will be converted to a <code>java.net.URI</code> type.
+         * @group producer
          */
         public T httpUri(String httpUri) {
             this.properties.put("httpUri", httpUri);
@@ -62,7 +64,9 @@ public interface AhcEndpointBuilder {
          * If the option is true, then the Exchange.HTTP_URI header is ignored,
          * and use the endpoint's URI for request. You may also set the
          * throwExceptionOnFailure to be false to let the AhcProducer send all
-         * the fault response back. The option is a <code>boolean</code> type.
+         * the fault response back.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public T bridgeEndpoint(boolean bridgeEndpoint) {
             this.properties.put("bridgeEndpoint", bridgeEndpoint);
@@ -72,8 +76,9 @@ public interface AhcEndpointBuilder {
          * If the option is true, then the Exchange.HTTP_URI header is ignored,
          * and use the endpoint's URI for request. You may also set the
          * throwExceptionOnFailure to be false to let the AhcProducer send all
-         * the fault response back. The option will be converted to a
-         * <code>boolean</code> type.
+         * the fault response back.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public T bridgeEndpoint(String bridgeEndpoint) {
             this.properties.put("bridgeEndpoint", bridgeEndpoint);
@@ -81,7 +86,9 @@ public interface AhcEndpointBuilder {
         }
         /**
          * The initial in-memory buffer size used when transferring data between
-         * Camel and AHC Client. The option is a <code>int</code> type.
+         * Camel and AHC Client.
+         * The option is a <code>int</code> type.
+         * @group producer
          */
         public T bufferSize(int bufferSize) {
             this.properties.put("bufferSize", bufferSize);
@@ -89,8 +96,9 @@ public interface AhcEndpointBuilder {
         }
         /**
          * The initial in-memory buffer size used when transferring data between
-         * Camel and AHC Client. The option will be converted to a
-         * <code>int</code> type.
+         * Camel and AHC Client.
+         * The option will be converted to a <code>int</code> type.
+         * @group producer
          */
         public T bufferSize(String bufferSize) {
             this.properties.put("bufferSize", bufferSize);
@@ -98,8 +106,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option is a
+         * Camel message.
+         * The option is a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group producer
          */
         public T headerFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -107,8 +117,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option will be converted to a
+         * Camel message.
+         * The option will be converted to a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group producer
          */
         public T headerFilterStrategy(String headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -117,8 +129,9 @@ public interface AhcEndpointBuilder {
         /**
          * Option to disable throwing the AhcOperationFailedException in case of
          * failed responses from the remote server. This allows you to get all
-         * responses regardless of the HTTP status code. The option is a
-         * <code>boolean</code> type.
+         * responses regardless of the HTTP status code.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public T throwExceptionOnFailure(boolean throwExceptionOnFailure) {
             this.properties.put("throwExceptionOnFailure", throwExceptionOnFailure);
@@ -127,8 +140,9 @@ public interface AhcEndpointBuilder {
         /**
          * Option to disable throwing the AhcOperationFailedException in case of
          * failed responses from the remote server. This allows you to get all
-         * responses regardless of the HTTP status code. The option will be
-         * converted to a <code>boolean</code> type.
+         * responses regardless of the HTTP status code.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public T throwExceptionOnFailure(String throwExceptionOnFailure) {
             this.properties.put("throwExceptionOnFailure", throwExceptionOnFailure);
@@ -143,8 +157,9 @@ public interface AhcEndpointBuilder {
          * AhcOperationFailedException. The caused exception is required to be
          * serialized. 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.
+         * to Java and that can be a potential security risk.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public T transferException(boolean transferException) {
             this.properties.put("transferException", transferException);
@@ -159,8 +174,9 @@ public interface AhcEndpointBuilder {
          * AhcOperationFailedException. The caused exception is required to be
          * serialized. 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 will be
-         * converted to a <code>boolean</code> type.
+         * to Java and that can be a potential security risk.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public T transferException(String transferException) {
             this.properties.put("transferException", transferException);
@@ -168,8 +184,9 @@ public interface AhcEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -177,8 +194,9 @@ public interface AhcEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -186,8 +204,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To use a custom AhcBinding which allows to control how to bind
-         * between AHC and Camel. The option is a
+         * between AHC and Camel.
+         * The option is a
          * <code>org.apache.camel.component.ahc.AhcBinding</code> type.
+         * @group advanced
          */
         public T binding(Object binding) {
             this.properties.put("binding", binding);
@@ -195,8 +215,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To use a custom AhcBinding which allows to control how to bind
-         * between AHC and Camel. The option will be converted to a
+         * between AHC and Camel.
+         * The option will be converted to a
          * <code>org.apache.camel.component.ahc.AhcBinding</code> type.
+         * @group advanced
          */
         public T binding(String binding) {
             this.properties.put("binding", binding);
@@ -204,8 +226,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To configure the AsyncHttpClient to use a custom
-         * com.ning.http.client.AsyncHttpClientConfig instance. The option is a
+         * com.ning.http.client.AsyncHttpClientConfig instance.
+         * The option is a
          * <code>org.asynchttpclient.AsyncHttpClientConfig</code> type.
+         * @group advanced
          */
         public T clientConfig(Object clientConfig) {
             this.properties.put("clientConfig", clientConfig);
@@ -213,9 +237,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To configure the AsyncHttpClient to use a custom
-         * com.ning.http.client.AsyncHttpClientConfig instance. The option will
-         * be converted to a
+         * com.ning.http.client.AsyncHttpClientConfig instance.
+         * The option will be converted to a
          * <code>org.asynchttpclient.AsyncHttpClientConfig</code> type.
+         * @group advanced
          */
         public T clientConfig(String clientConfig) {
             this.properties.put("clientConfig", clientConfig);
@@ -223,8 +248,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To configure the AsyncHttpClientConfig using the key/values from the
-         * Map. The option is a <code>java.util.Map&lt;java.lang.String,
+         * Map.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.lang.Object&gt;</code> type.
+         * @group advanced
          */
         public T clientConfigOptions(Map<String, Object> clientConfigOptions) {
             this.properties.put("clientConfigOptions", clientConfigOptions);
@@ -232,9 +259,11 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To configure the AsyncHttpClientConfig using the key/values from the
-         * Map. The option will be converted to a
+         * Map.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</code>
          * type.
+         * @group advanced
          */
         public T clientConfigOptions(String clientConfigOptions) {
             this.properties.put("clientConfigOptions", clientConfigOptions);
@@ -242,8 +271,9 @@ public interface AhcEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -251,8 +281,9 @@ public interface AhcEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -260,9 +291,10 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To configure the AsyncHttpClientConfig Realm using the key/values
-         * from the Map. The option is a
-         * <code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</code>
-         * type.
+         * from the Map.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
+         * java.lang.Object&gt;</code> type.
+         * @group security
          */
         public T clientConfigRealmOptions(
                 Map<String, Object> clientConfigRealmOptions) {
@@ -271,9 +303,11 @@ public interface AhcEndpointBuilder {
         }
         /**
          * To configure the AsyncHttpClientConfig Realm using the key/values
-         * from the Map. The option will be converted to a
+         * from the Map.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</code>
          * type.
+         * @group security
          */
         public T clientConfigRealmOptions(String clientConfigRealmOptions) {
             this.properties.put("clientConfigRealmOptions", clientConfigRealmOptions);
@@ -285,9 +319,10 @@ public interface AhcEndpointBuilder {
          * SSLContextParameters at the component level. See Using the JSSE
          * Configuration Utility. 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.
+         * clientConfig option at the endpoint or component level.
+         * The option is a
+         * <code>org.apache.camel.support.jsse.SSLContextParameters</code> type.
+         * @group security
          */
         public T sslContextParameters(Object sslContextParameters) {
             this.properties.put("sslContextParameters", sslContextParameters);
@@ -299,9 +334,10 @@ public interface AhcEndpointBuilder {
          * SSLContextParameters at the component level. See Using the JSSE
          * Configuration Utility. 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
-         * will be converted to a
+         * clientConfig option at the endpoint or component level.
+         * The option will be converted to a
          * <code>org.apache.camel.support.jsse.SSLContextParameters</code> type.
+         * @group security
          */
         public T sslContextParameters(String sslContextParameters) {
             this.properties.put("sslContextParameters", sslContextParameters);
@@ -322,8 +358,9 @@ public interface AhcEndpointBuilder {
         }
         /**
          * Define if the Connection Close header has to be added to HTTP
-         * Request. This parameter is false by default. The option is a
-         * <code>boolean</code> type.
+         * Request. This parameter is false by default.
+         * The option is a <code>boolean</code> type.
+         * @group producer
          */
         public AhcProducerBuilder connectionClose(boolean connectionClose) {
             this.properties.put("connectionClose", connectionClose);
@@ -331,26 +368,29 @@ public interface AhcEndpointBuilder {
         }
         /**
          * Define if the Connection Close header has to be added to HTTP
-         * Request. This parameter is false by default. The option will be
-         * converted to a <code>boolean</code> type.
+         * Request. This parameter is false by default.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group producer
          */
         public AhcProducerBuilder connectionClose(String connectionClose) {
             this.properties.put("connectionClose", connectionClose);
             return (AhcProducerBuilder) this;
         }
         /**
-         * Configure a cookie handler to maintain a HTTP session. The option is
-         * a <code>org.apache.camel.http.common.cookie.CookieHandler</code>
-         * type.
+         * Configure a cookie handler to maintain a HTTP session.
+         * The option is a
+         * <code>org.apache.camel.http.common.cookie.CookieHandler</code> type.
+         * @group producer
          */
         public AhcProducerBuilder cookieHandler(Object cookieHandler) {
             this.properties.put("cookieHandler", cookieHandler);
             return (AhcProducerBuilder) this;
         }
         /**
-         * Configure a cookie handler to maintain a HTTP session. The option
-         * will be converted to a
+         * Configure a cookie handler to maintain a HTTP session.
+         * The option will be converted to a
          * <code>org.apache.camel.http.common.cookie.CookieHandler</code> type.
+         * @group producer
          */
         public AhcProducerBuilder cookieHandler(String cookieHandler) {
             this.properties.put("cookieHandler", cookieHandler);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ApnsEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ApnsEndpointBuilder.java
index 3fdc03c..80e018e 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ApnsEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/ApnsEndpointBuilder.java
@@ -48,8 +48,9 @@ public interface ApnsEndpointBuilder {
             super("apns", path);
         }
         /**
-         * Name of the endpoint. The option is a <code>java.lang.String</code>
-         * type.
+         * Name of the endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T name(String name) {
             this.properties.put("name", name);
@@ -59,6 +60,7 @@ public interface ApnsEndpointBuilder {
          * Configure this property in case you want to statically declare tokens
          * related to devices you want to notify. Tokens are separated by comma.
          * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T tokens(String tokens) {
             this.properties.put("tokens", tokens);
@@ -66,8 +68,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -75,8 +78,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -84,8 +88,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -93,8 +98,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -120,7 +126,9 @@ public interface ApnsEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ApnsConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -133,7 +141,9 @@ public interface ApnsEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ApnsConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -141,8 +151,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * If the polling consumer did not poll any files, you can enable this
-         * option to send an empty message (no body) instead. The option is a
-         * <code>boolean</code> type.
+         * option to send an empty message (no body) instead.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public ApnsConsumerBuilder sendEmptyMessageWhenIdle(
                 boolean sendEmptyMessageWhenIdle) {
@@ -151,8 +162,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * If the polling consumer did not poll any files, you can enable this
-         * option to send an empty message (no body) instead. The option will be
-         * converted to a <code>boolean</code> type.
+         * option to send an empty message (no body) instead.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public ApnsConsumerBuilder sendEmptyMessageWhenIdle(
                 String sendEmptyMessageWhenIdle) {
@@ -163,8 +175,10 @@ public interface ApnsEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public ApnsConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -175,17 +189,19 @@ public interface ApnsEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public ApnsConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (ApnsConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public ApnsConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -193,9 +209,10 @@ public interface ApnsEndpointBuilder {
             return (ApnsConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public ApnsConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
@@ -205,8 +222,10 @@ public interface ApnsEndpointBuilder {
          * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
          * you to provide your custom implementation to control error handling
          * usually occurred during the poll operation before an Exchange have
-         * been created and being routed in Camel. The option is a
+         * been created and being routed in Camel.
+         * The option is a
          * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type.
+         * @group consumer (advanced)
          */
         public ApnsConsumerBuilder pollStrategy(
                 PollingConsumerPollStrategy pollStrategy) {
@@ -217,9 +236,10 @@ public interface ApnsEndpointBuilder {
          * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
          * you to provide your custom implementation to control error handling
          * usually occurred during the poll operation before an Exchange have
-         * been created and being routed in Camel. The option will be converted
-         * to a <code>org.apache.camel.spi.PollingConsumerPollStrategy</code>
-         * type.
+         * been created and being routed in Camel.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type.
+         * @group consumer (advanced)
          */
         public ApnsConsumerBuilder pollStrategy(String pollStrategy) {
             this.properties.put("pollStrategy", pollStrategy);
@@ -227,8 +247,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * The number of subsequent error polls (failed due some error) that
-         * should happen before the backoffMultipler should kick-in. The option
-         * is a <code>int</code> type.
+         * should happen before the backoffMultipler should kick-in.
+         * The option is a <code>int</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder backoffErrorThreshold(
                 int backoffErrorThreshold) {
@@ -237,8 +258,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * The number of subsequent error polls (failed due some error) that
-         * should happen before the backoffMultipler should kick-in. The option
-         * will be converted to a <code>int</code> type.
+         * should happen before the backoffMultipler should kick-in.
+         * The option will be converted to a <code>int</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder backoffErrorThreshold(
                 String backoffErrorThreshold) {
@@ -247,8 +269,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * The number of subsequent idle polls that should happen before the
-         * backoffMultipler should kick-in. The option is a <code>int</code>
-         * type.
+         * backoffMultipler should kick-in.
+         * The option is a <code>int</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder backoffIdleThreshold(int backoffIdleThreshold) {
             this.properties.put("backoffIdleThreshold", backoffIdleThreshold);
@@ -256,8 +279,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * The number of subsequent idle polls that should happen before the
-         * backoffMultipler should kick-in. The option will be converted to a
-         * <code>int</code> type.
+         * backoffMultipler should kick-in.
+         * The option will be converted to a <code>int</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder backoffIdleThreshold(
                 String backoffIdleThreshold) {
@@ -270,7 +294,9 @@ public interface ApnsEndpointBuilder {
          * the number of polls that will be skipped before the next actual
          * attempt is happening again. When this option is in use then
          * backoffIdleThreshold and/or backoffErrorThreshold must also be
-         * configured. The option is a <code>int</code> type.
+         * configured.
+         * The option is a <code>int</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder backoffMultiplier(int backoffMultiplier) {
             this.properties.put("backoffMultiplier", backoffMultiplier);
@@ -282,7 +308,9 @@ public interface ApnsEndpointBuilder {
          * the number of polls that will be skipped before the next actual
          * attempt is happening again. When this option is in use then
          * backoffIdleThreshold and/or backoffErrorThreshold must also be
-         * configured. The option will be converted to a <code>int</code> type.
+         * configured.
+         * The option will be converted to a <code>int</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder backoffMultiplier(String backoffMultiplier) {
             this.properties.put("backoffMultiplier", backoffMultiplier);
@@ -291,7 +319,9 @@ public interface ApnsEndpointBuilder {
         /**
          * Milliseconds before the next poll. You can also specify time values
          * using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option is a <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option is a <code>long</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder delay(long delay) {
             this.properties.put("delay", delay);
@@ -300,8 +330,9 @@ public interface ApnsEndpointBuilder {
         /**
          * Milliseconds before the next poll. You can also specify time values
          * using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option will be converted to a
-         * <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option will be converted to a <code>long</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder delay(String delay) {
             this.properties.put("delay", delay);
@@ -309,8 +340,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * If greedy is enabled, then the ScheduledPollConsumer will run
-         * immediately again, if the previous run polled 1 or more messages. The
-         * option is a <code>boolean</code> type.
+         * immediately again, if the previous run polled 1 or more messages.
+         * The option is a <code>boolean</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder greedy(boolean greedy) {
             this.properties.put("greedy", greedy);
@@ -318,8 +350,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * If greedy is enabled, then the ScheduledPollConsumer will run
-         * immediately again, if the previous run polled 1 or more messages. The
-         * option will be converted to a <code>boolean</code> type.
+         * immediately again, if the previous run polled 1 or more messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder greedy(String greedy) {
             this.properties.put("greedy", greedy);
@@ -328,7 +361,9 @@ public interface ApnsEndpointBuilder {
         /**
          * Milliseconds before the first poll starts. You can also specify time
          * values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option is a <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option is a <code>long</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder initialDelay(long initialDelay) {
             this.properties.put("initialDelay", initialDelay);
@@ -337,8 +372,9 @@ public interface ApnsEndpointBuilder {
         /**
          * Milliseconds before the first poll starts. You can also specify time
          * values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option will be converted to a
-         * <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option will be converted to a <code>long</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder initialDelay(String initialDelay) {
             this.properties.put("initialDelay", initialDelay);
@@ -346,8 +382,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * The consumer logs a start/complete log line when it polls. This
-         * option allows you to configure the logging level for that. The option
-         * is a <code>org.apache.camel.LoggingLevel</code> type.
+         * option allows you to configure the logging level for that.
+         * The option is a <code>org.apache.camel.LoggingLevel</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder runLoggingLevel(LoggingLevel runLoggingLevel) {
             this.properties.put("runLoggingLevel", runLoggingLevel);
@@ -355,9 +392,10 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * The consumer logs a start/complete log line when it polls. This
-         * option allows you to configure the logging level for that. The option
-         * will be converted to a <code>org.apache.camel.LoggingLevel</code>
-         * type.
+         * option allows you to configure the logging level for that.
+         * The option will be converted to a
+         * <code>org.apache.camel.LoggingLevel</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder runLoggingLevel(String runLoggingLevel) {
             this.properties.put("runLoggingLevel", runLoggingLevel);
@@ -366,8 +404,10 @@ public interface ApnsEndpointBuilder {
         /**
          * Allows for configuring a custom/shared thread pool to use for the
          * consumer. By default each consumer has its own single threaded thread
-         * pool. The option is a
+         * pool.
+         * The option is a
          * <code>java.util.concurrent.ScheduledExecutorService</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder scheduledExecutorService(
                 ScheduledExecutorService scheduledExecutorService) {
@@ -377,8 +417,10 @@ public interface ApnsEndpointBuilder {
         /**
          * Allows for configuring a custom/shared thread pool to use for the
          * consumer. By default each consumer has its own single threaded thread
-         * pool. The option will be converted to a
+         * pool.
+         * The option will be converted to a
          * <code>java.util.concurrent.ScheduledExecutorService</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder scheduledExecutorService(
                 String scheduledExecutorService) {
@@ -387,9 +429,11 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * To use a cron scheduler from either camel-spring or camel-quartz2
-         * component. The option is a
+         * component.
+         * The option is a
          * <code>org.apache.camel.spi.ScheduledPollConsumerScheduler</code>
          * type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder scheduler(
                 ScheduledPollConsumerScheduler scheduler) {
@@ -398,9 +442,11 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * To use a cron scheduler from either camel-spring or camel-quartz2
-         * component. The option will be converted to a
+         * component.
+         * The option will be converted to a
          * <code>org.apache.camel.spi.ScheduledPollConsumerScheduler</code>
          * type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder scheduler(String scheduler) {
             this.properties.put("scheduler", scheduler);
@@ -408,9 +454,10 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * To configure additional properties when using a custom scheduler or
-         * any of the Quartz2, Spring based scheduler. The option is a
-         * <code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</code>
-         * type.
+         * any of the Quartz2, Spring based scheduler.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
+         * java.lang.Object&gt;</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder schedulerProperties(
                 Map<String, Object> schedulerProperties) {
@@ -419,9 +466,11 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * To configure additional properties when using a custom scheduler or
-         * any of the Quartz2, Spring based scheduler. The option will be
-         * converted to a <code>java.util.Map&lt;java.lang.String,
-         * java.lang.Object&gt;</code> type.
+         * any of the Quartz2, Spring based scheduler.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</code>
+         * type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder schedulerProperties(
                 String schedulerProperties) {
@@ -429,32 +478,37 @@ public interface ApnsEndpointBuilder {
             return (ApnsConsumerBuilder) this;
         }
         /**
-         * Whether the scheduler should be auto started. The option is a
-         * <code>boolean</code> type.
+         * Whether the scheduler should be auto started.
+         * The option is a <code>boolean</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder startScheduler(boolean startScheduler) {
             this.properties.put("startScheduler", startScheduler);
             return (ApnsConsumerBuilder) this;
         }
         /**
-         * Whether the scheduler should be auto started. The option will be
-         * converted to a <code>boolean</code> type.
+         * Whether the scheduler should be auto started.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder startScheduler(String startScheduler) {
             this.properties.put("startScheduler", startScheduler);
             return (ApnsConsumerBuilder) this;
         }
         /**
-         * Time unit for initialDelay and delay options. The option is a
-         * <code>java.util.concurrent.TimeUnit</code> type.
+         * Time unit for initialDelay and delay options.
+         * The option is a <code>java.util.concurrent.TimeUnit</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder timeUnit(TimeUnit timeUnit) {
             this.properties.put("timeUnit", timeUnit);
             return (ApnsConsumerBuilder) this;
         }
         /**
-         * Time unit for initialDelay and delay options. The option will be
-         * converted to a <code>java.util.concurrent.TimeUnit</code> type.
+         * Time unit for initialDelay and delay options.
+         * The option will be converted to a
+         * <code>java.util.concurrent.TimeUnit</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder timeUnit(String timeUnit) {
             this.properties.put("timeUnit", timeUnit);
@@ -462,8 +516,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * Controls if fixed delay or fixed rate is used. See
-         * ScheduledExecutorService in JDK for details. The option is a
-         * <code>boolean</code> type.
+         * ScheduledExecutorService in JDK for details.
+         * The option is a <code>boolean</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder useFixedDelay(boolean useFixedDelay) {
             this.properties.put("useFixedDelay", useFixedDelay);
@@ -471,8 +526,9 @@ public interface ApnsEndpointBuilder {
         }
         /**
          * Controls if fixed delay or fixed rate is used. See
-         * ScheduledExecutorService in JDK for details. The option will be
-         * converted to a <code>boolean</code> type.
+         * ScheduledExecutorService in JDK for details.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group scheduler
          */
         public ApnsConsumerBuilder useFixedDelay(String useFixedDelay) {
             this.properties.put("useFixedDelay", useFixedDelay);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AsteriskEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AsteriskEndpointBuilder.java
index 6407639..6645ca0 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AsteriskEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AsteriskEndpointBuilder.java
@@ -42,29 +42,36 @@ public interface AsteriskEndpointBuilder {
             super("asterisk", path);
         }
         /**
-         * Logical name. The option is a <code>java.lang.String</code> type.
+         * Logical name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T name(String name) {
             this.properties.put("name", name);
             return (T) this;
         }
         /**
-         * The hostname of the asterisk server. The option is a
-         * <code>java.lang.String</code> type.
+         * The hostname of the asterisk server.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T hostname(String hostname) {
             this.properties.put("hostname", hostname);
             return (T) this;
         }
         /**
-         * Login password. The option is a <code>java.lang.String</code> type.
+         * Login password.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T password(String password) {
             this.properties.put("password", password);
             return (T) this;
         }
         /**
-         * Login username. The option is a <code>java.lang.String</code> type.
+         * Login username.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T username(String username) {
             this.properties.put("username", username);
@@ -72,8 +79,9 @@ public interface AsteriskEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -81,8 +89,9 @@ public interface AsteriskEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -90,8 +99,9 @@ public interface AsteriskEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -99,8 +109,9 @@ public interface AsteriskEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -126,7 +137,9 @@ public interface AsteriskEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AsteriskConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -140,7 +153,9 @@ public interface AsteriskEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AsteriskConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -151,8 +166,10 @@ public interface AsteriskEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AsteriskConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -163,17 +180,19 @@ public interface AsteriskEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AsteriskConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (AsteriskConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AsteriskConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -181,9 +200,10 @@ public interface AsteriskEndpointBuilder {
             return (AsteriskConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AsteriskConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
@@ -204,8 +224,10 @@ public interface AsteriskEndpointBuilder {
         }
         /**
          * What action to perform such as getting queue status, sip peers or
-         * extension state. The option is a
+         * extension state.
+         * The option is a
          * <code>org.apache.camel.component.asterisk.AsteriskAction</code> type.
+         * @group producer
          */
         public AsteriskProducerBuilder action(AsteriskAction action) {
             this.properties.put("action", action);
@@ -213,8 +235,10 @@ public interface AsteriskEndpointBuilder {
         }
         /**
          * What action to perform such as getting queue status, sip peers or
-         * extension state. The option will be converted to a
+         * extension state.
+         * The option will be converted to a
          * <code>org.apache.camel.component.asterisk.AsteriskAction</code> type.
+         * @group producer
          */
         public AsteriskProducerBuilder action(String action) {
             this.properties.put("action", action);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosEndpointBuilder.java
index 1db12d4..83a2a4d 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosEndpointBuilder.java
@@ -42,96 +42,112 @@ public interface AtmosEndpointBuilder {
             super("atmos", path);
         }
         /**
-         * Atmos name. The option is a <code>java.lang.String</code> type.
+         * Atmos name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T name(String name) {
             this.properties.put("name", name);
             return (T) this;
         }
         /**
-         * Operation to perform. The option is a
+         * Operation to perform.
+         * The option is a
          * <code>org.apache.camel.component.atmos.util.AtmosOperation</code>
          * type.
+         * @group common
          */
         public T operation(AtmosOperation operation) {
             this.properties.put("operation", operation);
             return (T) this;
         }
         /**
-         * Operation to perform. The option will be converted to a
+         * Operation to perform.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atmos.util.AtmosOperation</code>
          * type.
+         * @group common
          */
         public T operation(String operation) {
             this.properties.put("operation", operation);
             return (T) this;
         }
         /**
-         * Atmos SSL validation. The option is a <code>boolean</code> type.
+         * Atmos SSL validation.
+         * The option is a <code>boolean</code> type.
+         * @group common
          */
         public T enableSslValidation(boolean enableSslValidation) {
             this.properties.put("enableSslValidation", enableSslValidation);
             return (T) this;
         }
         /**
-         * Atmos SSL validation. The option will be converted to a
-         * <code>boolean</code> type.
+         * Atmos SSL validation.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T enableSslValidation(String enableSslValidation) {
             this.properties.put("enableSslValidation", enableSslValidation);
             return (T) this;
         }
         /**
-         * Atmos client fullTokenId. The option is a
-         * <code>java.lang.String</code> type.
+         * Atmos client fullTokenId.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T fullTokenId(String fullTokenId) {
             this.properties.put("fullTokenId", fullTokenId);
             return (T) this;
         }
         /**
-         * Local path to put files. The option is a
-         * <code>java.lang.String</code> type.
+         * Local path to put files.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T localPath(String localPath) {
             this.properties.put("localPath", localPath);
             return (T) this;
         }
         /**
-         * New path on Atmos when moving files. The option is a
-         * <code>java.lang.String</code> type.
+         * New path on Atmos when moving files.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T newRemotePath(String newRemotePath) {
             this.properties.put("newRemotePath", newRemotePath);
             return (T) this;
         }
         /**
-         * Search query on Atmos. The option is a <code>java.lang.String</code>
-         * type.
+         * Search query on Atmos.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T query(String query) {
             this.properties.put("query", query);
             return (T) this;
         }
         /**
-         * Where to put files on Atmos. The option is a
-         * <code>java.lang.String</code> type.
+         * Where to put files on Atmos.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T remotePath(String remotePath) {
             this.properties.put("remotePath", remotePath);
             return (T) this;
         }
         /**
-         * Atmos shared secret. The option is a <code>java.lang.String</code>
-         * type.
+         * Atmos shared secret.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T secretKey(String secretKey) {
             this.properties.put("secretKey", secretKey);
             return (T) this;
         }
         /**
-         * Atomos server uri. The option is a <code>java.lang.String</code>
-         * type.
+         * Atomos server uri.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T uri(String uri) {
             this.properties.put("uri", uri);
@@ -139,8 +155,9 @@ public interface AtmosEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -148,8 +165,9 @@ public interface AtmosEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -157,8 +175,9 @@ public interface AtmosEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -166,8 +185,9 @@ public interface AtmosEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -193,7 +213,9 @@ public interface AtmosEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -207,7 +229,9 @@ public interface AtmosEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -217,8 +241,10 @@ public interface AtmosEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtmosConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -229,17 +255,19 @@ public interface AtmosEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtmosConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (AtmosConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtmosConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -247,9 +275,10 @@ public interface AtmosEndpointBuilder {
             return (AtmosConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtmosConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosphereWebsocketEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosphereWebsocketEndpointBuilder.java
index 17cb828..355d6b4 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosphereWebsocketEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtmosphereWebsocketEndpointBuilder.java
@@ -43,40 +43,45 @@ public interface AtmosphereWebsocketEndpointBuilder {
             super("atmosphere-websocket", path);
         }
         /**
-         * Name of websocket endpoint. The option is a
-         * <code>java.lang.String</code> type.
+         * Name of websocket endpoint.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T servicePath(String servicePath) {
             this.properties.put("servicePath", servicePath);
             return (T) this;
         }
         /**
-         * Whether to send to all (broadcast) or send to a single receiver. The
-         * option is a <code>boolean</code> type.
+         * Whether to send to all (broadcast) or send to a single receiver.
+         * The option is a <code>boolean</code> type.
+         * @group common
          */
         public T sendToAll(boolean sendToAll) {
             this.properties.put("sendToAll", sendToAll);
             return (T) this;
         }
         /**
-         * Whether to send to all (broadcast) or send to a single receiver. The
-         * option will be converted to a <code>boolean</code> type.
+         * Whether to send to all (broadcast) or send to a single receiver.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T sendToAll(String sendToAll) {
             this.properties.put("sendToAll", sendToAll);
             return (T) this;
         }
         /**
-         * To enable streaming to send data as multiple text fragments. The
-         * option is a <code>boolean</code> type.
+         * To enable streaming to send data as multiple text fragments.
+         * The option is a <code>boolean</code> type.
+         * @group common
          */
         public T useStreaming(boolean useStreaming) {
             this.properties.put("useStreaming", useStreaming);
             return (T) this;
         }
         /**
-         * To enable streaming to send data as multiple text fragments. The
-         * option will be converted to a <code>boolean</code> type.
+         * To enable streaming to send data as multiple text fragments.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T useStreaming(String useStreaming) {
             this.properties.put("useStreaming", useStreaming);
@@ -98,8 +103,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * multiple times. The http/http4 producer will by default cache the
          * response body stream. If setting this option to true, then the
          * producers will not cache the response body stream but use the
-         * response stream as-is as the message body. The option is a
-         * <code>boolean</code> type.
+         * response stream as-is as the message body.
+         * The option is a <code>boolean</code> type.
+         * @group common
          */
         public T disableStreamCache(boolean disableStreamCache) {
             this.properties.put("disableStreamCache", disableStreamCache);
@@ -121,8 +127,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * multiple times. The http/http4 producer will by default cache the
          * response body stream. If setting this option to true, then the
          * producers will not cache the response body stream but use the
-         * response stream as-is as the message body. The option will be
-         * converted to a <code>boolean</code> type.
+         * response stream as-is as the message body.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group common
          */
         public T disableStreamCache(String disableStreamCache) {
             this.properties.put("disableStreamCache", disableStreamCache);
@@ -130,8 +137,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option is a
+         * Camel message.
+         * The option is a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group common
          */
         public T headerFilterStrategy(HeaderFilterStrategy headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -139,8 +148,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * To use a custom HeaderFilterStrategy to filter header to and from
-         * Camel message. The option will be converted to a
+         * Camel message.
+         * The option will be converted to a
          * <code>org.apache.camel.spi.HeaderFilterStrategy</code> type.
+         * @group common
          */
         public T headerFilterStrategy(String headerFilterStrategy) {
             this.properties.put("headerFilterStrategy", headerFilterStrategy);
@@ -148,8 +159,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * To use a custom HttpBinding to control the mapping between Camel
-         * message and HttpClient. The option is a
-         * <code>org.apache.camel.http.common.HttpBinding</code> type.
+         * message and HttpClient.
+         * The option is a <code>org.apache.camel.http.common.HttpBinding</code>
+         * type.
+         * @group common (advanced)
          */
         public T httpBinding(Object httpBinding) {
             this.properties.put("httpBinding", httpBinding);
@@ -157,8 +170,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * To use a custom HttpBinding to control the mapping between Camel
-         * message and HttpClient. The option will be converted to a
+         * message and HttpClient.
+         * The option will be converted to a
          * <code>org.apache.camel.http.common.HttpBinding</code> type.
+         * @group common (advanced)
          */
         public T httpBinding(String httpBinding) {
             this.properties.put("httpBinding", httpBinding);
@@ -166,8 +181,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * If this option is false the Servlet will disable the HTTP streaming
-         * and set the content-length header on the response. The option is a
-         * <code>boolean</code> type.
+         * and set the content-length header on the response.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public T chunked(boolean chunked) {
             this.properties.put("chunked", chunked);
@@ -175,8 +191,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * If this option is false the Servlet will disable the HTTP streaming
-         * and set the content-length header on the response. The option will be
-         * converted to a <code>boolean</code> type.
+         * and set the content-length header on the response.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public T chunked(String chunked) {
             this.properties.put("chunked", chunked);
@@ -191,7 +208,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * required to be serialized. 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.
+         * risk.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public T transferException(boolean transferException) {
             this.properties.put("transferException", transferException);
@@ -206,7 +225,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * required to be serialized. 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 will be converted to a <code>boolean</code> type.
+         * risk.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public T transferException(String transferException) {
             this.properties.put("transferException", transferException);
@@ -214,8 +235,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -223,8 +245,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -233,7 +256,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * If this option is true then IN exchange Body of the exchange will be
          * mapped to HTTP body. Setting this to false will avoid the HTTP
-         * mapping. The option is a <code>boolean</code> type.
+         * mapping.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapHttpMessageBody(boolean mapHttpMessageBody) {
             this.properties.put("mapHttpMessageBody", mapHttpMessageBody);
@@ -242,7 +267,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * If this option is true then IN exchange Body of the exchange will be
          * mapped to HTTP body. Setting this to false will avoid the HTTP
-         * mapping. The option will be converted to a <code>boolean</code> type.
+         * mapping.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapHttpMessageBody(String mapHttpMessageBody) {
             this.properties.put("mapHttpMessageBody", mapHttpMessageBody);
@@ -251,8 +278,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * If this option is true then IN exchange Form Encoded body of the
          * exchange will be mapped to HTTP. Setting this to false will avoid the
-         * HTTP Form Encoded body mapping. The option is a <code>boolean</code>
-         * type.
+         * HTTP Form Encoded body mapping.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapHttpMessageFormUrlEncodedBody(
                 boolean mapHttpMessageFormUrlEncodedBody) {
@@ -262,8 +290,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * If this option is true then IN exchange Form Encoded body of the
          * exchange will be mapped to HTTP. Setting this to false will avoid the
-         * HTTP Form Encoded body mapping. The option will be converted to a
-         * <code>boolean</code> type.
+         * HTTP Form Encoded body mapping.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapHttpMessageFormUrlEncodedBody(
                 String mapHttpMessageFormUrlEncodedBody) {
@@ -273,7 +302,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * If this option is true then IN exchange Headers of the exchange will
          * be mapped to HTTP headers. Setting this to false will avoid the HTTP
-         * Headers mapping. The option is a <code>boolean</code> type.
+         * Headers mapping.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapHttpMessageHeaders(boolean mapHttpMessageHeaders) {
             this.properties.put("mapHttpMessageHeaders", mapHttpMessageHeaders);
@@ -282,8 +313,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * If this option is true then IN exchange Headers of the exchange will
          * be mapped to HTTP headers. Setting this to false will avoid the HTTP
-         * Headers mapping. The option will be converted to a
-         * <code>boolean</code> type.
+         * Headers mapping.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T mapHttpMessageHeaders(String mapHttpMessageHeaders) {
             this.properties.put("mapHttpMessageHeaders", mapHttpMessageHeaders);
@@ -291,8 +323,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -300,8 +333,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -321,16 +355,18 @@ public interface AtmosphereWebsocketEndpointBuilder {
             super(path);
         }
         /**
-         * Configure the consumer to work in async mode. The option is a
-         * <code>boolean</code> type.
+         * Configure the consumer to work in async mode.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder async(boolean async) {
             this.properties.put("async", async);
             return (AtmosphereWebsocketConsumerBuilder) this;
         }
         /**
-         * Configure the consumer to work in async mode. The option will be
-         * converted to a <code>boolean</code> type.
+         * Configure the consumer to work in async mode.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder async(String async) {
             this.properties.put("async", async);
@@ -343,7 +379,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -357,7 +395,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -367,7 +407,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * Used to only allow consuming if the HttpMethod matches, such as
          * GET/POST/PUT etc. Multiple methods can be specified separated by
-         * comma. The option is a <code>java.lang.String</code> type.
+         * comma.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder httpMethodRestrict(
                 String httpMethodRestrict) {
@@ -376,8 +418,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Whether or not the consumer should try to find a target consumer by
-         * matching the URI prefix if no exact match is found. The option is a
-         * <code>boolean</code> type.
+         * matching the URI prefix if no exact match is found.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder matchOnUriPrefix(
                 boolean matchOnUriPrefix) {
@@ -386,8 +429,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Whether or not the consumer should try to find a target consumer by
-         * matching the URI prefix if no exact match is found. The option will
-         * be converted to a <code>boolean</code> type.
+         * matching the URI prefix if no exact match is found.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder matchOnUriPrefix(
                 String matchOnUriPrefix) {
@@ -395,8 +439,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
             return (AtmosphereWebsocketConsumerBuilder) this;
         }
         /**
-         * To use a custom buffer size on the javax.servlet.ServletResponse. The
-         * option is a <code>java.lang.Integer</code> type.
+         * To use a custom buffer size on the javax.servlet.ServletResponse.
+         * The option is a <code>java.lang.Integer</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder responseBufferSize(
                 Integer responseBufferSize) {
@@ -404,8 +449,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
             return (AtmosphereWebsocketConsumerBuilder) this;
         }
         /**
-         * To use a custom buffer size on the javax.servlet.ServletResponse. The
-         * option will be converted to a <code>java.lang.Integer</code> type.
+         * To use a custom buffer size on the javax.servlet.ServletResponse.
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder responseBufferSize(
                 String responseBufferSize) {
@@ -413,8 +460,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
             return (AtmosphereWebsocketConsumerBuilder) this;
         }
         /**
-         * Name of the servlet to use. The option is a
-         * <code>java.lang.String</code> type.
+         * Name of the servlet to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public AtmosphereWebsocketConsumerBuilder servletName(String servletName) {
             this.properties.put("servletName", servletName);
@@ -426,8 +474,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * disableStreamCache=false cannot work together. Remove
          * disableStreamCache to use AttachmentMultipartBinding. This is turn
          * off by default as this may require servlet specific configuration to
-         * enable this when using Servlet's. The option is a
-         * <code>boolean</code> type.
+         * enable this when using Servlet's.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder attachmentMultipartBinding(
                 boolean attachmentMultipartBinding) {
@@ -440,8 +489,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * disableStreamCache=false cannot work together. Remove
          * disableStreamCache to use AttachmentMultipartBinding. This is turn
          * off by default as this may require servlet specific configuration to
-         * enable this when using Servlet's. The option will be converted to a
-         * <code>boolean</code> type.
+         * enable this when using Servlet's.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder attachmentMultipartBinding(
                 String attachmentMultipartBinding) {
@@ -451,8 +501,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * Whether to eager check whether the HTTP requests has content if the
          * content-length header is 0 or not present. This can be turned on in
-         * case HTTP clients do not send streamed data. The option is a
-         * <code>boolean</code> type.
+         * case HTTP clients do not send streamed data.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder eagerCheckContentAvailable(
                 boolean eagerCheckContentAvailable) {
@@ -462,8 +513,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * Whether to eager check whether the HTTP requests has content if the
          * content-length header is 0 or not present. This can be turned on in
-         * case HTTP clients do not send streamed data. The option will be
-         * converted to a <code>boolean</code> type.
+         * case HTTP clients do not send streamed data.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder eagerCheckContentAvailable(
                 String eagerCheckContentAvailable) {
@@ -474,8 +526,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -486,9 +540,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder exceptionHandler(
                 String exceptionHandler) {
@@ -496,8 +551,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
             return (AtmosphereWebsocketConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -505,9 +561,10 @@ public interface AtmosphereWebsocketEndpointBuilder {
             return (AtmosphereWebsocketConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder exchangePattern(
                 String exchangePattern) {
@@ -517,7 +574,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         /**
          * Whitelist of accepted filename extensions for accepting uploaded
          * files. Multiple extensions can be separated by comma, such as
-         * txt,xml. The option is a <code>java.lang.String</code> type.
+         * txt,xml.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder fileNameExtWhitelist(
                 String fileNameExtWhitelist) {
@@ -526,8 +585,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Specifies whether to enable HTTP OPTIONS for this Servlet consumer.
-         * By default OPTIONS is turned off. The option is a
-         * <code>boolean</code> type.
+         * By default OPTIONS is turned off.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder optionsEnabled(
                 boolean optionsEnabled) {
@@ -536,8 +596,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Specifies whether to enable HTTP OPTIONS for this Servlet consumer.
-         * By default OPTIONS is turned off. The option will be converted to a
-         * <code>boolean</code> type.
+         * By default OPTIONS is turned off.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder optionsEnabled(
                 String optionsEnabled) {
@@ -546,8 +607,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Specifies whether to enable HTTP TRACE for this Servlet consumer. By
-         * default TRACE is turned off. The option is a <code>boolean</code>
-         * type.
+         * default TRACE is turned off.
+         * The option is a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder traceEnabled(
                 boolean traceEnabled) {
@@ -556,8 +618,9 @@ public interface AtmosphereWebsocketEndpointBuilder {
         }
         /**
          * Specifies whether to enable HTTP TRACE for this Servlet consumer. By
-         * default TRACE is turned off. The option will be converted to a
-         * <code>boolean</code> type.
+         * default TRACE is turned off.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer (advanced)
          */
         public AtmosphereWebsocketConsumerBuilder traceEnabled(
                 String traceEnabled) {
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomEndpointBuilder.java
index fb155d7..8a6e0a1 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomEndpointBuilder.java
@@ -49,40 +49,45 @@ public interface AtomEndpointBuilder {
             super("atom", path);
         }
         /**
-         * The URI to the feed to poll. The option is a
-         * <code>java.lang.String</code> type.
+         * The URI to the feed to poll.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public T feedUri(String feedUri) {
             this.properties.put("feedUri", feedUri);
             return (T) this;
         }
         /**
-         * Sets whether to add the feed object as a header. The option is a
-         * <code>boolean</code> type.
+         * Sets whether to add the feed object as a header.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public T feedHeader(boolean feedHeader) {
             this.properties.put("feedHeader", feedHeader);
             return (T) this;
         }
         /**
-         * Sets whether to add the feed object as a header. The option will be
-         * converted to a <code>boolean</code> type.
+         * Sets whether to add the feed object as a header.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public T feedHeader(String feedHeader) {
             this.properties.put("feedHeader", feedHeader);
             return (T) this;
         }
         /**
-         * Sets whether to use filtering or not of the entries. The option is a
-         * <code>boolean</code> type.
+         * Sets whether to use filtering or not of the entries.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public T filter(boolean filter) {
             this.properties.put("filter", filter);
             return (T) this;
         }
         /**
-         * Sets whether to use filtering or not of the entries. The option will
-         * be converted to a <code>boolean</code> type.
+         * Sets whether to use filtering or not of the entries.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public T filter(String filter) {
             this.properties.put("filter", filter);
@@ -90,8 +95,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets the timestamp to be used for filtering entries from the atom
-         * feeds. This options is only in conjunction with the splitEntries. The
-         * option is a <code>java.util.Date</code> type.
+         * feeds. This options is only in conjunction with the splitEntries.
+         * The option is a <code>java.util.Date</code> type.
+         * @group consumer
          */
         public T lastUpdate(Date lastUpdate) {
             this.properties.put("lastUpdate", lastUpdate);
@@ -99,8 +105,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets the timestamp to be used for filtering entries from the atom
-         * feeds. This options is only in conjunction with the splitEntries. The
-         * option will be converted to a <code>java.util.Date</code> type.
+         * feeds. This options is only in conjunction with the splitEntries.
+         * The option will be converted to a <code>java.util.Date</code> type.
+         * @group consumer
          */
         public T lastUpdate(String lastUpdate) {
             this.properties.put("lastUpdate", lastUpdate);
@@ -108,7 +115,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets the password to be used for basic authentication when polling
-         * from a HTTP feed. The option is a <code>java.lang.String</code> type.
+         * from a HTTP feed.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public T password(String password) {
             this.properties.put("password", password);
@@ -116,7 +125,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets whether to sort entries by published date. Only works when
-         * splitEntries = true. The option is a <code>boolean</code> type.
+         * splitEntries = true.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public T sortEntries(boolean sortEntries) {
             this.properties.put("sortEntries", sortEntries);
@@ -124,8 +135,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets whether to sort entries by published date. Only works when
-         * splitEntries = true. The option will be converted to a
-         * <code>boolean</code> type.
+         * splitEntries = true.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public T sortEntries(String sortEntries) {
             this.properties.put("sortEntries", sortEntries);
@@ -133,8 +145,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets whether or not entries should be sent individually or whether
-         * the entire feed should be sent as a single message. The option is a
-         * <code>boolean</code> type.
+         * the entire feed should be sent as a single message.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public T splitEntries(boolean splitEntries) {
             this.properties.put("splitEntries", splitEntries);
@@ -142,8 +155,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets whether or not entries should be sent individually or whether
-         * the entire feed should be sent as a single message. The option will
-         * be converted to a <code>boolean</code> type.
+         * the entire feed should be sent as a single message.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public T splitEntries(String splitEntries) {
             this.properties.put("splitEntries", splitEntries);
@@ -152,8 +166,9 @@ public interface AtomEndpointBuilder {
         /**
          * Sets whether all entries identified in a single feed poll should be
          * delivered immediately. If true, only one entry is processed per
-         * consumer.delay. Only applicable when splitEntries = true. The option
-         * is a <code>boolean</code> type.
+         * consumer.delay. Only applicable when splitEntries = true.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public T throttleEntries(boolean throttleEntries) {
             this.properties.put("throttleEntries", throttleEntries);
@@ -162,8 +177,9 @@ public interface AtomEndpointBuilder {
         /**
          * Sets whether all entries identified in a single feed poll should be
          * delivered immediately. If true, only one entry is processed per
-         * consumer.delay. Only applicable when splitEntries = true. The option
-         * will be converted to a <code>boolean</code> type.
+         * consumer.delay. Only applicable when splitEntries = true.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public T throttleEntries(String throttleEntries) {
             this.properties.put("throttleEntries", throttleEntries);
@@ -171,7 +187,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets the username to be used for basic authentication when polling
-         * from a HTTP feed. The option is a <code>java.lang.String</code> type.
+         * from a HTTP feed.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public T username(String username) {
             this.properties.put("username", username);
@@ -179,8 +197,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -188,8 +207,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -197,8 +217,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -206,8 +227,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -233,7 +255,9 @@ public interface AtomEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -246,7 +270,9 @@ public interface AtomEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
             this.properties.put("bridgeErrorHandler", bridgeErrorHandler);
@@ -254,8 +280,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * If the polling consumer did not poll any files, you can enable this
-         * option to send an empty message (no body) instead. The option is a
-         * <code>boolean</code> type.
+         * option to send an empty message (no body) instead.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomConsumerBuilder sendEmptyMessageWhenIdle(
                 boolean sendEmptyMessageWhenIdle) {
@@ -264,8 +291,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * If the polling consumer did not poll any files, you can enable this
-         * option to send an empty message (no body) instead. The option will be
-         * converted to a <code>boolean</code> type.
+         * option to send an empty message (no body) instead.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomConsumerBuilder sendEmptyMessageWhenIdle(
                 String sendEmptyMessageWhenIdle) {
@@ -276,8 +304,10 @@ public interface AtomEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtomConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -288,17 +318,19 @@ public interface AtomEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtomConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (AtomConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -306,9 +338,10 @@ public interface AtomEndpointBuilder {
             return (AtomConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
@@ -318,8 +351,10 @@ public interface AtomEndpointBuilder {
          * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
          * you to provide your custom implementation to control error handling
          * usually occurred during the poll operation before an Exchange have
-         * been created and being routed in Camel. The option is a
+         * been created and being routed in Camel.
+         * The option is a
          * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type.
+         * @group consumer (advanced)
          */
         public AtomConsumerBuilder pollStrategy(
                 PollingConsumerPollStrategy pollStrategy) {
@@ -330,9 +365,10 @@ public interface AtomEndpointBuilder {
          * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
          * you to provide your custom implementation to control error handling
          * usually occurred during the poll operation before an Exchange have
-         * been created and being routed in Camel. The option will be converted
-         * to a <code>org.apache.camel.spi.PollingConsumerPollStrategy</code>
-         * type.
+         * been created and being routed in Camel.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type.
+         * @group consumer (advanced)
          */
         public AtomConsumerBuilder pollStrategy(String pollStrategy) {
             this.properties.put("pollStrategy", pollStrategy);
@@ -340,8 +376,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * The number of subsequent error polls (failed due some error) that
-         * should happen before the backoffMultipler should kick-in. The option
-         * is a <code>int</code> type.
+         * should happen before the backoffMultipler should kick-in.
+         * The option is a <code>int</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder backoffErrorThreshold(
                 int backoffErrorThreshold) {
@@ -350,8 +387,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * The number of subsequent error polls (failed due some error) that
-         * should happen before the backoffMultipler should kick-in. The option
-         * will be converted to a <code>int</code> type.
+         * should happen before the backoffMultipler should kick-in.
+         * The option will be converted to a <code>int</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder backoffErrorThreshold(
                 String backoffErrorThreshold) {
@@ -360,8 +398,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * The number of subsequent idle polls that should happen before the
-         * backoffMultipler should kick-in. The option is a <code>int</code>
-         * type.
+         * backoffMultipler should kick-in.
+         * The option is a <code>int</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder backoffIdleThreshold(int backoffIdleThreshold) {
             this.properties.put("backoffIdleThreshold", backoffIdleThreshold);
@@ -369,8 +408,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * The number of subsequent idle polls that should happen before the
-         * backoffMultipler should kick-in. The option will be converted to a
-         * <code>int</code> type.
+         * backoffMultipler should kick-in.
+         * The option will be converted to a <code>int</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder backoffIdleThreshold(
                 String backoffIdleThreshold) {
@@ -383,7 +423,9 @@ public interface AtomEndpointBuilder {
          * the number of polls that will be skipped before the next actual
          * attempt is happening again. When this option is in use then
          * backoffIdleThreshold and/or backoffErrorThreshold must also be
-         * configured. The option is a <code>int</code> type.
+         * configured.
+         * The option is a <code>int</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder backoffMultiplier(int backoffMultiplier) {
             this.properties.put("backoffMultiplier", backoffMultiplier);
@@ -395,7 +437,9 @@ public interface AtomEndpointBuilder {
          * the number of polls that will be skipped before the next actual
          * attempt is happening again. When this option is in use then
          * backoffIdleThreshold and/or backoffErrorThreshold must also be
-         * configured. The option will be converted to a <code>int</code> type.
+         * configured.
+         * The option will be converted to a <code>int</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder backoffMultiplier(String backoffMultiplier) {
             this.properties.put("backoffMultiplier", backoffMultiplier);
@@ -404,7 +448,9 @@ public interface AtomEndpointBuilder {
         /**
          * Milliseconds before the next poll. You can also specify time values
          * using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option is a <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option is a <code>long</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder delay(long delay) {
             this.properties.put("delay", delay);
@@ -413,8 +459,9 @@ public interface AtomEndpointBuilder {
         /**
          * Milliseconds before the next poll. You can also specify time values
          * using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option will be converted to a
-         * <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option will be converted to a <code>long</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder delay(String delay) {
             this.properties.put("delay", delay);
@@ -422,8 +469,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * If greedy is enabled, then the ScheduledPollConsumer will run
-         * immediately again, if the previous run polled 1 or more messages. The
-         * option is a <code>boolean</code> type.
+         * immediately again, if the previous run polled 1 or more messages.
+         * The option is a <code>boolean</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder greedy(boolean greedy) {
             this.properties.put("greedy", greedy);
@@ -431,8 +479,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * If greedy is enabled, then the ScheduledPollConsumer will run
-         * immediately again, if the previous run polled 1 or more messages. The
-         * option will be converted to a <code>boolean</code> type.
+         * immediately again, if the previous run polled 1 or more messages.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder greedy(String greedy) {
             this.properties.put("greedy", greedy);
@@ -441,7 +490,9 @@ public interface AtomEndpointBuilder {
         /**
          * Milliseconds before the first poll starts. You can also specify time
          * values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option is a <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option is a <code>long</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder initialDelay(long initialDelay) {
             this.properties.put("initialDelay", initialDelay);
@@ -450,8 +501,9 @@ public interface AtomEndpointBuilder {
         /**
          * Milliseconds before the first poll starts. You can also specify time
          * values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30
-         * seconds), and 1h (1 hour). The option will be converted to a
-         * <code>long</code> type.
+         * seconds), and 1h (1 hour).
+         * The option will be converted to a <code>long</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder initialDelay(String initialDelay) {
             this.properties.put("initialDelay", initialDelay);
@@ -459,8 +511,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * The consumer logs a start/complete log line when it polls. This
-         * option allows you to configure the logging level for that. The option
-         * is a <code>org.apache.camel.LoggingLevel</code> type.
+         * option allows you to configure the logging level for that.
+         * The option is a <code>org.apache.camel.LoggingLevel</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder runLoggingLevel(LoggingLevel runLoggingLevel) {
             this.properties.put("runLoggingLevel", runLoggingLevel);
@@ -468,9 +521,10 @@ public interface AtomEndpointBuilder {
         }
         /**
          * The consumer logs a start/complete log line when it polls. This
-         * option allows you to configure the logging level for that. The option
-         * will be converted to a <code>org.apache.camel.LoggingLevel</code>
-         * type.
+         * option allows you to configure the logging level for that.
+         * The option will be converted to a
+         * <code>org.apache.camel.LoggingLevel</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder runLoggingLevel(String runLoggingLevel) {
             this.properties.put("runLoggingLevel", runLoggingLevel);
@@ -479,8 +533,10 @@ public interface AtomEndpointBuilder {
         /**
          * Allows for configuring a custom/shared thread pool to use for the
          * consumer. By default each consumer has its own single threaded thread
-         * pool. The option is a
+         * pool.
+         * The option is a
          * <code>java.util.concurrent.ScheduledExecutorService</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder scheduledExecutorService(
                 ScheduledExecutorService scheduledExecutorService) {
@@ -490,8 +546,10 @@ public interface AtomEndpointBuilder {
         /**
          * Allows for configuring a custom/shared thread pool to use for the
          * consumer. By default each consumer has its own single threaded thread
-         * pool. The option will be converted to a
+         * pool.
+         * The option will be converted to a
          * <code>java.util.concurrent.ScheduledExecutorService</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder scheduledExecutorService(
                 String scheduledExecutorService) {
@@ -500,9 +558,11 @@ public interface AtomEndpointBuilder {
         }
         /**
          * To use a cron scheduler from either camel-spring or camel-quartz2
-         * component. The option is a
+         * component.
+         * The option is a
          * <code>org.apache.camel.spi.ScheduledPollConsumerScheduler</code>
          * type.
+         * @group scheduler
          */
         public AtomConsumerBuilder scheduler(
                 ScheduledPollConsumerScheduler scheduler) {
@@ -511,9 +571,11 @@ public interface AtomEndpointBuilder {
         }
         /**
          * To use a cron scheduler from either camel-spring or camel-quartz2
-         * component. The option will be converted to a
+         * component.
+         * The option will be converted to a
          * <code>org.apache.camel.spi.ScheduledPollConsumerScheduler</code>
          * type.
+         * @group scheduler
          */
         public AtomConsumerBuilder scheduler(String scheduler) {
             this.properties.put("scheduler", scheduler);
@@ -521,9 +583,10 @@ public interface AtomEndpointBuilder {
         }
         /**
          * To configure additional properties when using a custom scheduler or
-         * any of the Quartz2, Spring based scheduler. The option is a
-         * <code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</code>
-         * type.
+         * any of the Quartz2, Spring based scheduler.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
+         * java.lang.Object&gt;</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder schedulerProperties(
                 Map<String, Object> schedulerProperties) {
@@ -532,9 +595,11 @@ public interface AtomEndpointBuilder {
         }
         /**
          * To configure additional properties when using a custom scheduler or
-         * any of the Quartz2, Spring based scheduler. The option will be
-         * converted to a <code>java.util.Map&lt;java.lang.String,
-         * java.lang.Object&gt;</code> type.
+         * any of the Quartz2, Spring based scheduler.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String, java.lang.Object&gt;</code>
+         * type.
+         * @group scheduler
          */
         public AtomConsumerBuilder schedulerProperties(
                 String schedulerProperties) {
@@ -542,32 +607,37 @@ public interface AtomEndpointBuilder {
             return (AtomConsumerBuilder) this;
         }
         /**
-         * Whether the scheduler should be auto started. The option is a
-         * <code>boolean</code> type.
+         * Whether the scheduler should be auto started.
+         * The option is a <code>boolean</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder startScheduler(boolean startScheduler) {
             this.properties.put("startScheduler", startScheduler);
             return (AtomConsumerBuilder) this;
         }
         /**
-         * Whether the scheduler should be auto started. The option will be
-         * converted to a <code>boolean</code> type.
+         * Whether the scheduler should be auto started.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder startScheduler(String startScheduler) {
             this.properties.put("startScheduler", startScheduler);
             return (AtomConsumerBuilder) this;
         }
         /**
-         * Time unit for initialDelay and delay options. The option is a
-         * <code>java.util.concurrent.TimeUnit</code> type.
+         * Time unit for initialDelay and delay options.
+         * The option is a <code>java.util.concurrent.TimeUnit</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder timeUnit(TimeUnit timeUnit) {
             this.properties.put("timeUnit", timeUnit);
             return (AtomConsumerBuilder) this;
         }
         /**
-         * Time unit for initialDelay and delay options. The option will be
-         * converted to a <code>java.util.concurrent.TimeUnit</code> type.
+         * Time unit for initialDelay and delay options.
+         * The option will be converted to a
+         * <code>java.util.concurrent.TimeUnit</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder timeUnit(String timeUnit) {
             this.properties.put("timeUnit", timeUnit);
@@ -575,8 +645,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Controls if fixed delay or fixed rate is used. See
-         * ScheduledExecutorService in JDK for details. The option is a
-         * <code>boolean</code> type.
+         * ScheduledExecutorService in JDK for details.
+         * The option is a <code>boolean</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder useFixedDelay(boolean useFixedDelay) {
             this.properties.put("useFixedDelay", useFixedDelay);
@@ -584,8 +655,9 @@ public interface AtomEndpointBuilder {
         }
         /**
          * Controls if fixed delay or fixed rate is used. See
-         * ScheduledExecutorService in JDK for details. The option will be
-         * converted to a <code>boolean</code> type.
+         * ScheduledExecutorService in JDK for details.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group scheduler
          */
         public AtomConsumerBuilder useFixedDelay(String useFixedDelay) {
             this.properties.put("useFixedDelay", useFixedDelay);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMapEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMapEndpointBuilder.java
index 54be77c..b845c7a 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMapEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMapEndpointBuilder.java
@@ -45,48 +45,57 @@ public interface AtomixMapEndpointBuilder {
             super("atomix-map", path);
         }
         /**
-         * The distributed resource name. The option is a
-         * <code>java.lang.String</code> type.
+         * The distributed resource name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resourceName(String resourceName) {
             this.properties.put("resourceName", resourceName);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option is a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option is a <code>io.atomix.AtomixClient</code> type.
+         * @group common
          */
         public T atomix(Object atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option will be converted to a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option will be converted to a <code>io.atomix.AtomixClient</code>
+         * type.
+         * @group common
          */
         public T atomix(String atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix configuration uri. The option is a
-         * <code>java.lang.String</code> type.
+         * The Atomix configuration uri.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T configurationUri(String configurationUri) {
             this.properties.put("configurationUri", configurationUri);
             return (T) this;
         }
         /**
-         * The default action. The option is a
+         * The default action.
+         * The option is a
          * <code>org.apache.camel.component.atomix.client.map.AtomixMap$Action</code> type.
+         * @group common
          */
         public T defaultAction(Action defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The default action. The option will be converted to a
+         * The default action.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atomix.client.map.AtomixMap$Action</code> type.
+         * @group common
          */
         public T defaultAction(String defaultAction) {
             this.properties.put("defaultAction", defaultAction);
@@ -94,8 +103,9 @@ public interface AtomixMapEndpointBuilder {
         }
         /**
          * The key to use if none is set in the header or to listen for events
-         * for a specific key. The option is a <code>java.lang.Object</code>
-         * type.
+         * for a specific key.
+         * The option is a <code>java.lang.Object</code> type.
+         * @group common
          */
         public T key(Object key) {
             this.properties.put("key", key);
@@ -103,64 +113,76 @@ public interface AtomixMapEndpointBuilder {
         }
         /**
          * The key to use if none is set in the header or to listen for events
-         * for a specific key. The option will be converted to a
-         * <code>java.lang.Object</code> type.
+         * for a specific key.
+         * The option will be converted to a <code>java.lang.Object</code> type.
+         * @group common
          */
         public T key(String key) {
             this.properties.put("key", key);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option is a
+         * The address of the nodes composing the cluster.
+         * The option is a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(List<Object> nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option will be
-         * converted to a
+         * The address of the nodes composing the cluster.
+         * The option will be converted to a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(String nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The header that wil carry the result. The option is a
-         * <code>java.lang.String</code> type.
+         * The header that wil carry the result.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resultHeader(String resultHeader) {
             this.properties.put("resultHeader", resultHeader);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option is a
+         * Sets the Atomix transport.
+         * The option is a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(Class<Object> transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option will be converted to a
+         * Sets the Atomix transport.
+         * The option will be converted to a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(String transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * The resource ttl. The option is a <code>long</code> type.
+         * The resource ttl.
+         * The option is a <code>long</code> type.
+         * @group common
          */
         public T ttl(long ttl) {
             this.properties.put("ttl", ttl);
             return (T) this;
         }
         /**
-         * The resource ttl. The option will be converted to a <code>long</code>
-         * type.
+         * The resource ttl.
+         * The option will be converted to a <code>long</code> type.
+         * @group common
          */
         public T ttl(String ttl) {
             this.properties.put("ttl", ttl);
@@ -168,8 +190,9 @@ public interface AtomixMapEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -177,40 +200,47 @@ public interface AtomixMapEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option is a
-         * <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceConfig(Properties defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option will be
-         * converted to a <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceConfig(String defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The local default resource options. The option is a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceOptions(Properties defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
             return (T) this;
         }
         /**
-         * The local default resource options. The option will be converted to a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceOptions(String defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
@@ -219,8 +249,9 @@ public interface AtomixMapEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option is a
-         * <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(boolean ephemeral) {
             this.properties.put("ephemeral", ephemeral);
@@ -229,60 +260,70 @@ public interface AtomixMapEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option will be
-         * converted to a <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(String ephemeral) {
             this.properties.put("ephemeral", ephemeral);
             return (T) this;
         }
         /**
-         * The read consistency level. The option is a
-         * <code>io.atomix.resource.ReadConsistency</code> type.
+         * The read consistency level.
+         * The option is a <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(ReadConsistency readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * The read consistency level. The option will be converted to a
+         * The read consistency level.
+         * The option will be converted to a
          * <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(String readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(Map<String, Properties> resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option will be converted to
-         * a <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(String resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Local resources configurations.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(Map<String, Properties> resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option will be converted to a
+         * Local resources configurations.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(String resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
@@ -290,8 +331,9 @@ public interface AtomixMapEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -299,8 +341,9 @@ public interface AtomixMapEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -326,7 +369,9 @@ public interface AtomixMapEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixMapConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -340,7 +385,9 @@ public interface AtomixMapEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixMapConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -351,8 +398,10 @@ public interface AtomixMapEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtomixMapConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -363,17 +412,19 @@ public interface AtomixMapEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMapConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (AtomixMapConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMapConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -381,9 +432,10 @@ public interface AtomixMapEndpointBuilder {
             return (AtomixMapConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMapConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMessagingEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMessagingEndpointBuilder.java
index 5e875e2..05589e3 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMessagingEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMessagingEndpointBuilder.java
@@ -45,121 +45,144 @@ public interface AtomixMessagingEndpointBuilder {
             super("atomix-messaging", path);
         }
         /**
-         * The distributed resource name. The option is a
-         * <code>java.lang.String</code> type.
+         * The distributed resource name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resourceName(String resourceName) {
             this.properties.put("resourceName", resourceName);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option is a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option is a <code>io.atomix.AtomixClient</code> type.
+         * @group common
          */
         public T atomix(Object atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option will be converted to a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option will be converted to a <code>io.atomix.AtomixClient</code>
+         * type.
+         * @group common
          */
         public T atomix(String atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The broadcast type. The option is a
+         * The broadcast type.
+         * The option is a
          * <code>org.apache.camel.component.atomix.client.messaging.AtomixMessaging$BroadcastType</code> type.
+         * @group common
          */
         public T broadcastType(BroadcastType broadcastType) {
             this.properties.put("broadcastType", broadcastType);
             return (T) this;
         }
         /**
-         * The broadcast type. The option will be converted to a
+         * The broadcast type.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atomix.client.messaging.AtomixMessaging$BroadcastType</code> type.
+         * @group common
          */
         public T broadcastType(String broadcastType) {
             this.properties.put("broadcastType", broadcastType);
             return (T) this;
         }
         /**
-         * The messaging channel name. The option is a
-         * <code>java.lang.String</code> type.
+         * The messaging channel name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T channelName(String channelName) {
             this.properties.put("channelName", channelName);
             return (T) this;
         }
         /**
-         * The Atomix configuration uri. The option is a
-         * <code>java.lang.String</code> type.
+         * The Atomix configuration uri.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T configurationUri(String configurationUri) {
             this.properties.put("configurationUri", configurationUri);
             return (T) this;
         }
         /**
-         * The default action. The option is a
+         * The default action.
+         * The option is a
          * <code>org.apache.camel.component.atomix.client.messaging.AtomixMessaging$Action</code> type.
+         * @group common
          */
         public T defaultAction(Action defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The default action. The option will be converted to a
+         * The default action.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atomix.client.messaging.AtomixMessaging$Action</code> type.
+         * @group common
          */
         public T defaultAction(String defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The Atomix Group member name. The option is a
-         * <code>java.lang.String</code> type.
+         * The Atomix Group member name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T memberName(String memberName) {
             this.properties.put("memberName", memberName);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option is a
+         * The address of the nodes composing the cluster.
+         * The option is a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(List<Object> nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option will be
-         * converted to a
+         * The address of the nodes composing the cluster.
+         * The option will be converted to a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(String nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The header that wil carry the result. The option is a
-         * <code>java.lang.String</code> type.
+         * The header that wil carry the result.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resultHeader(String resultHeader) {
             this.properties.put("resultHeader", resultHeader);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option is a
+         * Sets the Atomix transport.
+         * The option is a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(Class<Object> transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option will be converted to a
+         * Sets the Atomix transport.
+         * The option will be converted to a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(String transport) {
             this.properties.put("transport", transport);
@@ -167,8 +190,9 @@ public interface AtomixMessagingEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -176,40 +200,47 @@ public interface AtomixMessagingEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option is a
-         * <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceConfig(Properties defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option will be
-         * converted to a <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceConfig(String defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The local default resource options. The option is a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceOptions(Properties defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
             return (T) this;
         }
         /**
-         * The local default resource options. The option will be converted to a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceOptions(String defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
@@ -218,8 +249,9 @@ public interface AtomixMessagingEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option is a
-         * <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(boolean ephemeral) {
             this.properties.put("ephemeral", ephemeral);
@@ -228,60 +260,70 @@ public interface AtomixMessagingEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option will be
-         * converted to a <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(String ephemeral) {
             this.properties.put("ephemeral", ephemeral);
             return (T) this;
         }
         /**
-         * The read consistency level. The option is a
-         * <code>io.atomix.resource.ReadConsistency</code> type.
+         * The read consistency level.
+         * The option is a <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(ReadConsistency readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * The read consistency level. The option will be converted to a
+         * The read consistency level.
+         * The option will be converted to a
          * <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(String readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(Map<String, Properties> resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option will be converted to
-         * a <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(String resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Local resources configurations.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(Map<String, Properties> resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option will be converted to a
+         * Local resources configurations.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(String resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
@@ -289,8 +331,9 @@ public interface AtomixMessagingEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -298,8 +341,9 @@ public interface AtomixMessagingEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -325,7 +369,9 @@ public interface AtomixMessagingEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixMessagingConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -339,7 +385,9 @@ public interface AtomixMessagingEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixMessagingConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -350,8 +398,10 @@ public interface AtomixMessagingEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtomixMessagingConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -362,9 +412,10 @@ public interface AtomixMessagingEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMessagingConsumerBuilder exceptionHandler(
                 String exceptionHandler) {
@@ -372,8 +423,9 @@ public interface AtomixMessagingEndpointBuilder {
             return (AtomixMessagingConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMessagingConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -381,9 +433,10 @@ public interface AtomixMessagingEndpointBuilder {
             return (AtomixMessagingConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMessagingConsumerBuilder exchangePattern(
                 String exchangePattern) {
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMultiMapEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMultiMapEndpointBuilder.java
index f264f4b..e47df01 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMultiMapEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixMultiMapEndpointBuilder.java
@@ -46,48 +46,57 @@ public interface AtomixMultiMapEndpointBuilder {
             super("atomix-multimap", path);
         }
         /**
-         * The distributed resource name. The option is a
-         * <code>java.lang.String</code> type.
+         * The distributed resource name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public T resourceName(String resourceName) {
             this.properties.put("resourceName", resourceName);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option is a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option is a <code>io.atomix.AtomixClient</code> type.
+         * @group consumer
          */
         public T atomix(Object atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option will be converted to a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option will be converted to a <code>io.atomix.AtomixClient</code>
+         * type.
+         * @group consumer
          */
         public T atomix(String atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix configuration uri. The option is a
-         * <code>java.lang.String</code> type.
+         * The Atomix configuration uri.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public T configurationUri(String configurationUri) {
             this.properties.put("configurationUri", configurationUri);
             return (T) this;
         }
         /**
-         * The default action. The option is a
+         * The default action.
+         * The option is a
          * <code>org.apache.camel.component.atomix.client.multimap.AtomixMultiMap$Action</code> type.
+         * @group consumer
          */
         public T defaultAction(Action defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The default action. The option will be converted to a
+         * The default action.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atomix.client.multimap.AtomixMultiMap$Action</code> type.
+         * @group consumer
          */
         public T defaultAction(String defaultAction) {
             this.properties.put("defaultAction", defaultAction);
@@ -95,8 +104,9 @@ public interface AtomixMultiMapEndpointBuilder {
         }
         /**
          * The key to use if none is set in the header or to listen for events
-         * for a specific key. The option is a <code>java.lang.Object</code>
-         * type.
+         * for a specific key.
+         * The option is a <code>java.lang.Object</code> type.
+         * @group consumer
          */
         public T key(Object key) {
             this.properties.put("key", key);
@@ -104,64 +114,76 @@ public interface AtomixMultiMapEndpointBuilder {
         }
         /**
          * The key to use if none is set in the header or to listen for events
-         * for a specific key. The option will be converted to a
-         * <code>java.lang.Object</code> type.
+         * for a specific key.
+         * The option will be converted to a <code>java.lang.Object</code> type.
+         * @group consumer
          */
         public T key(String key) {
             this.properties.put("key", key);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option is a
+         * The address of the nodes composing the cluster.
+         * The option is a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group consumer
          */
         public T nodes(List<Object> nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option will be
-         * converted to a
+         * The address of the nodes composing the cluster.
+         * The option will be converted to a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group consumer
          */
         public T nodes(String nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The header that wil carry the result. The option is a
-         * <code>java.lang.String</code> type.
+         * The header that wil carry the result.
+         * The option is a <code>java.lang.String</code> type.
+         * @group consumer
          */
         public T resultHeader(String resultHeader) {
             this.properties.put("resultHeader", resultHeader);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option is a
+         * Sets the Atomix transport.
+         * The option is a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group consumer
          */
         public T transport(Class<Object> transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option will be converted to a
+         * Sets the Atomix transport.
+         * The option will be converted to a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group consumer
          */
         public T transport(String transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * The resource ttl. The option is a <code>long</code> type.
+         * The resource ttl.
+         * The option is a <code>long</code> type.
+         * @group consumer
          */
         public T ttl(long ttl) {
             this.properties.put("ttl", ttl);
             return (T) this;
         }
         /**
-         * The resource ttl. The option will be converted to a <code>long</code>
-         * type.
+         * The resource ttl.
+         * The option will be converted to a <code>long</code> type.
+         * @group consumer
          */
         public T ttl(String ttl) {
             this.properties.put("ttl", ttl);
@@ -169,8 +191,9 @@ public interface AtomixMultiMapEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -178,40 +201,47 @@ public interface AtomixMultiMapEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option is a
-         * <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceConfig(Properties defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option will be
-         * converted to a <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceConfig(String defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The local default resource options. The option is a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceOptions(Properties defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
             return (T) this;
         }
         /**
-         * The local default resource options. The option will be converted to a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceOptions(String defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
@@ -220,8 +250,9 @@ public interface AtomixMultiMapEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option is a
-         * <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(boolean ephemeral) {
             this.properties.put("ephemeral", ephemeral);
@@ -230,60 +261,70 @@ public interface AtomixMultiMapEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option will be
-         * converted to a <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(String ephemeral) {
             this.properties.put("ephemeral", ephemeral);
             return (T) this;
         }
         /**
-         * The read consistency level. The option is a
-         * <code>io.atomix.resource.ReadConsistency</code> type.
+         * The read consistency level.
+         * The option is a <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(ReadConsistency readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * The read consistency level. The option will be converted to a
+         * The read consistency level.
+         * The option will be converted to a
          * <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(String readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(Map<String, Properties> resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option will be converted to
-         * a <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(String resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Local resources configurations.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(Map<String, Properties> resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option will be converted to a
+         * Local resources configurations.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(String resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
@@ -291,8 +332,9 @@ public interface AtomixMultiMapEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -300,8 +342,9 @@ public interface AtomixMultiMapEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -327,7 +370,9 @@ public interface AtomixMultiMapEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixMultiMapConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -341,7 +386,9 @@ public interface AtomixMultiMapEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixMultiMapConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -352,8 +399,10 @@ public interface AtomixMultiMapEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtomixMultiMapConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -364,9 +413,10 @@ public interface AtomixMultiMapEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMultiMapConsumerBuilder exceptionHandler(
                 String exceptionHandler) {
@@ -374,8 +424,9 @@ public interface AtomixMultiMapEndpointBuilder {
             return (AtomixMultiMapConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMultiMapConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -383,9 +434,10 @@ public interface AtomixMultiMapEndpointBuilder {
             return (AtomixMultiMapConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixMultiMapConsumerBuilder exchangePattern(
                 String exchangePattern) {
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixQueueEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixQueueEndpointBuilder.java
index 380aa09..3906b49 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixQueueEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixQueueEndpointBuilder.java
@@ -45,89 +45,106 @@ public interface AtomixQueueEndpointBuilder {
             super("atomix-queue", path);
         }
         /**
-         * The distributed resource name. The option is a
-         * <code>java.lang.String</code> type.
+         * The distributed resource name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resourceName(String resourceName) {
             this.properties.put("resourceName", resourceName);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option is a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option is a <code>io.atomix.AtomixClient</code> type.
+         * @group common
          */
         public T atomix(Object atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option will be converted to a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option will be converted to a <code>io.atomix.AtomixClient</code>
+         * type.
+         * @group common
          */
         public T atomix(String atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix configuration uri. The option is a
-         * <code>java.lang.String</code> type.
+         * The Atomix configuration uri.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T configurationUri(String configurationUri) {
             this.properties.put("configurationUri", configurationUri);
             return (T) this;
         }
         /**
-         * The default action. The option is a
+         * The default action.
+         * The option is a
          * <code>org.apache.camel.component.atomix.client.queue.AtomixQueue$Action</code> type.
+         * @group common
          */
         public T defaultAction(Action defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The default action. The option will be converted to a
+         * The default action.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atomix.client.queue.AtomixQueue$Action</code> type.
+         * @group common
          */
         public T defaultAction(String defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option is a
+         * The address of the nodes composing the cluster.
+         * The option is a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(List<Object> nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option will be
-         * converted to a
+         * The address of the nodes composing the cluster.
+         * The option will be converted to a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(String nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The header that wil carry the result. The option is a
-         * <code>java.lang.String</code> type.
+         * The header that wil carry the result.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resultHeader(String resultHeader) {
             this.properties.put("resultHeader", resultHeader);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option is a
+         * Sets the Atomix transport.
+         * The option is a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(Class<Object> transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option will be converted to a
+         * Sets the Atomix transport.
+         * The option will be converted to a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(String transport) {
             this.properties.put("transport", transport);
@@ -135,8 +152,9 @@ public interface AtomixQueueEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -144,40 +162,47 @@ public interface AtomixQueueEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option is a
-         * <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceConfig(Properties defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option will be
-         * converted to a <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceConfig(String defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The local default resource options. The option is a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceOptions(Properties defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
             return (T) this;
         }
         /**
-         * The local default resource options. The option will be converted to a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceOptions(String defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
@@ -186,8 +211,9 @@ public interface AtomixQueueEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option is a
-         * <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(boolean ephemeral) {
             this.properties.put("ephemeral", ephemeral);
@@ -196,60 +222,70 @@ public interface AtomixQueueEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option will be
-         * converted to a <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(String ephemeral) {
             this.properties.put("ephemeral", ephemeral);
             return (T) this;
         }
         /**
-         * The read consistency level. The option is a
-         * <code>io.atomix.resource.ReadConsistency</code> type.
+         * The read consistency level.
+         * The option is a <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(ReadConsistency readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * The read consistency level. The option will be converted to a
+         * The read consistency level.
+         * The option will be converted to a
          * <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(String readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(Map<String, Properties> resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option will be converted to
-         * a <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(String resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Local resources configurations.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(Map<String, Properties> resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option will be converted to a
+         * Local resources configurations.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(String resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
@@ -257,8 +293,9 @@ public interface AtomixQueueEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -266,8 +303,9 @@ public interface AtomixQueueEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -293,7 +331,9 @@ public interface AtomixQueueEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixQueueConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -307,7 +347,9 @@ public interface AtomixQueueEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixQueueConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -318,8 +360,10 @@ public interface AtomixQueueEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtomixQueueConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -330,9 +374,10 @@ public interface AtomixQueueEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtomixQueueConsumerBuilder exceptionHandler(
                 String exceptionHandler) {
@@ -340,8 +385,9 @@ public interface AtomixQueueEndpointBuilder {
             return (AtomixQueueConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixQueueConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -349,9 +395,10 @@ public interface AtomixQueueEndpointBuilder {
             return (AtomixQueueConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixQueueConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixSetEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixSetEndpointBuilder.java
index 3225539..ac9b88d 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixSetEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixSetEndpointBuilder.java
@@ -45,104 +45,124 @@ public interface AtomixSetEndpointBuilder {
             super("atomix-set", path);
         }
         /**
-         * The distributed resource name. The option is a
-         * <code>java.lang.String</code> type.
+         * The distributed resource name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resourceName(String resourceName) {
             this.properties.put("resourceName", resourceName);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option is a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option is a <code>io.atomix.AtomixClient</code> type.
+         * @group common
          */
         public T atomix(Object atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option will be converted to a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option will be converted to a <code>io.atomix.AtomixClient</code>
+         * type.
+         * @group common
          */
         public T atomix(String atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix configuration uri. The option is a
-         * <code>java.lang.String</code> type.
+         * The Atomix configuration uri.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T configurationUri(String configurationUri) {
             this.properties.put("configurationUri", configurationUri);
             return (T) this;
         }
         /**
-         * The default action. The option is a
+         * The default action.
+         * The option is a
          * <code>org.apache.camel.component.atomix.client.set.AtomixSet$Action</code> type.
+         * @group common
          */
         public T defaultAction(Action defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The default action. The option will be converted to a
+         * The default action.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atomix.client.set.AtomixSet$Action</code> type.
+         * @group common
          */
         public T defaultAction(String defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option is a
+         * The address of the nodes composing the cluster.
+         * The option is a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(List<Object> nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option will be
-         * converted to a
+         * The address of the nodes composing the cluster.
+         * The option will be converted to a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(String nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The header that wil carry the result. The option is a
-         * <code>java.lang.String</code> type.
+         * The header that wil carry the result.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resultHeader(String resultHeader) {
             this.properties.put("resultHeader", resultHeader);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option is a
+         * Sets the Atomix transport.
+         * The option is a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(Class<Object> transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option will be converted to a
+         * Sets the Atomix transport.
+         * The option will be converted to a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(String transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * The resource ttl. The option is a <code>long</code> type.
+         * The resource ttl.
+         * The option is a <code>long</code> type.
+         * @group common
          */
         public T ttl(long ttl) {
             this.properties.put("ttl", ttl);
             return (T) this;
         }
         /**
-         * The resource ttl. The option will be converted to a <code>long</code>
-         * type.
+         * The resource ttl.
+         * The option will be converted to a <code>long</code> type.
+         * @group common
          */
         public T ttl(String ttl) {
             this.properties.put("ttl", ttl);
@@ -150,8 +170,9 @@ public interface AtomixSetEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -159,40 +180,47 @@ public interface AtomixSetEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option is a
-         * <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceConfig(Properties defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option will be
-         * converted to a <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceConfig(String defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The local default resource options. The option is a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceOptions(Properties defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
             return (T) this;
         }
         /**
-         * The local default resource options. The option will be converted to a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceOptions(String defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
@@ -201,8 +229,9 @@ public interface AtomixSetEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option is a
-         * <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(boolean ephemeral) {
             this.properties.put("ephemeral", ephemeral);
@@ -211,60 +240,70 @@ public interface AtomixSetEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option will be
-         * converted to a <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(String ephemeral) {
             this.properties.put("ephemeral", ephemeral);
             return (T) this;
         }
         /**
-         * The read consistency level. The option is a
-         * <code>io.atomix.resource.ReadConsistency</code> type.
+         * The read consistency level.
+         * The option is a <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(ReadConsistency readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * The read consistency level. The option will be converted to a
+         * The read consistency level.
+         * The option will be converted to a
          * <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(String readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(Map<String, Properties> resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option will be converted to
-         * a <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(String resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Local resources configurations.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(Map<String, Properties> resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option will be converted to a
+         * Local resources configurations.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(String resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
@@ -272,8 +311,9 @@ public interface AtomixSetEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -281,8 +321,9 @@ public interface AtomixSetEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -308,7 +349,9 @@ public interface AtomixSetEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixSetConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -322,7 +365,9 @@ public interface AtomixSetEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixSetConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -333,8 +378,10 @@ public interface AtomixSetEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtomixSetConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -345,17 +392,19 @@ public interface AtomixSetEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtomixSetConsumerBuilder exceptionHandler(String exceptionHandler) {
             this.properties.put("exceptionHandler", exceptionHandler);
             return (AtomixSetConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixSetConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -363,9 +412,10 @@ public interface AtomixSetEndpointBuilder {
             return (AtomixSetConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixSetConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixValueEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixValueEndpointBuilder.java
index 6caab61..8cb0522 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixValueEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AtomixValueEndpointBuilder.java
@@ -45,104 +45,124 @@ public interface AtomixValueEndpointBuilder {
             super("atomix-value", path);
         }
         /**
-         * The distributed resource name. The option is a
-         * <code>java.lang.String</code> type.
+         * The distributed resource name.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resourceName(String resourceName) {
             this.properties.put("resourceName", resourceName);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option is a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option is a <code>io.atomix.AtomixClient</code> type.
+         * @group common
          */
         public T atomix(Object atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix instance to use. The option will be converted to a
-         * <code>io.atomix.AtomixClient</code> type.
+         * The Atomix instance to use.
+         * The option will be converted to a <code>io.atomix.AtomixClient</code>
+         * type.
+         * @group common
          */
         public T atomix(String atomix) {
             this.properties.put("atomix", atomix);
             return (T) this;
         }
         /**
-         * The Atomix configuration uri. The option is a
-         * <code>java.lang.String</code> type.
+         * The Atomix configuration uri.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T configurationUri(String configurationUri) {
             this.properties.put("configurationUri", configurationUri);
             return (T) this;
         }
         /**
-         * The default action. The option is a
+         * The default action.
+         * The option is a
          * <code>org.apache.camel.component.atomix.client.value.AtomixValue$Action</code> type.
+         * @group common
          */
         public T defaultAction(Action defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The default action. The option will be converted to a
+         * The default action.
+         * The option will be converted to a
          * <code>org.apache.camel.component.atomix.client.value.AtomixValue$Action</code> type.
+         * @group common
          */
         public T defaultAction(String defaultAction) {
             this.properties.put("defaultAction", defaultAction);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option is a
+         * The address of the nodes composing the cluster.
+         * The option is a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(List<Object> nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The address of the nodes composing the cluster. The option will be
-         * converted to a
+         * The address of the nodes composing the cluster.
+         * The option will be converted to a
          * <code>java.util.List&lt;io.atomix.catalyst.transport.Address&gt;</code> type.
+         * @group common
          */
         public T nodes(String nodes) {
             this.properties.put("nodes", nodes);
             return (T) this;
         }
         /**
-         * The header that wil carry the result. The option is a
-         * <code>java.lang.String</code> type.
+         * The header that wil carry the result.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T resultHeader(String resultHeader) {
             this.properties.put("resultHeader", resultHeader);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option is a
+         * Sets the Atomix transport.
+         * The option is a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(Class<Object> transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Sets the Atomix transport. The option will be converted to a
+         * Sets the Atomix transport.
+         * The option will be converted to a
          * <code>java.lang.Class&lt;io.atomix.catalyst.transport.Transport&gt;</code> type.
+         * @group common
          */
         public T transport(String transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * The resource ttl. The option is a <code>long</code> type.
+         * The resource ttl.
+         * The option is a <code>long</code> type.
+         * @group common
          */
         public T ttl(long ttl) {
             this.properties.put("ttl", ttl);
             return (T) this;
         }
         /**
-         * The resource ttl. The option will be converted to a <code>long</code>
-         * type.
+         * The resource ttl.
+         * The option will be converted to a <code>long</code> type.
+         * @group common
          */
         public T ttl(String ttl) {
             this.properties.put("ttl", ttl);
@@ -150,8 +170,9 @@ public interface AtomixValueEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * is a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(boolean basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
@@ -159,40 +180,47 @@ public interface AtomixValueEndpointBuilder {
         }
         /**
          * Whether the endpoint should use basic property binding (Camel 2.x) or
-         * the newer property binding with additional capabilities. The option
-         * will be converted to a <code>boolean</code> type.
+         * the newer property binding with additional capabilities.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T basicPropertyBinding(String basicPropertyBinding) {
             this.properties.put("basicPropertyBinding", basicPropertyBinding);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option is a
-         * <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceConfig(Properties defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The cluster wide default resource configuration. The option will be
-         * converted to a <code>java.util.Properties</code> type.
+         * The cluster wide default resource configuration.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceConfig(String defaultResourceConfig) {
             this.properties.put("defaultResourceConfig", defaultResourceConfig);
             return (T) this;
         }
         /**
-         * The local default resource options. The option is a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option is a <code>java.util.Properties</code> type.
+         * @group advanced
          */
         public T defaultResourceOptions(Properties defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
             return (T) this;
         }
         /**
-         * The local default resource options. The option will be converted to a
-         * <code>java.util.Properties</code> type.
+         * The local default resource options.
+         * The option will be converted to a <code>java.util.Properties</code>
+         * type.
+         * @group advanced
          */
         public T defaultResourceOptions(String defaultResourceOptions) {
             this.properties.put("defaultResourceOptions", defaultResourceOptions);
@@ -201,8 +229,9 @@ public interface AtomixValueEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option is a
-         * <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(boolean ephemeral) {
             this.properties.put("ephemeral", ephemeral);
@@ -211,60 +240,70 @@ public interface AtomixValueEndpointBuilder {
         /**
          * Sets if the local member should join groups as PersistentMember or
          * not. If set to ephemeral the local member will receive an auto
-         * generated ID thus the local one is ignored. The option will be
-         * converted to a <code>boolean</code> type.
+         * generated ID thus the local one is ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T ephemeral(String ephemeral) {
             this.properties.put("ephemeral", ephemeral);
             return (T) this;
         }
         /**
-         * The read consistency level. The option is a
-         * <code>io.atomix.resource.ReadConsistency</code> type.
+         * The read consistency level.
+         * The option is a <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(ReadConsistency readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * The read consistency level. The option will be converted to a
+         * The read consistency level.
+         * The option will be converted to a
          * <code>io.atomix.resource.ReadConsistency</code> type.
+         * @group advanced
          */
         public T readConsistency(String readConsistency) {
             this.properties.put("readConsistency", readConsistency);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(Map<String, Properties> resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Cluster wide resources configuration. The option will be converted to
-         * a <code>java.util.Map&lt;java.lang.String,
+         * Cluster wide resources configuration.
+         * The option will be converted to a
+         * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceConfigs(String resourceConfigs) {
             this.properties.put("resourceConfigs", resourceConfigs);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option is a
-         * <code>java.util.Map&lt;java.lang.String,
+         * Local resources configurations.
+         * The option is a <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(Map<String, Properties> resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
             return (T) this;
         }
         /**
-         * Local resources configurations. The option will be converted to a
+         * Local resources configurations.
+         * The option will be converted to a
          * <code>java.util.Map&lt;java.lang.String,
          * java.util.Properties&gt;</code> type.
+         * @group advanced
          */
         public T resourceOptions(String resourceOptions) {
             this.properties.put("resourceOptions", resourceOptions);
@@ -272,8 +311,9 @@ public interface AtomixValueEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * is a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option is a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(boolean synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -281,8 +321,9 @@ public interface AtomixValueEndpointBuilder {
         }
         /**
          * Sets whether synchronous processing should be strictly used, or Camel
-         * is allowed to use asynchronous processing (if supported). The option
-         * will be converted to a <code>boolean</code> type.
+         * is allowed to use asynchronous processing (if supported).
+         * The option will be converted to a <code>boolean</code> type.
+         * @group advanced
          */
         public T synchronous(String synchronous) {
             this.properties.put("synchronous", synchronous);
@@ -308,7 +349,9 @@ public interface AtomixValueEndpointBuilder {
          * 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.
+         * ignored.
+         * The option is a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixValueConsumerBuilder bridgeErrorHandler(
                 boolean bridgeErrorHandler) {
@@ -322,7 +365,9 @@ public interface AtomixValueEndpointBuilder {
          * 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 will be converted to a <code>boolean</code> type.
+         * ignored.
+         * The option will be converted to a <code>boolean</code> type.
+         * @group consumer
          */
         public AtomixValueConsumerBuilder bridgeErrorHandler(
                 String bridgeErrorHandler) {
@@ -333,8 +378,10 @@ public interface AtomixValueEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option is a
-         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * logged at WARN or ERROR level and ignored.
+         * The option is a <code>org.apache.camel.spi.ExceptionHandler</code>
+         * type.
+         * @group consumer (advanced)
          */
         public AtomixValueConsumerBuilder exceptionHandler(
                 ExceptionHandler exceptionHandler) {
@@ -345,9 +392,10 @@ public interface AtomixValueEndpointBuilder {
          * To let the consumer use a custom ExceptionHandler. Notice if the
          * option bridgeErrorHandler is enabled then this option is not in use.
          * By default the consumer will deal with exceptions, that will be
-         * logged at WARN or ERROR level and ignored. The option will be
-         * converted to a <code>org.apache.camel.spi.ExceptionHandler</code>
-         * type.
+         * logged at WARN or ERROR level and ignored.
+         * The option will be converted to a
+         * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+         * @group consumer (advanced)
          */
         public AtomixValueConsumerBuilder exceptionHandler(
                 String exceptionHandler) {
@@ -355,8 +403,9 @@ public interface AtomixValueEndpointBuilder {
             return (AtomixValueConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option is a <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixValueConsumerBuilder exchangePattern(
                 ExchangePattern exchangePattern) {
@@ -364,9 +413,10 @@ public interface AtomixValueEndpointBuilder {
             return (AtomixValueConsumerBuilder) this;
         }
         /**
-         * Sets the exchange pattern when the consumer creates an exchange. The
-         * option will be converted to a
+         * Sets the exchange pattern when the consumer creates an exchange.
+         * The option will be converted to a
          * <code>org.apache.camel.ExchangePattern</code> type.
+         * @group consumer (advanced)
          */
         public AtomixValueConsumerBuilder exchangePattern(String exchangePattern) {
             this.properties.put("exchangePattern", exchangePattern);
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AvroEndpointBuilder.java b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AvroEndpointBuilder.java
index 4cc9dd8..d7375b9 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AvroEndpointBuilder.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/endpoint/AvroEndpointBuilder.java
@@ -42,79 +42,93 @@ public interface AvroEndpointBuilder {
             super("avro", path);
         }
         /**
-         * Transport to use, can be either http or netty. The option is a
+         * Transport to use, can be either http or netty.
+         * The option is a
          * <code>org.apache.camel.component.avro.AvroTransport</code> type.
+         * @group common
          */
         public T transport(AvroTransport transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Transport to use, can be either http or netty. The option will be
-         * converted to a
+         * Transport to use, can be either http or netty.
+         * The option will be converted to a
          * <code>org.apache.camel.component.avro.AvroTransport</code> type.
+         * @group common
          */
         public T transport(String transport) {
             this.properties.put("transport", transport);
             return (T) this;
         }
         /**
-         * Port number to use. The option is a <code>int</code> type.
+         * Port number to use.
+         * The option is a <code>int</code> type.
+         * @group common
          */
         public T port(int port) {
             this.properties.put("port", port);
             return (T) this;
         }
         /**
-         * Port number to use. The option will be converted to a
-         * <code>int</code> type.
+         * Port number to use.
+         * The option will be converted to a <code>int</code> type.
+         * @group common
          */
         public T port(String port) {
             this.properties.put("port", port);
             return (T) this;
         }
         /**
-         * Hostname to use. The option is a <code>java.lang.String</code> type.
+         * Hostname to use.
+         * The option is a <code>java.lang.String</code> type.
+         * @group common
          */
         public T host(String host) {
             this.properties.put("host", host);
             return (T) this;
         }
         /**
-         * The name of the message to send. The option is a
-         * <code>java.lang.String</code> type.
+         * The name of the message to send.
... 122482 lines suppressed ...