CAMEL-20600: camel-activemq6 for using 6.x brokers (#14181)

* CAMEL-20600: camel-activemq6 for using 6.x brokers

* CAMEL-20600: camel-activemq6 for using 6.x brokers
diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index 1222027..e62328d 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -53,6 +53,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-activemq6</artifactId>
+        <version>4.7.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-amqp</artifactId>
         <version>4.7.0-SNAPSHOT</version>
       </dependency>
diff --git a/catalog/camel-allcomponents/pom.xml b/catalog/camel-allcomponents/pom.xml
index 1ad3d5e..2dfc561 100644
--- a/catalog/camel-allcomponents/pom.xml
+++ b/catalog/camel-allcomponents/pom.xml
@@ -54,6 +54,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
+            <artifactId>camel-activemq6</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
             <artifactId>camel-amqp</artifactId>
             <version>${project.version}</version>
         </dependency>
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index 73dcf99..eda05e1 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -1,4 +1,5 @@
 activemq
+activemq6
 amqp
 arangodb
 as2
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json
index b4ed7de..2b7976d 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq.json
@@ -2,8 +2,8 @@
   "component": {
     "kind": "component",
     "name": "activemq",
-    "title": "ActiveMQ",
-    "description": "Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.",
+    "title": "ActiveMQ 5.x",
+    "description": "Send messages to (or consume from) Apache ActiveMQ 5.x. This component extends the Camel JMS component.",
     "deprecated": false,
     "firstVersion": "1.0.0",
     "label": "messaging",
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq6.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq6.json
new file mode 100644
index 0000000..aa2fbe8
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/activemq6.json
@@ -0,0 +1,259 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "activemq6",
+    "title": "ActiveMQ 6.x",
+    "description": "Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends the Camel JMS component.",
+    "deprecated": false,
+    "firstVersion": "4.7.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.activemq6.ActiveMQComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-activemq6",
+    "version": "4.7.0-SNAPSHOT",
+    "scheme": "activemq6",
+    "extendsScheme": "jms",
+    "syntax": "activemq6:destinationType:destinationName",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false,
+    "remote": true
+  },
+  "componentProperties": {
+    "brokerURL": { "index": 0, "kind": "property", "displayName": "Broker URL", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the broker URL to use to connect to ActiveMQ. If none configured then localhost:61616 is used by default (however can be overridden by configuration from environment variables)" },
+    "clientId": { "index": 1, "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions with JMS 1.1." },
+    "connectionFactory": { "index": 2, "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "jakarta.jms.ConnectionFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
+    "disableReplyTo": { "index": 3, "kind": "property", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to 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." },
+    "durableSubscriptionName": { "index": 4, "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
+    "embedded": { "index": 5, "kind": "property", "displayName": "Embedded", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Use an embedded in-memory (non-persistent) ActiveMQ broker for development and testing purposes. You must have activemq-broker JAR on the classpath." },
+    "jmsMessageType": { "index": 6, "kind": "property", "displayName": "Jms Message Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific jakarta.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." },
+    "replyTo": { "index": 7, "kind": "property", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "index": 8, "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts 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." },
+    "usePooledConnection": { "index": 9, "kind": "property", "displayName": "Use Pooled Connection", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ from outside a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is true." },
+    "useSingleConnection": { "index": 10, "kind": "property", "displayName": "Use Single Connection", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is false and a pooled connection is used by default." },
+    "acknowledgementModeName": { "index": 11, "kind": "property", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE" },
+    "artemisConsumerPriority": { "index": 12, "kind": "property", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer)." },
+    "asyncConsumer": { "index": 13, "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may 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)." },
+    "autoStartup": { "index": 14, "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "index": 15, "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
+    "cacheLevelName": { "index": 16, "kind": "property", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "concurrentConsumers": { "index": 17, "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply 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." },
+    "maxConcurrentConsumers": { "index": 18, "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). 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." },
+    "replyToDeliveryPersistent": { "index": 19, "kind": "property", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use persistent delivery by default for replies." },
+    "selector": { "index": 20, "kind": "property", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "index": 21, "kind": "property", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription durable. The durable subscription name to be used can 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." },
+    "subscriptionName": { "index": 22, "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or 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)." },
+    "subscriptionShared": { "index": 23, "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription shared. The shared subscription name to be used can be 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." },
+    "acceptMessagesWhileStopping": { "index": 24, "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while 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." },
+    "allowReplyManagerQuickStop": { "index": 25, "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in the 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." },
+    "consumerType": { "index": 26, "kind": "property", "displayName": "Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The 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." },
+    "defaultTaskExecutorType": { "index": 27, "kind": "property", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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 thread-pool-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." },
+    "eagerLoadingOfProperties": { "index": 28, "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody." },
+    "eagerPoisonBody": { "index": 29, "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties." },
+    "exposeListenerSession": { "index": 30, "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consuming messages." },
+    "replyToConsumerType": { "index": 31, "kind": "property", "displayName": "Reply To Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The consumer type of the reply consumer (when doing request\/reply), 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." },
+    "replyToSameDestinationAllowed": { "index": 32, "kind": "property", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a reply 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." },
+    "taskExecutor": { "index": 33, "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to specify a custom task executor for consuming messages." },
+    "deliveryDelay": { "index": 34, "kind": "property", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker." },
+    "deliveryMode": { "index": 35, "kind": "property", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2." },
+    "deliveryPersistent": { "index": 36, "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether persistent delivery is used by default." },
+    "explicitQosEnabled": { "index": 37, "kind": "property", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be 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." },
+    "formatDateHeadersToIso8601": { "index": 38, "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard." },
+    "lazyStartProducer": { "index": 39, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
+    "preserveMessageQos": { "index": 40, "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set to true, if you want to send message using the QoS settings specified on the message, 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." },
+    "priority": { "index": 41, "kind": "property", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 4, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect." },
+    "replyToConcurrentConsumers": { "index": 42, "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToMaxConcurrentConsumers": { "index": 43, "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToOnTimeoutMaxConcurrentConsumers": { "index": 44, "kind": "property", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS." },
+    "replyToOverride": { "index": 45, "kind": "property", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination." },
+    "replyToType": { "index": 46, "kind": "property", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of 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." },
+    "requestTimeout": { "index": 47, "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The 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." },
+    "timeToLive": { "index": 48, "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
+    "allowAdditionalHeaders": { "index": 49, "kind": "property", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "This option is used to allow additional headers which may have values that are 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." },
+    "allowNullBody": { "index": 50, "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown." },
+    "alwaysCopyMessage": { "index": 51, "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will always make a JMS message copy of the message when it 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)" },
+    "correlationProperty": { "index": 52, "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel." },
+    "disableTimeToLive": { "index": 53, "kind": "property", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Use this option to force disabling time to live. For example when you do 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." },
+    "forceSendOriginalMessage": { "index": 54, "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using mapJmsMessage=false Camel will create a new JMS 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." },
+    "includeSentJMSMessageID": { "index": 55, "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly (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." },
+    "replyToCacheLevelName": { "index": 56, "kind": "property", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "replyToDestinationSelectorName": { "index": 57, "kind": "property", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS Selector using the fixed name to be used so you 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)." },
+    "streamMessageTypeEnabled": { "index": 58, "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message 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." },
+    "allowAutoWiredConnectionFactory": { "index": 59, "kind": "property", "displayName": "Allow Auto Wired Connection Factory", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default." },
+    "allowAutoWiredDestinationResolver": { "index": 60, "kind": "property", "displayName": "Allow Auto Wired Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default." },
+    "allowSerializedHeaders": { "index": 61, "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level." },
+    "artemisStreamingEnabled": { "index": 62, "kind": "property", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used." },
+    "asyncStartListener": { "index": 63, "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or fail-over. 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." },
+    "asyncStopListener": { "index": 64, "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
+    "autowiredEnabled": { "index": 65, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc." },
+    "configuration": { "index": 66, "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use a shared JMS configuration" },
+    "destinationResolver": { "index": 67, "kind": "property", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry)." },
+    "errorHandler": { "index": 68, "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions 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." },
+    "exceptionListener": { "index": 69, "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "jakarta.jms.ExceptionListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
+    "idleConsumerLimit": { "index": 70, "kind": "property", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
+    "idleTaskExecutionLimit": { "index": 71, "kind": "property", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the limit for idle executions of a receive task, not having received any message 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." },
+    "includeAllJMSXProperties": { "index": 72, "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to include all JMSX prefixed 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." },
+    "includeCorrelationIDAsBytes": { "index": 73, "kind": "property", "displayName": "Include Correlation IDAs Bytes", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the JMS consumer should include JMSCorrelationIDAsBytes as a header on the Camel Message." },
+    "jmsKeyFormatStrategy": { "index": 74, "kind": "property", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "enum": [ "default", "passthrough" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for 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." },
+    "mapJmsMessage": { "index": 75, "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as jakarta.jms.TextMessage to a String etc." },
+    "maxMessagesPerTask": { "index": 76, "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg 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." },
+    "messageConverter": { "index": 77, "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a jakarta.jms.Message." },
+    "messageCreatedStrategy": { "index": 78, "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of jakarta.jms.Message objects when Camel is sending a JMS message." },
+    "messageIdEnabled": { "index": 79, "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS 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." },
+    "messageListenerContainerFactory": { "index": 80, "kind": "property", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom." },
+    "messageTimestampEnabled": { "index": 81, "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether timestamps should be enabled by default on sending messages. This 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." },
+    "pubSubNoLocal": { "index": 82, "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
+    "queueBrowseStrategy": { "index": 83, "kind": "property", "displayName": "Queue Browse Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.QueueBrowseStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom QueueBrowseStrategy when browsing queues" },
+    "receiveTimeout": { "index": 84, "kind": "property", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "index": 85, "kind": "property", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds." },
+    "requestTimeoutCheckerInterval": { "index": 86, "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Configures how often Camel should check for timed out Exchanges when 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." },
+    "synchronous": { "index": 87, "kind": "property", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "temporaryQueueResolver": { "index": 88, "kind": "property", "displayName": "Temporary Queue Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.TemporaryQueueResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable TemporaryQueueResolver that allows you to use your own resolver for creating temporary queues (some messaging systems has special requirements for creating temporary queues)." },
+    "transferException": { "index": 89, "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a jakarta.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!" },
+    "transferExchange": { "index": 90, "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "You can transfer the exchange over the wire instead of just the body and headers. The following 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. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!" },
+    "trustAllPackages": { "index": 91, "kind": "property", "displayName": "Trust All Packages", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended practice to send Java serialized objects over network. Setting this to true can expose security risks, so use this with care." },
+    "useMessageIDAsCorrelationID": { "index": 92, "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "index": 93, "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled." },
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "index": 94, "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated." },
+    "waitForTemporaryReplyToToBeUpdatedCounter": { "index": 95, "kind": "property", "displayName": "Wait For Temporary Reply To To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 200, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for temporary replyTo queue to be created and ready when doing request\/reply over JMS." },
+    "waitForTemporaryReplyToToBeUpdatedThreadSleepingTime": { "index": 96, "kind": "property", "displayName": "Wait For Temporary Reply To To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for temporary replyTo queue to be ready." },
+    "headerFilterStrategy": { "index": 97, "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "errorHandlerLoggingLevel": { "index": 98, "kind": "property", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions." },
+    "errorHandlerLogStackTrace": { "index": 99, "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to control whether stack-traces should be logged or not, by the default errorHandler." },
+    "password": { "index": 100, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "username": { "index": 101, "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "transacted": { "index": 102, "kind": "property", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "index": 103, "kind": "property", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction." },
+    "lazyCreateTransactionManager": { "index": 104, "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true." },
+    "transactionManager": { "index": 105, "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "index": 106, "kind": "property", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "index": 107, "kind": "property", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
+  },
+  "headers": {
+    "CamelJmsDestination": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "jakarta.jms.Destination", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_DESTINATION" },
+    "CamelJmsDestinationName": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the queue or topic to use as destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_DESTINATION_NAME" },
+    "CamelJMSDestinationProduced": { "index": 2, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the queue or topic the message was sent to.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_DESTINATION_NAME_PRODUCED" },
+    "JMSXGroupID": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS group ID.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_X_GROUP_ID" },
+    "JMSMessageID": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS unique message ID.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_MESSAGE_ID" },
+    "JMSCorrelationID": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS correlation ID.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_CORRELATION_ID" },
+    "JMSCorrelationIDAsBytes": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "byte[]", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS correlation ID as bytes.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_CORRELATION_ID_AS_BYTES" },
+    "JMSDeliveryMode": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS delivery mode.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_DELIVERY_MODE" },
+    "JMSDestination": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "jakarta.jms.Destination", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_DESTINATION" },
+    "JMSExpiration": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS expiration.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_EXPIRATION" },
+    "JMSPriority": { "index": 10, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS priority (with 0 as the lowest priority and 9 as the highest).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_PRIORITY" },
+    "JMSRedelivered": { "index": 11, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is the JMS message redelivered.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_REDELIVERED" },
+    "JMSTimestamp": { "index": 12, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS timestamp.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TIMESTAMP" },
+    "JMSReplyTo": { "index": 13, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "jakarta.jms.Destination", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS reply-to destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_REPLY_TO" },
+    "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" },
+    "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" },
+    "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" },
+    "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" }
+  },
+  "properties": {
+    "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" },
+    "destinationName": { "index": 1, "kind": "path", "displayName": "Destination Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the queue or topic to use as destination" },
+    "clientId": { "index": 2, "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions with JMS 1.1." },
+    "connectionFactory": { "index": 3, "kind": "parameter", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "jakarta.jms.ConnectionFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
+    "disableReplyTo": { "index": 4, "kind": "parameter", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back 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." },
+    "durableSubscriptionName": { "index": 5, "kind": "parameter", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
+    "jmsMessageType": { "index": 6, "kind": "parameter", "displayName": "Jms Message Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific jakarta.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." },
+    "replyTo": { "index": 7, "kind": "parameter", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "index": 8, "kind": "parameter", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts 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." },
+    "acknowledgementModeName": { "index": 9, "kind": "parameter", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE" },
+    "artemisConsumerPriority": { "index": 10, "kind": "parameter", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer)." },
+    "asyncConsumer": { "index": 11, "kind": "parameter", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may 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)." },
+    "autoStartup": { "index": 12, "kind": "parameter", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "index": 13, "kind": "parameter", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
+    "cacheLevelName": { "index": 14, "kind": "parameter", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "concurrentConsumers": { "index": 15, "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/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." },
+    "maxConcurrentConsumers": { "index": 16, "kind": "parameter", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). 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." },
+    "replyToDeliveryPersistent": { "index": 17, "kind": "parameter", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use persistent delivery by default for replies." },
+    "selector": { "index": 18, "kind": "parameter", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "index": 19, "kind": "parameter", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription durable. The durable subscription name to be used can 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." },
+    "subscriptionName": { "index": 20, "kind": "parameter", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or 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)." },
+    "subscriptionShared": { "index": 21, "kind": "parameter", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription shared. The shared subscription name to be used can be 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." },
+    "acceptMessagesWhileStopping": { "index": 22, "kind": "parameter", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while 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." },
+    "allowReplyManagerQuickStop": { "index": 23, "kind": "parameter", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in 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." },
+    "consumerType": { "index": 24, "kind": "parameter", "displayName": "Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The 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." },
+    "defaultTaskExecutorType": { "index": 25, "kind": "parameter", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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 thread-pool-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." },
+    "destinationOptions": { "index": 26, "kind": "parameter", "displayName": "Destination Options", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "prefix": "destination.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Destination Options are a way to provide extended configuration options to a JMS consumer without having to extend the JMS API. The options are encoded using URL query syntax in the destination name that the consumer is created on. See more details at https:\/\/activemq.apache.org\/destination-options." },
+    "eagerLoadingOfProperties": { "index": 27, "kind": "parameter", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody." },
+    "eagerPoisonBody": { "index": 28, "kind": "parameter", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties." },
+    "exceptionHandler": { "index": 29, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
+    "exchangePattern": { "index": 30, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "exposeListenerSession": { "index": 31, "kind": "parameter", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consuming messages." },
+    "replyToConsumerType": { "index": 32, "kind": "parameter", "displayName": "Reply To Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The consumer type of the reply consumer (when doing request\/reply), 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." },
+    "replyToSameDestinationAllowed": { "index": 33, "kind": "parameter", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a 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." },
+    "taskExecutor": { "index": 34, "kind": "parameter", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to specify a custom task executor for consuming messages." },
+    "deliveryDelay": { "index": 35, "kind": "parameter", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker." },
+    "deliveryMode": { "index": 36, "kind": "parameter", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2." },
+    "deliveryPersistent": { "index": 37, "kind": "parameter", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether persistent delivery is used by default." },
+    "explicitQosEnabled": { "index": 38, "kind": "parameter", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be 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." },
+    "formatDateHeadersToIso8601": { "index": 39, "kind": "parameter", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard." },
+    "preserveMessageQos": { "index": 40, "kind": "parameter", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set to true, if you want to send message using the QoS settings specified on the message, 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." },
+    "priority": { "index": 41, "kind": "parameter", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 4, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect." },
+    "replyToConcurrentConsumers": { "index": 42, "kind": "parameter", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToMaxConcurrentConsumers": { "index": 43, "kind": "parameter", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToOnTimeoutMaxConcurrentConsumers": { "index": 44, "kind": "parameter", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS." },
+    "replyToOverride": { "index": 45, "kind": "parameter", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination." },
+    "replyToType": { "index": 46, "kind": "parameter", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of 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." },
+    "requestTimeout": { "index": 47, "kind": "parameter", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The 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." },
+    "timeToLive": { "index": 48, "kind": "parameter", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
+    "allowAdditionalHeaders": { "index": 49, "kind": "parameter", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "This option is used to allow additional headers which may have values that are 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." },
+    "allowNullBody": { "index": 50, "kind": "parameter", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown." },
+    "alwaysCopyMessage": { "index": 51, "kind": "parameter", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will always make a JMS message copy of the message when it 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)" },
+    "correlationProperty": { "index": 52, "kind": "parameter", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel." },
+    "disableTimeToLive": { "index": 53, "kind": "parameter", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Use this option to force disabling time to live. For example when you do 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." },
+    "forceSendOriginalMessage": { "index": 54, "kind": "parameter", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using mapJmsMessage=false Camel will create a new JMS 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." },
+    "includeSentJMSMessageID": { "index": 55, "kind": "parameter", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly (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." },
+    "lazyStartProducer": { "index": 56, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
+    "replyToCacheLevelName": { "index": 57, "kind": "parameter", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "replyToDestinationSelectorName": { "index": 58, "kind": "parameter", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS Selector using the fixed name to be used so you 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)." },
+    "streamMessageTypeEnabled": { "index": 59, "kind": "parameter", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message 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." },
+    "allowSerializedHeaders": { "index": 60, "kind": "parameter", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level." },
+    "artemisStreamingEnabled": { "index": 61, "kind": "parameter", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used." },
+    "asyncStartListener": { "index": 62, "kind": "parameter", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or fail-over. 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." },
+    "asyncStopListener": { "index": 63, "kind": "parameter", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
+    "destinationResolver": { "index": 64, "kind": "parameter", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry)." },
+    "errorHandler": { "index": 65, "kind": "parameter", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions 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." },
+    "exceptionListener": { "index": 66, "kind": "parameter", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "jakarta.jms.ExceptionListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
+    "headerFilterStrategy": { "index": 67, "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "idleConsumerLimit": { "index": 68, "kind": "parameter", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
+    "idleTaskExecutionLimit": { "index": 69, "kind": "parameter", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the limit for idle executions of a receive task, not having received any message 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." },
+    "includeAllJMSXProperties": { "index": 70, "kind": "parameter", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to include all JMSX prefixed 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." },
+    "jmsKeyFormatStrategy": { "index": 71, "kind": "parameter", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "enum": [ "default", "passthrough" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for 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." },
+    "mapJmsMessage": { "index": 72, "kind": "parameter", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as jakarta.jms.TextMessage to a String etc." },
+    "maxMessagesPerTask": { "index": 73, "kind": "parameter", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg 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." },
+    "messageConverter": { "index": 74, "kind": "parameter", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a jakarta.jms.Message." },
+    "messageCreatedStrategy": { "index": 75, "kind": "parameter", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of jakarta.jms.Message objects when Camel is sending a JMS message." },
+    "messageIdEnabled": { "index": 76, "kind": "parameter", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS 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." },
+    "messageListenerContainerFactory": { "index": 77, "kind": "parameter", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom." },
+    "messageTimestampEnabled": { "index": 78, "kind": "parameter", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether timestamps should be enabled by default on sending messages. This 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." },
+    "pubSubNoLocal": { "index": 79, "kind": "parameter", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
+    "receiveTimeout": { "index": 80, "kind": "parameter", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "index": 81, "kind": "parameter", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds." },
+    "requestTimeoutCheckerInterval": { "index": 82, "kind": "parameter", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Configures how often Camel should check for timed out Exchanges when 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." },
+    "synchronous": { "index": 83, "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "temporaryQueueResolver": { "index": 84, "kind": "parameter", "displayName": "Temporary Queue Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.TemporaryQueueResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable TemporaryQueueResolver that allows you to use your own resolver for creating temporary queues (some messaging systems has special requirements for creating temporary queues)." },
+    "transferException": { "index": 85, "kind": "parameter", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a jakarta.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!" },
+    "transferExchange": { "index": 86, "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "You can transfer the exchange over the wire instead of just the body and headers. The following 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. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!" },
+    "useMessageIDAsCorrelationID": { "index": 87, "kind": "parameter", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "index": 88, "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled." },
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "index": 89, "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated." },
+    "waitForTemporaryReplyToToBeUpdatedCounter": { "index": 90, "kind": "parameter", "displayName": "Wait For Temporary Reply To To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 200, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for temporary replyTo queue to be created and ready when doing request\/reply over JMS." },
+    "waitForTemporaryReplyToToBeUpdatedThreadSleepingTime": { "index": 91, "kind": "parameter", "displayName": "Wait For Temporary Reply To To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for temporary replyTo queue to be ready." },
+    "errorHandlerLoggingLevel": { "index": 92, "kind": "parameter", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions." },
+    "errorHandlerLogStackTrace": { "index": 93, "kind": "parameter", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to control whether stack-traces should be logged or not, by the default errorHandler." },
+    "password": { "index": 94, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "username": { "index": 95, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "transacted": { "index": 96, "kind": "parameter", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "index": 97, "kind": "parameter", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction." },
+    "lazyCreateTransactionManager": { "index": 98, "kind": "parameter", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true." },
+    "transactionManager": { "index": 99, "kind": "parameter", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "index": 100, "kind": "parameter", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "index": 101, "kind": "parameter", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
+  }
+}
diff --git a/components/camel-activemq/pom.xml b/components/camel-activemq/pom.xml
index aaad639..1fd2bf8 100644
--- a/components/camel-activemq/pom.xml
+++ b/components/camel-activemq/pom.xml
@@ -30,8 +30,8 @@
     <artifactId>camel-activemq</artifactId>
     <packaging>jar</packaging>
 
-    <name>Camel :: ActiveMQ</name>
-    <description>ActiveMQ component for Camel</description>
+    <name>Camel :: ActiveMQ 5.x</name>
+    <description>ActiveMQ 5.x component for Camel</description>
 
     <properties>
         <camel.surefire.parallel>true</camel.surefire.parallel>
diff --git a/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json b/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json
index b4ed7de..2b7976d 100644
--- a/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json
+++ b/components/camel-activemq/src/generated/resources/META-INF/org/apache/camel/component/activemq/activemq.json
@@ -2,8 +2,8 @@
   "component": {
     "kind": "component",
     "name": "activemq",
-    "title": "ActiveMQ",
-    "description": "Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.",
+    "title": "ActiveMQ 5.x",
+    "description": "Send messages to (or consume from) Apache ActiveMQ 5.x. This component extends the Camel JMS component.",
     "deprecated": false,
     "firstVersion": "1.0.0",
     "label": "messaging",
diff --git a/components/camel-activemq/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-activemq/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index f079d29..cd21736 100644
--- a/components/camel-activemq/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ b/components/camel-activemq/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -3,5 +3,5 @@
 groupId=org.apache.camel
 artifactId=camel-activemq
 version=4.7.0-SNAPSHOT
-projectName=Camel :: ActiveMQ
-projectDescription=ActiveMQ component for Camel
+projectName=Camel :: ActiveMQ 5.x
+projectDescription=ActiveMQ 5.x component for Camel
diff --git a/components/camel-activemq/src/main/docs/activemq-component.adoc b/components/camel-activemq/src/main/docs/activemq-component.adoc
index 59c3798..239e956 100644
--- a/components/camel-activemq/src/main/docs/activemq-component.adoc
+++ b/components/camel-activemq/src/main/docs/activemq-component.adoc
@@ -1,8 +1,8 @@
-= ActiveMQ Component
-:doctitle: ActiveMQ
+= ActiveMQ 5.x Component
+:doctitle: ActiveMQ 5.x
 :shortname: activemq
 :artifactid: camel-activemq
-:description: Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.
+:description: Send messages to (or consume from) Apache ActiveMQ 5.x. This component extends the Camel JMS component.
 :since: 1.0
 :supportlevel: Stable
 :tabs-sync-option:
@@ -17,6 +17,12 @@
 The ActiveMQ component is an extension to the JMS component and has been pre-configured for using Apache ActiveMQ 5.x (not Artemis).
 Users of Apache ActiveMQ Artemis should use the JMS component.
 
+[IMPORTANT]
+====
+The camel-activemq component is best intended for ActiveMQ 5.x classic brokers. If you use ActiveMQ 6.x brokers,
+then use the camel-activemq6 component instead.
+====
+
 [TIP]
 ====
 *More documentation*
diff --git a/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQEndpoint.java b/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQEndpoint.java
index 1ba72b7..bea3f0b 100644
--- a/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQEndpoint.java
+++ b/components/camel-activemq/src/main/java/org/apache/camel/component/activemq/ActiveMQEndpoint.java
@@ -27,9 +27,9 @@
 import org.apache.camel.spi.UriParam;
 
 /**
- * Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS component.
+ * Send messages to (or consume from) Apache ActiveMQ 5.x. This component extends the Camel JMS component.
  */
-@UriEndpoint(firstVersion = "1.0.0", extendsScheme = "jms", scheme = "activemq", title = "ActiveMQ",
+@UriEndpoint(firstVersion = "1.0.0", extendsScheme = "jms", scheme = "activemq", title = "ActiveMQ 5.x",
              syntax = "activemq:destinationType:destinationName",
              category = { Category.MESSAGING })
 public class ActiveMQEndpoint extends JmsEndpoint {
diff --git a/components/camel-activemq6/pom.xml b/components/camel-activemq6/pom.xml
new file mode 100644
index 0000000..f8f93a7
--- /dev/null
+++ b/components/camel-activemq6/pom.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>components</artifactId>
+        <version>4.7.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-activemq6</artifactId>
+    <packaging>jar</packaging>
+
+    <name>Camel :: ActiveMQ 6.x</name>
+    <description>ActiveMQ 6.x component for Camel</description>
+
+    <properties>
+        <camel.surefire.parallel>true</camel.surefire.parallel>
+
+        <!-- Artemis container is not available on these platforms -->
+        <skipITs.ppc64le>true</skipITs.ppc64le>
+        <skipITs.s390x>true</skipITs.s390x>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-jms</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-client</artifactId>
+            <version>${activemq6-version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-infra-core</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-infra-artemis</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-infra-messaging-common</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <type>test-jar</type>
+        </dependency>
+
+    </dependencies>
+
+</project>
diff --git a/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQComponentConfigurer.java b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQComponentConfigurer.java
new file mode 100644
index 0000000..2b19c0a7
--- /dev/null
+++ b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQComponentConfigurer.java
@@ -0,0 +1,72 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.activemq6;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.component.jms.JmsComponentConfigurer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointSchemaGeneratorMojo")
+@SuppressWarnings("unchecked")
+public class ActiveMQComponentConfigurer extends JmsComponentConfigurer implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        ActiveMQComponent target = (ActiveMQComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "brokerurl":
+        case "brokerURL": target.setBrokerURL(property(camelContext, java.lang.String.class, value)); return true;
+        case "embedded": target.setEmbedded(property(camelContext, boolean.class, value)); return true;
+        case "trustallpackages":
+        case "trustAllPackages": target.setTrustAllPackages(property(camelContext, boolean.class, value)); return true;
+        case "usepooledconnection":
+        case "usePooledConnection": target.setUsePooledConnection(property(camelContext, boolean.class, value)); return true;
+        case "usesingleconnection":
+        case "useSingleConnection": target.setUseSingleConnection(property(camelContext, boolean.class, value)); return true;
+        default: return super.configure(camelContext, obj, name, value, ignoreCase);
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "brokerurl":
+        case "brokerURL": return java.lang.String.class;
+        case "embedded": return boolean.class;
+        case "trustallpackages":
+        case "trustAllPackages": return boolean.class;
+        case "usepooledconnection":
+        case "usePooledConnection": return boolean.class;
+        case "usesingleconnection":
+        case "useSingleConnection": return boolean.class;
+        default: return super.getOptionType(name, ignoreCase);
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        ActiveMQComponent target = (ActiveMQComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "brokerurl":
+        case "brokerURL": return target.getBrokerURL();
+        case "embedded": return target.isEmbedded();
+        case "trustallpackages":
+        case "trustAllPackages": return target.isTrustAllPackages();
+        case "usepooledconnection":
+        case "usePooledConnection": return target.isUsePooledConnection();
+        case "usesingleconnection":
+        case "useSingleConnection": return target.isUseSingleConnection();
+        default: return super.getOptionValue(obj, name, ignoreCase);
+        }
+    }
+}
+
diff --git a/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQEndpointConfigurer.java b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQEndpointConfigurer.java
new file mode 100644
index 0000000..73cde51
--- /dev/null
+++ b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQEndpointConfigurer.java
@@ -0,0 +1,60 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.activemq6;
+
+import javax.annotation.processing.Generated;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.spi.ConfigurerStrategy;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.component.jms.JmsEndpointConfigurer;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointSchemaGeneratorMojo")
+@SuppressWarnings("unchecked")
+public class ActiveMQEndpointConfigurer extends JmsEndpointConfigurer implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        ActiveMQEndpoint target = (ActiveMQEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "destinationoptions":
+        case "destinationOptions": target.setDestinationOptions(property(camelContext, java.util.Map.class, value)); return true;
+        default: return super.configure(camelContext, obj, name, value, ignoreCase);
+        }
+    }
+
+    @Override
+    public Class<?> getOptionType(String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "destinationoptions":
+        case "destinationOptions": return java.util.Map.class;
+        default: return super.getOptionType(name, ignoreCase);
+        }
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        ActiveMQEndpoint target = (ActiveMQEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "destinationoptions":
+        case "destinationOptions": return target.getDestinationOptions();
+        default: return super.getOptionValue(obj, name, ignoreCase);
+        }
+    }
+
+    @Override
+    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "destinationoptions":
+        case "destinationOptions": return java.lang.String.class;
+        default: return super.getCollectionValueType(target, name, ignoreCase);
+        }
+    }
+}
+
diff --git a/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQEndpointUriFactory.java b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQEndpointUriFactory.java
new file mode 100644
index 0000000..e24936c
--- /dev/null
+++ b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/ActiveMQEndpointUriFactory.java
@@ -0,0 +1,177 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.activemq6;
+
+import javax.annotation.processing.Generated;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.camel.spi.EndpointUriFactory;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.GenerateEndpointUriFactoryMojo")
+public class ActiveMQEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory {
+
+    private static final String BASE = ":destinationType:destinationName";
+
+    private static final Set<String> PROPERTY_NAMES;
+    private static final Set<String> SECRET_PROPERTY_NAMES;
+    private static final Set<String> MULTI_VALUE_PREFIXES;
+    static {
+        Set<String> props = new HashSet<>(102);
+        props.add("acceptMessagesWhileStopping");
+        props.add("acknowledgementModeName");
+        props.add("allowAdditionalHeaders");
+        props.add("allowNullBody");
+        props.add("allowReplyManagerQuickStop");
+        props.add("allowSerializedHeaders");
+        props.add("alwaysCopyMessage");
+        props.add("artemisConsumerPriority");
+        props.add("artemisStreamingEnabled");
+        props.add("asyncConsumer");
+        props.add("asyncStartListener");
+        props.add("asyncStopListener");
+        props.add("autoStartup");
+        props.add("cacheLevel");
+        props.add("cacheLevelName");
+        props.add("clientId");
+        props.add("concurrentConsumers");
+        props.add("connectionFactory");
+        props.add("consumerType");
+        props.add("correlationProperty");
+        props.add("defaultTaskExecutorType");
+        props.add("deliveryDelay");
+        props.add("deliveryMode");
+        props.add("deliveryPersistent");
+        props.add("destinationName");
+        props.add("destinationOptions");
+        props.add("destinationResolver");
+        props.add("destinationType");
+        props.add("disableReplyTo");
+        props.add("disableTimeToLive");
+        props.add("durableSubscriptionName");
+        props.add("eagerLoadingOfProperties");
+        props.add("eagerPoisonBody");
+        props.add("errorHandler");
+        props.add("errorHandlerLogStackTrace");
+        props.add("errorHandlerLoggingLevel");
+        props.add("exceptionHandler");
+        props.add("exceptionListener");
+        props.add("exchangePattern");
+        props.add("explicitQosEnabled");
+        props.add("exposeListenerSession");
+        props.add("forceSendOriginalMessage");
+        props.add("formatDateHeadersToIso8601");
+        props.add("headerFilterStrategy");
+        props.add("idleConsumerLimit");
+        props.add("idleTaskExecutionLimit");
+        props.add("includeAllJMSXProperties");
+        props.add("includeSentJMSMessageID");
+        props.add("jmsKeyFormatStrategy");
+        props.add("jmsMessageType");
+        props.add("lazyCreateTransactionManager");
+        props.add("lazyStartProducer");
+        props.add("mapJmsMessage");
+        props.add("maxConcurrentConsumers");
+        props.add("maxMessagesPerTask");
+        props.add("messageConverter");
+        props.add("messageCreatedStrategy");
+        props.add("messageIdEnabled");
+        props.add("messageListenerContainerFactory");
+        props.add("messageTimestampEnabled");
+        props.add("password");
+        props.add("preserveMessageQos");
+        props.add("priority");
+        props.add("pubSubNoLocal");
+        props.add("receiveTimeout");
+        props.add("recoveryInterval");
+        props.add("replyTo");
+        props.add("replyToCacheLevelName");
+        props.add("replyToConcurrentConsumers");
+        props.add("replyToConsumerType");
+        props.add("replyToDeliveryPersistent");
+        props.add("replyToDestinationSelectorName");
+        props.add("replyToMaxConcurrentConsumers");
+        props.add("replyToOnTimeoutMaxConcurrentConsumers");
+        props.add("replyToOverride");
+        props.add("replyToSameDestinationAllowed");
+        props.add("replyToType");
+        props.add("requestTimeout");
+        props.add("requestTimeoutCheckerInterval");
+        props.add("selector");
+        props.add("streamMessageTypeEnabled");
+        props.add("subscriptionDurable");
+        props.add("subscriptionName");
+        props.add("subscriptionShared");
+        props.add("synchronous");
+        props.add("taskExecutor");
+        props.add("temporaryQueueResolver");
+        props.add("testConnectionOnStartup");
+        props.add("timeToLive");
+        props.add("transacted");
+        props.add("transactedInOut");
+        props.add("transactionManager");
+        props.add("transactionName");
+        props.add("transactionTimeout");
+        props.add("transferException");
+        props.add("transferExchange");
+        props.add("useMessageIDAsCorrelationID");
+        props.add("username");
+        props.add("waitForProvisionCorrelationToBeUpdatedCounter");
+        props.add("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime");
+        props.add("waitForTemporaryReplyToToBeUpdatedCounter");
+        props.add("waitForTemporaryReplyToToBeUpdatedThreadSleepingTime");
+        PROPERTY_NAMES = Collections.unmodifiableSet(props);
+        Set<String> secretProps = new HashSet<>(2);
+        secretProps.add("password");
+        secretProps.add("username");
+        SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
+        Set<String> prefixes = new HashSet<>(1);
+        prefixes.add("destination.");
+        MULTI_VALUE_PREFIXES = Collections.unmodifiableSet(prefixes);
+    }
+
+    @Override
+    public boolean isEnabled(String scheme) {
+        return "activemq6".equals(scheme);
+    }
+
+    @Override
+    public String buildUri(String scheme, Map<String, Object> properties, boolean encode) throws URISyntaxException {
+        String syntax = scheme + BASE;
+        String uri = syntax;
+
+        Map<String, Object> copy = new HashMap<>(properties);
+
+        uri = buildPathParameter(syntax, uri, "destinationType", "queue", false, copy);
+        uri = buildPathParameter(syntax, uri, "destinationName", null, true, copy);
+        uri = buildQueryParameters(uri, copy, encode);
+        return uri;
+    }
+
+    @Override
+    public Set<String> propertyNames() {
+        return PROPERTY_NAMES;
+    }
+
+    @Override
+    public Set<String> secretPropertyNames() {
+        return SECRET_PROPERTY_NAMES;
+    }
+
+    @Override
+    public Set<String> multiValuePrefixes() {
+        return MULTI_VALUE_PREFIXES;
+    }
+
+    @Override
+    public boolean isLenientProperties() {
+        return false;
+    }
+}
+
diff --git a/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/converter/ActiveMQConverterLoader.java b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/converter/ActiveMQConverterLoader.java
new file mode 100644
index 0000000..9abed99
--- /dev/null
+++ b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/converter/ActiveMQConverterLoader.java
@@ -0,0 +1,63 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.activemq6.converter;
+
+import javax.annotation.processing.Generated;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
+import org.apache.camel.DeferredContextBinding;
+import org.apache.camel.Exchange;
+import org.apache.camel.TypeConversionException;
+import org.apache.camel.TypeConverterLoaderException;
+import org.apache.camel.spi.TypeConverterLoader;
+import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.support.SimpleTypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
+import org.apache.camel.util.DoubleMap;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.TypeConverterLoaderGeneratorMojo")
+@SuppressWarnings("unchecked")
+@DeferredContextBinding
+public final class ActiveMQConverterLoader implements TypeConverterLoader, CamelContextAware {
+
+    private CamelContext camelContext;
+
+    public ActiveMQConverterLoader() {
+    }
+
+    @Override
+    public void setCamelContext(CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    @Override
+    public CamelContext getCamelContext() {
+        return camelContext;
+    }
+
+    @Override
+    public void load(TypeConverterRegistry registry) throws TypeConverterLoaderException {
+        registerConverters(registry);
+    }
+
+    private void registerConverters(TypeConverterRegistry registry) {
+        addTypeConverter(registry, org.apache.activemq.command.ActiveMQDestination.class, java.lang.String.class, false,
+            (type, exchange, value) -> getActiveMQConverter().toDestination((java.lang.String) value));
+    }
+
+    private static void addTypeConverter(TypeConverterRegistry registry, Class<?> toType, Class<?> fromType, boolean allowNull, SimpleTypeConverter.ConversionMethod method) {
+        registry.addTypeConverter(toType, fromType, new SimpleTypeConverter(allowNull, method));
+    }
+
+    private volatile org.apache.camel.component.activemq6.converter.ActiveMQConverter activeMQConverter;
+    private org.apache.camel.component.activemq6.converter.ActiveMQConverter getActiveMQConverter() {
+        if (activeMQConverter == null) {
+            activeMQConverter = new org.apache.camel.component.activemq6.converter.ActiveMQConverter();
+            CamelContextAware.trySetCamelContext(activeMQConverter, camelContext);
+        }
+        return activeMQConverter;
+    }
+}
diff --git a/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/converter/ActiveMQMessageConverterLoader.java b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/converter/ActiveMQMessageConverterLoader.java
new file mode 100644
index 0000000..8abad95
--- /dev/null
+++ b/components/camel-activemq6/src/generated/java/org/apache/camel/component/activemq6/converter/ActiveMQMessageConverterLoader.java
@@ -0,0 +1,65 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.activemq6.converter;
+
+import javax.annotation.processing.Generated;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelContextAware;
+import org.apache.camel.DeferredContextBinding;
+import org.apache.camel.Exchange;
+import org.apache.camel.TypeConversionException;
+import org.apache.camel.TypeConverterLoaderException;
+import org.apache.camel.spi.TypeConverterLoader;
+import org.apache.camel.spi.TypeConverterRegistry;
+import org.apache.camel.support.SimpleTypeConverter;
+import org.apache.camel.support.TypeConverterSupport;
+import org.apache.camel.util.DoubleMap;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.TypeConverterLoaderGeneratorMojo")
+@SuppressWarnings("unchecked")
+@DeferredContextBinding
+public final class ActiveMQMessageConverterLoader implements TypeConverterLoader, CamelContextAware {
+
+    private CamelContext camelContext;
+
+    public ActiveMQMessageConverterLoader() {
+    }
+
+    @Override
+    public void setCamelContext(CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    @Override
+    public CamelContext getCamelContext() {
+        return camelContext;
+    }
+
+    @Override
+    public void load(TypeConverterRegistry registry) throws TypeConverterLoaderException {
+        registerConverters(registry);
+    }
+
+    private void registerConverters(TypeConverterRegistry registry) {
+        addTypeConverter(registry, org.apache.activemq.command.ActiveMQMessage.class, org.apache.camel.Exchange.class, false,
+            (type, exchange, value) -> getActiveMQMessageConverter().toMessage((org.apache.camel.Exchange) value));
+        addTypeConverter(registry, org.apache.camel.Processor.class, jakarta.jms.MessageListener.class, false,
+            (type, exchange, value) -> getActiveMQMessageConverter().toProcessor((jakarta.jms.MessageListener) value));
+    }
+
+    private static void addTypeConverter(TypeConverterRegistry registry, Class<?> toType, Class<?> fromType, boolean allowNull, SimpleTypeConverter.ConversionMethod method) {
+        registry.addTypeConverter(toType, fromType, new SimpleTypeConverter(allowNull, method));
+    }
+
+    private volatile org.apache.camel.component.activemq6.converter.ActiveMQMessageConverter activeMQMessageConverter;
+    private org.apache.camel.component.activemq6.converter.ActiveMQMessageConverter getActiveMQMessageConverter() {
+        if (activeMQMessageConverter == null) {
+            activeMQMessageConverter = new org.apache.camel.component.activemq6.converter.ActiveMQMessageConverter();
+            CamelContextAware.trySetCamelContext(activeMQMessageConverter, camelContext);
+        }
+        return activeMQMessageConverter;
+    }
+}
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json b/components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json
new file mode 100644
index 0000000..aa2fbe8
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json
@@ -0,0 +1,259 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "activemq6",
+    "title": "ActiveMQ 6.x",
+    "description": "Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends the Camel JMS component.",
+    "deprecated": false,
+    "firstVersion": "4.7.0",
+    "label": "messaging",
+    "javaType": "org.apache.camel.component.activemq6.ActiveMQComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-activemq6",
+    "version": "4.7.0-SNAPSHOT",
+    "scheme": "activemq6",
+    "extendsScheme": "jms",
+    "syntax": "activemq6:destinationType:destinationName",
+    "async": true,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": false,
+    "lenientProperties": false,
+    "remote": true
+  },
+  "componentProperties": {
+    "brokerURL": { "index": 0, "kind": "property", "displayName": "Broker URL", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Sets the broker URL to use to connect to ActiveMQ. If none configured then localhost:61616 is used by default (however can be overridden by configuration from environment variables)" },
+    "clientId": { "index": 1, "kind": "property", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions with JMS 1.1." },
+    "connectionFactory": { "index": 2, "kind": "property", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "jakarta.jms.ConnectionFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
+    "disableReplyTo": { "index": 3, "kind": "property", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to 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." },
+    "durableSubscriptionName": { "index": 4, "kind": "property", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
+    "embedded": { "index": 5, "kind": "property", "displayName": "Embedded", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Use an embedded in-memory (non-persistent) ActiveMQ broker for development and testing purposes. You must have activemq-broker JAR on the classpath." },
+    "jmsMessageType": { "index": 6, "kind": "property", "displayName": "Jms Message Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific jakarta.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." },
+    "replyTo": { "index": 7, "kind": "property", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "index": 8, "kind": "property", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts 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." },
+    "usePooledConnection": { "index": 9, "kind": "property", "displayName": "Use Pooled Connection", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": true, "description": "Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ from outside a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is true." },
+    "useSingleConnection": { "index": 10, "kind": "property", "displayName": "Use Single Connection", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is false and a pooled connection is used by default." },
+    "acknowledgementModeName": { "index": 11, "kind": "property", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE" },
+    "artemisConsumerPriority": { "index": 12, "kind": "property", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer)." },
+    "asyncConsumer": { "index": 13, "kind": "property", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may 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)." },
+    "autoStartup": { "index": 14, "kind": "property", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "index": 15, "kind": "property", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
+    "cacheLevelName": { "index": 16, "kind": "property", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "concurrentConsumers": { "index": 17, "kind": "property", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply 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." },
+    "maxConcurrentConsumers": { "index": 18, "kind": "property", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). 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." },
+    "replyToDeliveryPersistent": { "index": 19, "kind": "property", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use persistent delivery by default for replies." },
+    "selector": { "index": 20, "kind": "property", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "index": 21, "kind": "property", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription durable. The durable subscription name to be used can 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." },
+    "subscriptionName": { "index": 22, "kind": "property", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or 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)." },
+    "subscriptionShared": { "index": 23, "kind": "property", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription shared. The shared subscription name to be used can be 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." },
+    "acceptMessagesWhileStopping": { "index": 24, "kind": "property", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while 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." },
+    "allowReplyManagerQuickStop": { "index": 25, "kind": "property", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in the 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." },
+    "consumerType": { "index": 26, "kind": "property", "displayName": "Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The 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." },
+    "defaultTaskExecutorType": { "index": 27, "kind": "property", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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 thread-pool-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." },
+    "eagerLoadingOfProperties": { "index": 28, "kind": "property", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody." },
+    "eagerPoisonBody": { "index": 29, "kind": "property", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties." },
+    "exposeListenerSession": { "index": 30, "kind": "property", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consuming messages." },
+    "replyToConsumerType": { "index": 31, "kind": "property", "displayName": "Reply To Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The consumer type of the reply consumer (when doing request\/reply), 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." },
+    "replyToSameDestinationAllowed": { "index": 32, "kind": "property", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a reply 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." },
+    "taskExecutor": { "index": 33, "kind": "property", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to specify a custom task executor for consuming messages." },
+    "deliveryDelay": { "index": 34, "kind": "property", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker." },
+    "deliveryMode": { "index": 35, "kind": "property", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2." },
+    "deliveryPersistent": { "index": 36, "kind": "property", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether persistent delivery is used by default." },
+    "explicitQosEnabled": { "index": 37, "kind": "property", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be 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." },
+    "formatDateHeadersToIso8601": { "index": 38, "kind": "property", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard." },
+    "lazyStartProducer": { "index": 39, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
+    "preserveMessageQos": { "index": 40, "kind": "property", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set to true, if you want to send message using the QoS settings specified on the message, 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." },
+    "priority": { "index": 41, "kind": "property", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 4, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect." },
+    "replyToConcurrentConsumers": { "index": 42, "kind": "property", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToMaxConcurrentConsumers": { "index": 43, "kind": "property", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToOnTimeoutMaxConcurrentConsumers": { "index": 44, "kind": "property", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS." },
+    "replyToOverride": { "index": 45, "kind": "property", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination." },
+    "replyToType": { "index": 46, "kind": "property", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of 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." },
+    "requestTimeout": { "index": 47, "kind": "property", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The 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." },
+    "timeToLive": { "index": 48, "kind": "property", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
+    "allowAdditionalHeaders": { "index": 49, "kind": "property", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "This option is used to allow additional headers which may have values that are 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." },
+    "allowNullBody": { "index": 50, "kind": "property", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown." },
+    "alwaysCopyMessage": { "index": 51, "kind": "property", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will always make a JMS message copy of the message when it 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)" },
+    "correlationProperty": { "index": 52, "kind": "property", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel." },
+    "disableTimeToLive": { "index": 53, "kind": "property", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Use this option to force disabling time to live. For example when you do 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." },
+    "forceSendOriginalMessage": { "index": 54, "kind": "property", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using mapJmsMessage=false Camel will create a new JMS 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." },
+    "includeSentJMSMessageID": { "index": 55, "kind": "property", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly (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." },
+    "replyToCacheLevelName": { "index": 56, "kind": "property", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "replyToDestinationSelectorName": { "index": 57, "kind": "property", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS Selector using the fixed name to be used so you 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)." },
+    "streamMessageTypeEnabled": { "index": 58, "kind": "property", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message 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." },
+    "allowAutoWiredConnectionFactory": { "index": 59, "kind": "property", "displayName": "Allow Auto Wired Connection Factory", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default." },
+    "allowAutoWiredDestinationResolver": { "index": 60, "kind": "property", "displayName": "Allow Auto Wired Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default." },
+    "allowSerializedHeaders": { "index": 61, "kind": "property", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level." },
+    "artemisStreamingEnabled": { "index": 62, "kind": "property", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used." },
+    "asyncStartListener": { "index": 63, "kind": "property", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or fail-over. 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." },
+    "asyncStopListener": { "index": 64, "kind": "property", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
+    "autowiredEnabled": { "index": 65, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc." },
+    "configuration": { "index": 66, "kind": "property", "displayName": "Configuration", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "To use a shared JMS configuration" },
+    "destinationResolver": { "index": 67, "kind": "property", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry)." },
+    "errorHandler": { "index": 68, "kind": "property", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions 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." },
+    "exceptionListener": { "index": 69, "kind": "property", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "jakarta.jms.ExceptionListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
+    "idleConsumerLimit": { "index": 70, "kind": "property", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
+    "idleTaskExecutionLimit": { "index": 71, "kind": "property", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the limit for idle executions of a receive task, not having received any message 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." },
+    "includeAllJMSXProperties": { "index": 72, "kind": "property", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to include all JMSX prefixed 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." },
+    "includeCorrelationIDAsBytes": { "index": 73, "kind": "property", "displayName": "Include Correlation IDAs Bytes", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the JMS consumer should include JMSCorrelationIDAsBytes as a header on the Camel Message." },
+    "jmsKeyFormatStrategy": { "index": 74, "kind": "property", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "enum": [ "default", "passthrough" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for 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." },
+    "mapJmsMessage": { "index": 75, "kind": "property", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as jakarta.jms.TextMessage to a String etc." },
+    "maxMessagesPerTask": { "index": 76, "kind": "property", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg 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." },
+    "messageConverter": { "index": 77, "kind": "property", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a jakarta.jms.Message." },
+    "messageCreatedStrategy": { "index": 78, "kind": "property", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of jakarta.jms.Message objects when Camel is sending a JMS message." },
+    "messageIdEnabled": { "index": 79, "kind": "property", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS 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." },
+    "messageListenerContainerFactory": { "index": 80, "kind": "property", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom." },
+    "messageTimestampEnabled": { "index": 81, "kind": "property", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether timestamps should be enabled by default on sending messages. This 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." },
+    "pubSubNoLocal": { "index": 82, "kind": "property", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
+    "queueBrowseStrategy": { "index": 83, "kind": "property", "displayName": "Queue Browse Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.QueueBrowseStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom QueueBrowseStrategy when browsing queues" },
+    "receiveTimeout": { "index": 84, "kind": "property", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "index": 85, "kind": "property", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds." },
+    "requestTimeoutCheckerInterval": { "index": 86, "kind": "property", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Configures how often Camel should check for timed out Exchanges when 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." },
+    "synchronous": { "index": 87, "kind": "property", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "temporaryQueueResolver": { "index": 88, "kind": "property", "displayName": "Temporary Queue Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.TemporaryQueueResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable TemporaryQueueResolver that allows you to use your own resolver for creating temporary queues (some messaging systems has special requirements for creating temporary queues)." },
+    "transferException": { "index": 89, "kind": "property", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a jakarta.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!" },
+    "transferExchange": { "index": 90, "kind": "property", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "You can transfer the exchange over the wire instead of just the body and headers. The following 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. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!" },
+    "trustAllPackages": { "index": 91, "kind": "property", "displayName": "Trust All Packages", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": false, "description": "Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended practice to send Java serialized objects over network. Setting this to true can expose security risks, so use this with care." },
+    "useMessageIDAsCorrelationID": { "index": 92, "kind": "property", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "index": 93, "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled." },
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "index": 94, "kind": "property", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated." },
+    "waitForTemporaryReplyToToBeUpdatedCounter": { "index": 95, "kind": "property", "displayName": "Wait For Temporary Reply To To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 200, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for temporary replyTo queue to be created and ready when doing request\/reply over JMS." },
+    "waitForTemporaryReplyToToBeUpdatedThreadSleepingTime": { "index": 96, "kind": "property", "displayName": "Wait For Temporary Reply To To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for temporary replyTo queue to be ready." },
+    "headerFilterStrategy": { "index": 97, "kind": "property", "displayName": "Header Filter Strategy", "group": "filter", "label": "filter", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message." },
+    "errorHandlerLoggingLevel": { "index": 98, "kind": "property", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions." },
+    "errorHandlerLogStackTrace": { "index": 99, "kind": "property", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to control whether stack-traces should be logged or not, by the default errorHandler." },
+    "password": { "index": 100, "kind": "property", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "username": { "index": 101, "kind": "property", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "transacted": { "index": 102, "kind": "property", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "index": 103, "kind": "property", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction." },
+    "lazyCreateTransactionManager": { "index": 104, "kind": "property", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true." },
+    "transactionManager": { "index": 105, "kind": "property", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "index": 106, "kind": "property", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "index": 107, "kind": "property", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
+  },
+  "headers": {
+    "CamelJmsDestination": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "jakarta.jms.Destination", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_DESTINATION" },
+    "CamelJmsDestinationName": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the queue or topic to use as destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_DESTINATION_NAME" },
+    "CamelJMSDestinationProduced": { "index": 2, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the queue or topic the message was sent to.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_DESTINATION_NAME_PRODUCED" },
+    "JMSXGroupID": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS group ID.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_X_GROUP_ID" },
+    "JMSMessageID": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS unique message ID.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_MESSAGE_ID" },
+    "JMSCorrelationID": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS correlation ID.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_CORRELATION_ID" },
+    "JMSCorrelationIDAsBytes": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "byte[]", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS correlation ID as bytes.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_CORRELATION_ID_AS_BYTES" },
+    "JMSDeliveryMode": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS delivery mode.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_DELIVERY_MODE" },
+    "JMSDestination": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "jakarta.jms.Destination", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_DESTINATION" },
+    "JMSExpiration": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS expiration.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_EXPIRATION" },
+    "JMSPriority": { "index": 10, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "int", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS priority (with 0 as the lowest priority and 9 as the highest).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_PRIORITY" },
+    "JMSRedelivered": { "index": 11, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Is the JMS message redelivered.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_REDELIVERED" },
+    "JMSTimestamp": { "index": 12, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS timestamp.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TIMESTAMP" },
+    "JMSReplyTo": { "index": 13, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "jakarta.jms.Destination", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS reply-to destination.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_REPLY_TO" },
+    "JMSType": { "index": 14, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The JMS type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_TYPE" },
+    "JMSXUserID": { "index": 15, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The XUser id.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_HEADER_XUSER_ID" },
+    "CamelJmsMessageType": { "index": 16, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text", "Blob" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The message type.", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_MESSAGE_TYPE" },
+    "CamelJmsRequestTimeout": { "index": 17, "kind": "header", "displayName": "", "group": "producer", "label": "producer", "required": false, "javaType": "long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "defaultValue": "20_000", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).", "constantName": "org.apache.camel.component.jms.JmsConstants#JMS_REQUEST_TIMEOUT" }
+  },
+  "properties": {
+    "destinationType": { "index": 0, "kind": "path", "displayName": "Destination Type", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "queue", "topic", "temp-queue", "temp-topic" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "queue", "description": "The kind of destination to use" },
+    "destinationName": { "index": 1, "kind": "path", "displayName": "Destination Name", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Name of the queue or topic to use as destination" },
+    "clientId": { "index": 2, "kind": "parameter", "displayName": "Client Id", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions with JMS 1.1." },
+    "connectionFactory": { "index": 3, "kind": "parameter", "displayName": "Connection Factory", "group": "common", "label": "", "required": false, "type": "object", "javaType": "jakarta.jms.ConnectionFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint." },
+    "disableReplyTo": { "index": 4, "kind": "parameter", "displayName": "Disable Reply To", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back 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." },
+    "durableSubscriptionName": { "index": 5, "kind": "parameter", "displayName": "Durable Subscription Name", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well." },
+    "jmsMessageType": { "index": 6, "kind": "parameter", "displayName": "Jms Message Type", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsMessageType", "enum": [ "Bytes", "Map", "Object", "Stream", "Text" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to force the use of a specific jakarta.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." },
+    "replyTo": { "index": 7, "kind": "parameter", "displayName": "Reply To", "group": "common", "label": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer)." },
+    "testConnectionOnStartup": { "index": 8, "kind": "parameter", "displayName": "Test Connection On Startup", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts 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." },
+    "acknowledgementModeName": { "index": 9, "kind": "parameter", "displayName": "Acknowledgement Mode Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE" },
+    "artemisConsumerPriority": { "index": 10, "kind": "parameter", "displayName": "Artemis Consumer Priority", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer)." },
+    "asyncConsumer": { "index": 11, "kind": "parameter", "displayName": "Async Consumer", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may 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)." },
+    "autoStartup": { "index": 12, "kind": "parameter", "displayName": "Auto Startup", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer container should auto-startup." },
+    "cacheLevel": { "index": 13, "kind": "parameter", "displayName": "Cache Level", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details." },
+    "cacheLevelName": { "index": 14, "kind": "parameter", "displayName": "Cache Level Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "CACHE_AUTO", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "concurrentConsumers": { "index": 15, "kind": "parameter", "displayName": "Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/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." },
+    "maxConcurrentConsumers": { "index": 16, "kind": "parameter", "displayName": "Max Concurrent Consumers", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). 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." },
+    "replyToDeliveryPersistent": { "index": 17, "kind": "parameter", "displayName": "Reply To Delivery Persistent", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use persistent delivery by default for replies." },
+    "selector": { "index": 18, "kind": "parameter", "displayName": "Selector", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS selector to use" },
+    "subscriptionDurable": { "index": 19, "kind": "parameter", "displayName": "Subscription Durable", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription durable. The durable subscription name to be used can 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." },
+    "subscriptionName": { "index": 20, "kind": "parameter", "displayName": "Subscription Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or 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)." },
+    "subscriptionShared": { "index": 21, "kind": "parameter", "displayName": "Subscription Shared", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set whether to make the subscription shared. The shared subscription name to be used can be 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." },
+    "acceptMessagesWhileStopping": { "index": 22, "kind": "parameter", "displayName": "Accept Messages While Stopping", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the consumer accept messages while 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." },
+    "allowReplyManagerQuickStop": { "index": 23, "kind": "parameter", "displayName": "Allow Reply Manager Quick Stop", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether the DefaultMessageListenerContainer used in 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." },
+    "consumerType": { "index": 24, "kind": "parameter", "displayName": "Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The 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." },
+    "defaultTaskExecutorType": { "index": 25, "kind": "parameter", "displayName": "Default Task Executor Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.DefaultTaskExecutorType", "enum": [ "ThreadPool", "SimpleAsync" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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 thread-pool-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." },
+    "destinationOptions": { "index": 26, "kind": "parameter", "displayName": "Destination Options", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.String>", "prefix": "destination.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "Destination Options are a way to provide extended configuration options to a JMS consumer without having to extend the JMS API. The options are encoded using URL query syntax in the destination name that the consumer is created on. See more details at https:\/\/activemq.apache.org\/destination-options." },
+    "eagerLoadingOfProperties": { "index": 27, "kind": "parameter", "displayName": "Eager Loading Of Properties", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody." },
+    "eagerPoisonBody": { "index": 28, "kind": "parameter", "displayName": "Eager Poison Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Poison JMS message due to ${exception.message}", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties." },
+    "exceptionHandler": { "index": 29, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
+    "exchangePattern": { "index": 30, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+    "exposeListenerSession": { "index": 31, "kind": "parameter", "displayName": "Expose Listener Session", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether the listener session should be exposed when consuming messages." },
+    "replyToConsumerType": { "index": 32, "kind": "parameter", "displayName": "Reply To Consumer Type", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ConsumerType", "enum": [ "Simple", "Default", "Custom" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Default", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The consumer type of the reply consumer (when doing request\/reply), 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." },
+    "replyToSameDestinationAllowed": { "index": 33, "kind": "parameter", "displayName": "Reply To Same Destination Allowed", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether a JMS consumer is allowed to send a 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." },
+    "taskExecutor": { "index": 34, "kind": "parameter", "displayName": "Task Executor", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.springframework.core.task.TaskExecutor", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows you to specify a custom task executor for consuming messages." },
+    "deliveryDelay": { "index": 35, "kind": "parameter", "displayName": "Delivery Delay", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker." },
+    "deliveryMode": { "index": 36, "kind": "parameter", "displayName": "Delivery Mode", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "java.lang.Integer", "enum": [ "1", "2" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the delivery mode to be used. Possible values are those defined by jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2." },
+    "deliveryPersistent": { "index": 37, "kind": "parameter", "displayName": "Delivery Persistent", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether persistent delivery is used by default." },
+    "explicitQosEnabled": { "index": 38, "kind": "parameter", "displayName": "Explicit Qos Enabled", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be 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." },
+    "formatDateHeadersToIso8601": { "index": 39, "kind": "parameter", "displayName": "Format Date Headers To Iso8601", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard." },
+    "preserveMessageQos": { "index": 40, "kind": "parameter", "displayName": "Preserve Message Qos", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Set to true, if you want to send message using the QoS settings specified on the message, 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." },
+    "priority": { "index": 41, "kind": "parameter", "displayName": "Priority", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "enum": [ "1", "2", "3", "4", "5", "6", "7", "8", "9" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": 4, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect." },
+    "replyToConcurrentConsumers": { "index": 42, "kind": "parameter", "displayName": "Reply To Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToMaxConcurrentConsumers": { "index": 43, "kind": "parameter", "displayName": "Reply To Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads." },
+    "replyToOnTimeoutMaxConcurrentConsumers": { "index": 44, "kind": "parameter", "displayName": "Reply To On Timeout Max Concurrent Consumers", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS." },
+    "replyToOverride": { "index": 45, "kind": "parameter", "displayName": "Reply To Override", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination." },
+    "replyToType": { "index": 46, "kind": "parameter", "displayName": "Reply To Type", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.ReplyToType", "enum": [ "Temporary", "Shared", "Exclusive" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows for explicitly specifying which kind of 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." },
+    "requestTimeout": { "index": 47, "kind": "parameter", "displayName": "Request Timeout", "group": "producer", "label": "producer", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "20000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The 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." },
+    "timeToLive": { "index": 48, "kind": "parameter", "displayName": "Time To Live", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending messages, specifies the time-to-live of the message (in milliseconds)." },
+    "allowAdditionalHeaders": { "index": 49, "kind": "parameter", "displayName": "Allow Additional Headers", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "This option is used to allow additional headers which may have values that are 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." },
+    "allowNullBody": { "index": 50, "kind": "parameter", "displayName": "Allow Null Body", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown." },
+    "alwaysCopyMessage": { "index": 51, "kind": "parameter", "displayName": "Always Copy Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will always make a JMS message copy of the message when it 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)" },
+    "correlationProperty": { "index": 52, "kind": "parameter", "displayName": "Correlation Property", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel." },
+    "disableTimeToLive": { "index": 53, "kind": "parameter", "displayName": "Disable Time To Live", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Use this option to force disabling time to live. For example when you do 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." },
+    "forceSendOriginalMessage": { "index": 54, "kind": "parameter", "displayName": "Force Send Original Message", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When using mapJmsMessage=false Camel will create a new JMS 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." },
+    "includeSentJMSMessageID": { "index": 55, "kind": "parameter", "displayName": "Include Sent JMSMessage ID", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Only applicable when sending to JMS destination using InOnly (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." },
+    "lazyStartProducer": { "index": 56, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
+    "replyToCacheLevelName": { "index": 57, "kind": "parameter", "displayName": "Reply To Cache Level Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "enum": [ "CACHE_AUTO", "CACHE_CONNECTION", "CACHE_CONSUMER", "CACHE_NONE", "CACHE_SESSION" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "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." },
+    "replyToDestinationSelectorName": { "index": 58, "kind": "parameter", "displayName": "Reply To Destination Selector Name", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets the JMS Selector using the fixed name to be used so you 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)." },
+    "streamMessageTypeEnabled": { "index": 59, "kind": "parameter", "displayName": "Stream Message Type Enabled", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether StreamMessage type is enabled or not. Message 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." },
+    "allowSerializedHeaders": { "index": 60, "kind": "parameter", "displayName": "Allow Serialized Headers", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level." },
+    "artemisStreamingEnabled": { "index": 61, "kind": "parameter", "displayName": "Artemis Streaming Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used." },
+    "asyncStartListener": { "index": 62, "kind": "parameter", "displayName": "Async Start Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or fail-over. 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." },
+    "asyncStopListener": { "index": 63, "kind": "parameter", "displayName": "Async Stop Listener", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route." },
+    "destinationResolver": { "index": 64, "kind": "parameter", "displayName": "Destination Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.destination.DestinationResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry)." },
+    "errorHandler": { "index": 65, "kind": "parameter", "displayName": "Error Handler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.util.ErrorHandler", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions 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." },
+    "exceptionListener": { "index": 66, "kind": "parameter", "displayName": "Exception Listener", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "jakarta.jms.ExceptionListener", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions." },
+    "headerFilterStrategy": { "index": 67, "kind": "parameter", "displayName": "Header Filter Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.HeaderFilterStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message." },
+    "idleConsumerLimit": { "index": 68, "kind": "parameter", "displayName": "Idle Consumer Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time." },
+    "idleTaskExecutionLimit": { "index": 69, "kind": "parameter", "displayName": "Idle Task Execution Limit", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the limit for idle executions of a receive task, not having received any message 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." },
+    "includeAllJMSXProperties": { "index": 70, "kind": "parameter", "displayName": "Include All JMSXProperties", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Whether to include all JMSX prefixed 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." },
+    "jmsKeyFormatStrategy": { "index": 71, "kind": "parameter", "displayName": "Jms Key Format Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.JmsKeyFormatStrategy", "enum": [ "default", "passthrough" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Pluggable strategy for 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." },
+    "mapJmsMessage": { "index": 72, "kind": "parameter", "displayName": "Map Jms Message", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as jakarta.jms.TextMessage to a String etc." },
+    "maxMessagesPerTask": { "index": 73, "kind": "parameter", "displayName": "Max Messages Per Task", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg 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." },
+    "messageConverter": { "index": 74, "kind": "parameter", "displayName": "Message Converter", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.springframework.jms.support.converter.MessageConverter", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a jakarta.jms.Message." },
+    "messageCreatedStrategy": { "index": 75, "kind": "parameter", "displayName": "Message Created Strategy", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageCreatedStrategy", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of jakarta.jms.Message objects when Camel is sending a JMS message." },
+    "messageIdEnabled": { "index": 76, "kind": "parameter", "displayName": "Message Id Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS 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." },
+    "messageListenerContainerFactory": { "index": 77, "kind": "parameter", "displayName": "Message Listener Container Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.MessageListenerContainerFactory", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom." },
+    "messageTimestampEnabled": { "index": 78, "kind": "parameter", "displayName": "Message Timestamp Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether timestamps should be enabled by default on sending messages. This 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." },
+    "pubSubNoLocal": { "index": 79, "kind": "parameter", "displayName": "Pub Sub No Local", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to inhibit the delivery of messages published by its own connection." },
+    "receiveTimeout": { "index": 80, "kind": "parameter", "displayName": "Receive Timeout", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout for receiving messages (in milliseconds)." },
+    "recoveryInterval": { "index": 81, "kind": "parameter", "displayName": "Recovery Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "5000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds." },
+    "requestTimeoutCheckerInterval": { "index": 82, "kind": "parameter", "displayName": "Request Timeout Checker Interval", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "1000", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Configures how often Camel should check for timed out Exchanges when 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." },
+    "synchronous": { "index": 83, "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Sets whether synchronous processing should be strictly used" },
+    "temporaryQueueResolver": { "index": 84, "kind": "parameter", "displayName": "Temporary Queue Resolver", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.apache.camel.component.jms.TemporaryQueueResolver", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "A pluggable TemporaryQueueResolver that allows you to use your own resolver for creating temporary queues (some messaging systems has special requirements for creating temporary queues)." },
+    "transferException": { "index": 85, "kind": "parameter", "displayName": "Transfer Exception", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a jakarta.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!" },
+    "transferExchange": { "index": 86, "kind": "parameter", "displayName": "Transfer Exchange", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "You can transfer the exchange over the wire instead of just the body and headers. The following 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. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!" },
+    "useMessageIDAsCorrelationID": { "index": 87, "kind": "parameter", "displayName": "Use Message IDAs Correlation ID", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages." },
+    "waitForProvisionCorrelationToBeUpdatedCounter": { "index": 88, "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 50, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled." },
+    "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": { "index": 89, "kind": "parameter", "displayName": "Wait For Provision Correlation To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated." },
+    "waitForTemporaryReplyToToBeUpdatedCounter": { "index": 90, "kind": "parameter", "displayName": "Wait For Temporary Reply To To Be Updated Counter", "group": "advanced", "label": "advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 200, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Number of times to wait for temporary replyTo queue to be created and ready when doing request\/reply over JMS." },
+    "waitForTemporaryReplyToToBeUpdatedThreadSleepingTime": { "index": 91, "kind": "parameter", "displayName": "Wait For Temporary Reply To To Be Updated Thread Sleeping Time", "group": "advanced", "label": "advanced", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "100", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Interval in millis to sleep each time while waiting for temporary replyTo queue to be ready." },
+    "errorHandlerLoggingLevel": { "index": 92, "kind": "parameter", "displayName": "Error Handler Logging Level", "group": "logging", "label": "consumer,logging", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "WARN", "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions." },
+    "errorHandlerLogStackTrace": { "index": 93, "kind": "parameter", "displayName": "Error Handler Log Stack Trace", "group": "logging", "label": "consumer,logging", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Allows to control whether stack-traces should be logged or not, by the default errorHandler." },
+    "password": { "index": 94, "kind": "parameter", "displayName": "Password", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "username": { "index": 95, "kind": "parameter", "displayName": "Username", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory." },
+    "transacted": { "index": 96, "kind": "parameter", "displayName": "Transacted", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether to use transacted mode" },
+    "transactedInOut": { "index": 97, "kind": "parameter", "displayName": "Transacted In Out", "group": "transaction", "label": "transaction", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction." },
+    "lazyCreateTransactionManager": { "index": 98, "kind": "parameter", "displayName": "Lazy Create Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true." },
+    "transactionManager": { "index": 99, "kind": "parameter", "displayName": "Transaction Manager", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "object", "javaType": "org.springframework.transaction.PlatformTransactionManager", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The Spring transaction manager to use." },
+    "transactionName": { "index": 100, "kind": "parameter", "displayName": "Transaction Name", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The name of the transaction to use." },
+    "transactionTimeout": { "index": 101, "kind": "parameter", "displayName": "Transaction Timeout", "group": "transaction (advanced)", "label": "transaction,advanced", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": -1, "configurationClass": "org.apache.camel.component.jms.JmsConfiguration", "configurationField": "configuration", "description": "The timeout value of the transaction (in seconds), if using transacted mode." }
+  }
+}
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
new file mode 100644
index 0000000..0462156
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
@@ -0,0 +1,3 @@
+# Generated by camel build tools - do NOT edit this file!
+org.apache.camel.component.activemq6.converter.ActiveMQConverterLoader
+org.apache.camel.component.activemq6.converter.ActiveMQMessageConverterLoader
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/component.properties
new file mode 100644
index 0000000..af91f61
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+components=activemq6
+groupId=org.apache.camel
+artifactId=camel-activemq6
+version=4.7.0-SNAPSHOT
+projectName=Camel :: ActiveMQ 6.x
+projectDescription=ActiveMQ 6.x component for Camel
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/component/activemq6 b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/component/activemq6
new file mode 100644
index 0000000..15550bfb
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/component/activemq6
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.activemq6.ActiveMQComponent
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/configurer/activemq6-component b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/configurer/activemq6-component
new file mode 100644
index 0000000..85c4cc8
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/configurer/activemq6-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.activemq6.ActiveMQComponentConfigurer
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/configurer/activemq6-endpoint b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/configurer/activemq6-endpoint
new file mode 100644
index 0000000..70485ad
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/configurer/activemq6-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.activemq6.ActiveMQEndpointConfigurer
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/send-dynamic/activemq6 b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/send-dynamic/activemq6
new file mode 100644
index 0000000..6ca6f8d
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/send-dynamic/activemq6
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.activemq6.ActiveMQSendDynamicAware
diff --git a/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/urifactory/activemq6-endpoint b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/urifactory/activemq6-endpoint
new file mode 100644
index 0000000..bdf586b
--- /dev/null
+++ b/components/camel-activemq6/src/generated/resources/META-INF/services/org/apache/camel/urifactory/activemq6-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.activemq6.ActiveMQEndpointUriFactory
diff --git a/components/camel-activemq6/src/main/docs/activemq6-component.adoc b/components/camel-activemq6/src/main/docs/activemq6-component.adoc
new file mode 100644
index 0000000..27f13d0
--- /dev/null
+++ b/components/camel-activemq6/src/main/docs/activemq6-component.adoc
@@ -0,0 +1,96 @@
+= ActiveMQ 6.x Component
+:doctitle: ActiveMQ 6.x
+:shortname: activemq6
+:artifactid: camel-activemq6
+:description: Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends the Camel JMS component.
+:since: 4.7
+:supportlevel: Preview
+:tabs-sync-option:
+:component-header: Both producer and consumer are supported
+//Manually maintained attributes
+:camel-spring-boot-name: activemq
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The ActiveMQ component is an extension to the JMS component and has been pre-configured for using Apache ActiveMQ 6.x (not Artemis).
+Users of Apache ActiveMQ Artemis should use the JMS component.
+
+[IMPORTANT]
+====
+The camel-activemq component is best intended for ActiveMQ 6.x brokers. If you use ActiveMQ 5.x brokers,
+then use the camel-activemq 5.x component instead.
+====
+
+[TIP]
+====
+*More documentation*
+
+See the JMS component for more documentation and examples
+====
+
+Maven users will need to add the following dependency to their `pom.xml`
+for this component:
+
+[source,xml]
+------------------------------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-activemq</artifactId>
+    <version>x.x.x</version>
+    <!-- use the same version as your Camel core version -->
+</dependency>
+------------------------------------------------------------
+
+== URI format
+
+--------------------------------------------
+activemq:[queue:|topic:]destinationName[?options]
+--------------------------------------------
+
+Where `destinationName` is a JMS queue or topic name. By default, the
+`destinationName` is interpreted as a queue name. For example, to
+connect to the queue, `foo` use:
+
+-----------
+activemq:foo
+-----------
+
+// component-configure options: START
+
+// component-configure options: END
+
+// component options: START
+include::partial$component-configure-options.adoc[]
+include::partial$component-endpoint-options.adoc[]
+// component options: END
+
+// endpoint options: START
+
+// endpoint options: END
+
+== Examples
+
+You'll need to provide a connectionFactory to the ActiveMQ Component, to have the following examples working.
+
+=== Producer Example
+
+[source,java]
+--------------------------------------------------------------------------------
+from("timer:mytimer?period=5000")
+        .setBody(constant("HELLO from Camel!"))
+        .to("activemq:queue:HELLO.WORLD");
+--------------------------------------------------------------------------------
+
+=== Consumer Example
+
+[source,java]
+--------------------------------------------------------------------------------
+from("activemq:queue:HELLO.WORLD")
+        .log("Received a message - ${body}");
+--------------------------------------------------------------------------------
+
+
+
+include::spring-boot:partial$starter.adoc[]
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQComponent.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQComponent.java
new file mode 100644
index 0000000..a3c263d
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQComponent.java
@@ -0,0 +1,307 @@
+/*
+ * 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.component.activemq6;
+
+import java.lang.reflect.Method;
+import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
+import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.component.jms.JmsEndpoint;
+import org.apache.camel.component.jms.QueueBrowseStrategy;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.annotations.Component;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.PropertiesHelper;
+import org.apache.camel.util.URISupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.jms.connection.SingleConnectionFactory;
+import org.springframework.jms.core.JmsTemplate;
+
+/**
+ * The ActiveMQ 6.x Component.
+ */
+@Component("activemq6")
+public class ActiveMQComponent extends JmsComponent {
+
+    private static final Logger LOG = LoggerFactory.getLogger(ActiveMQComponent.class);
+
+    private final CopyOnWriteArrayList<SingleConnectionFactory> singleConnectionFactoryList = new CopyOnWriteArrayList<>();
+    private final CopyOnWriteArrayList<Object> pooledConnectionFactoryServiceList = new CopyOnWriteArrayList<>();
+    private boolean embedded;
+
+    public ActiveMQComponent() {
+    }
+
+    public ActiveMQComponent(CamelContext context) {
+        super(context);
+    }
+
+    public ActiveMQComponent(ActiveMQConfiguration configuration) {
+        setConfiguration(configuration);
+    }
+
+    /**
+     * Creates an <a href="http://camel.apache.org/activemq.html">ActiveMQ Component</a>
+     *
+     * @return the created component
+     */
+    public static ActiveMQComponent activeMQComponent() {
+        return new ActiveMQComponent();
+    }
+
+    /**
+     * Creates an <a href="http://camel.apache.org/activemq.html">ActiveMQ Component</a> connecting to the given
+     * <a href="http://activemq.apache.org/configuring-transports.html">broker URL</a>
+     *
+     * @param  brokerURL the URL to connect to
+     * @return           the created component
+     */
+    public static ActiveMQComponent activeMQComponent(String brokerURL) {
+        ActiveMQComponent answer = new ActiveMQComponent();
+        if (answer.getConfiguration() instanceof ActiveMQConfiguration) {
+            ((ActiveMQConfiguration) answer.getConfiguration()).setBrokerURL(brokerURL);
+        }
+
+        return answer;
+    }
+
+    public boolean isEmbedded() {
+        return embedded;
+    }
+
+    /**
+     * Use an embedded in-memory (non-persistent) ActiveMQ broker for development and testing purposes. You must have
+     * activemq-broker JAR on the classpath.
+     */
+    @Metadata(label = "common")
+    public void setEmbedded(boolean embedded) {
+        this.embedded = embedded;
+        if (embedded) {
+            setBrokerURL("vm://localhost?broker.persistent=false");
+            LOG.info("Using embedded in-memory ActiveMQ broker (you must have activemq-broker JAR added as dependency)");
+        }
+    }
+
+    public String getBrokerURL() {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            return activeMQConfiguration.getBrokerURL();
+        }
+        return null;
+    }
+
+    /**
+     * Sets the broker URL to use to connect to ActiveMQ. If none configured then localhost:61616 is used by default
+     * (however can be overridden by configuration from environment variables)
+     */
+    @Metadata(label = "common")
+    public void setBrokerURL(String brokerURL) {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            activeMQConfiguration.setBrokerURL(brokerURL);
+        }
+    }
+
+    /**
+     * Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended
+     * practice to send Java serialized objects over network. Setting this to true can expose security risks, so use
+     * this with care.
+     */
+    @Metadata(defaultValue = "false", label = "advanced")
+    public void setTrustAllPackages(boolean trustAllPackages) {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            activeMQConfiguration.setTrustAllPackages(trustAllPackages);
+        }
+    }
+
+    public boolean isTrustAllPackages() {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            return activeMQConfiguration.isTrustAllPackages();
+        }
+        return false;
+    }
+
+    /**
+     * Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ
+     * from outside a message consuming thread, pooling will be used rather than the default with the Spring
+     * {@link JmsTemplate} which will create a new connection, session, producer for each message then close them all
+     * down again.
+     * <p/>
+     * The default value is true.
+     */
+    @Metadata(defaultValue = "true", label = "common")
+    public void setUsePooledConnection(boolean usePooledConnection) {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            activeMQConfiguration.setUsePooledConnection(usePooledConnection);
+        }
+    }
+
+    public boolean isUsePooledConnection() {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            return activeMQConfiguration.isUsePooledConnection();
+        }
+        return true;
+    }
+
+    /**
+     * Enables or disables whether a Spring {@link SingleConnectionFactory} will be used so that when messages are sent
+     * to ActiveMQ from outside a message consuming thread, pooling will be used rather than the default with the Spring
+     * {@link JmsTemplate} which will create a new connection, session, producer for each message then close them all
+     * down again.
+     * <p/>
+     * The default value is false and a pooled connection is used by default.
+     */
+    @Metadata(defaultValue = "false", label = "common")
+    public void setUseSingleConnection(boolean useSingleConnection) {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            activeMQConfiguration.setUseSingleConnection(useSingleConnection);
+        }
+    }
+
+    public boolean isUseSingleConnection() {
+        if (getConfiguration() instanceof ActiveMQConfiguration activeMQConfiguration) {
+            return activeMQConfiguration.isUseSingleConnection();
+        }
+        return false;
+    }
+
+    @Override
+    protected void setProperties(Endpoint bean, Map<String, Object> parameters) throws Exception {
+        Object useSingleConnection = parameters.remove("useSingleConnection");
+        if (useSingleConnection != null) {
+            ((ActiveMQConfiguration) ((JmsEndpoint) bean).getConfiguration())
+                    .setUseSingleConnection(
+                            PropertyConfigurerSupport.property(getCamelContext(), boolean.class, useSingleConnection));
+        }
+        Object usePooledConnection = parameters.remove("usePooledConnection");
+        if (usePooledConnection != null) {
+            ((ActiveMQConfiguration) ((JmsEndpoint) bean).getConfiguration())
+                    .setUsePooledConnection(
+                            PropertyConfigurerSupport.property(getCamelContext(), boolean.class, usePooledConnection));
+        }
+        super.setProperties(bean, parameters);
+    }
+
+    protected void addPooledConnectionFactoryService(Object pooledConnectionFactoryService) {
+        pooledConnectionFactoryServiceList.add(pooledConnectionFactoryService);
+    }
+
+    protected void addSingleConnectionFactory(SingleConnectionFactory singleConnectionFactory) {
+        singleConnectionFactoryList.add(singleConnectionFactory);
+    }
+
+    @Override
+    protected String convertPathToActualDestination(String path, Map<String, Object> parameters) {
+        // support ActiveMQ destination options using the destination. prefix
+        // http://activemq.apache.org/destination-options.html
+        Map<String, Object> options = PropertiesHelper.extractProperties(parameters, "destination.");
+
+        String query = URISupport.createQueryString(options);
+
+        // if we have destination options then append them to the destination
+        // name
+        if (ObjectHelper.isNotEmpty(query)) {
+            return path + "?" + query;
+        } else {
+            return path;
+        }
+    }
+
+    @Override
+    protected void doInit() throws Exception {
+        super.doInit();
+
+        // use OriginalDestinationPropagateStrategy by default if no custom
+        // strategy has been set
+        if (getMessageCreatedStrategy() == null) {
+            setMessageCreatedStrategy(new OriginalDestinationPropagateStrategy());
+        }
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        for (Object s : pooledConnectionFactoryServiceList) {
+            try {
+                // invoke stop method if exists
+                Method m = s.getClass().getMethod("stop");
+                org.apache.camel.support.ObjectHelper.invokeMethod(m, s);
+            } catch (Exception e) {
+                // ignore
+            }
+        }
+        pooledConnectionFactoryServiceList.clear();
+
+        for (SingleConnectionFactory s : singleConnectionFactoryList) {
+            try {
+                s.destroy();
+            } catch (Exception e) {
+                // ignore
+            }
+        }
+        singleConnectionFactoryList.clear();
+
+        super.doStop();
+    }
+
+    /**
+     * Configuration of ActiveMQ
+     */
+    @Override
+    public void setConfiguration(JmsConfiguration configuration) {
+        if (configuration instanceof ActiveMQConfiguration activeMQConfiguration) {
+            activeMQConfiguration.setActiveMQComponent(this);
+        }
+        super.setConfiguration(configuration);
+    }
+
+    @Override
+    protected JmsConfiguration createConfiguration() {
+        ActiveMQConfiguration answer = new ActiveMQConfiguration();
+        answer.setActiveMQComponent(this);
+        return answer;
+    }
+
+    @Override
+    protected JmsEndpoint createTemporaryTopicEndpoint(
+            String uri, JmsComponent component, String subject, JmsConfiguration configuration) {
+        return new ActiveMQTemporaryTopicEndpoint(uri, component, subject, configuration);
+    }
+
+    @Override
+    protected JmsEndpoint createTopicEndpoint(
+            String uri, JmsComponent component, String subject, JmsConfiguration configuration) {
+        return new ActiveMQEndpoint(uri, component, subject, true, configuration);
+    }
+
+    @Override
+    protected JmsEndpoint createTemporaryQueueEndpoint(
+            String uri, JmsComponent component, String subject, JmsConfiguration configuration,
+            QueueBrowseStrategy queueBrowseStrategy) {
+        return new ActiveMQTemporaryQueueEndpoint(uri, component, subject, configuration, queueBrowseStrategy);
+    }
+
+    @Override
+    protected JmsEndpoint createQueueEndpoint(
+            String uri, JmsComponent component, String subject, JmsConfiguration configuration,
+            QueueBrowseStrategy queueBrowseStrategy) {
+        return new ActiveMQQueueEndpoint(uri, component, subject, configuration, queueBrowseStrategy);
+    }
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQConfiguration.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQConfiguration.java
new file mode 100644
index 0000000..fe5e465
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQConfiguration.java
@@ -0,0 +1,233 @@
+/*
+ * 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.component.activemq6;
+
+import java.lang.reflect.Constructor;
+
+import jakarta.jms.ConnectionFactory;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.camel.CamelContext;
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.support.ObjectHelper;
+import org.springframework.jms.connection.CachingConnectionFactory;
+import org.springframework.jms.connection.DelegatingConnectionFactory;
+import org.springframework.jms.connection.JmsTransactionManager;
+import org.springframework.jms.connection.SingleConnectionFactory;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.transaction.PlatformTransactionManager;
+
+public class ActiveMQConfiguration extends JmsConfiguration {
+    private ActiveMQComponent activeMQComponent;
+    private String brokerURL = ActiveMQConnectionFactory.DEFAULT_BROKER_URL;
+    private volatile boolean customBrokerURL;
+    private boolean useSingleConnection;
+    private boolean usePooledConnection = true;
+    private boolean trustAllPackages;
+
+    public ActiveMQConfiguration() {
+    }
+
+    public String getBrokerURL() {
+        return brokerURL;
+    }
+
+    /**
+     * Sets the broker URL to use to connect to ActiveMQ broker.
+     */
+    public void setBrokerURL(String brokerURL) {
+        this.brokerURL = brokerURL;
+        this.customBrokerURL = true;
+    }
+
+    public boolean isUseSingleConnection() {
+        return useSingleConnection;
+    }
+
+    /**
+     * @see        JmsConfiguration#getUsername()
+     * @deprecated - use JmsConfiguration#getUsername()
+     */
+    @Deprecated(since = "3.0.0")
+    public String getUserName() {
+        return getUsername();
+    }
+
+    /**
+     * @see        JmsConfiguration#setUsername(String)
+     * @deprecated - use JmsConfiguration#setUsername(String)
+     */
+    @Deprecated(since = "3.0.0")
+    public void setUserName(String userName) {
+        setUsername(userName);
+    }
+
+    /**
+     * Enables or disables whether a Spring {@link SingleConnectionFactory} will be used so that when messages are sent
+     * to ActiveMQ from outside a message-consuming thread, pooling will be used rather than the default with the Spring
+     * {@link JmsTemplate} which will create a new connection, session, producer for each message then close them all
+     * down again.
+     * <p/>
+     * The default value is false and a pooled connection is used by default.
+     */
+    public void setUseSingleConnection(boolean useSingleConnection) {
+        this.useSingleConnection = useSingleConnection;
+    }
+
+    public boolean isUsePooledConnection() {
+        return usePooledConnection;
+    }
+
+    /**
+     * Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ
+     * from outside of a message-consuming thread, pooling will be used rather than the default with the Spring
+     * {@link JmsTemplate} which will create a new connection, session, producer for each message then close them all
+     * down again.
+     * <p/>
+     * The default value is true.
+     */
+    public void setUsePooledConnection(boolean usePooledConnection) {
+        this.usePooledConnection = usePooledConnection;
+    }
+
+    public boolean isTrustAllPackages() {
+        return trustAllPackages;
+    }
+
+    /**
+     * ObjectMessage objects depend on Java serialization of marshal/unmarshal object payload. This process is generally
+     * considered unsafe as malicious payload can exploit the host system. That's why starting with versions 5.12.2 and
+     * 5.13.0, ActiveMQ enforces users to explicitly whitelist packages that can be exchanged using ObjectMessages.
+     * <br/>
+     * This option can be set to <tt>true</tt> to trust all packages (e.g., whitelist is *).
+     * <p/>
+     * See more details at:
+     * <a href="http://activemq.apache.org/objectmessage.html">http://activemq.apache.org/objectmessage.html</a>
+     */
+    public void setTrustAllPackages(boolean trustAllPackages) {
+        this.trustAllPackages = trustAllPackages;
+    }
+
+    /**
+     * Factory method to create a default transaction manager if one is not specified
+     */
+    @Override
+    protected PlatformTransactionManager createTransactionManager() {
+        JmsTransactionManager answer = new JmsTransactionManager(getOrCreateConnectionFactory());
+        answer.afterPropertiesSet();
+        return answer;
+    }
+
+    protected void setActiveMQComponent(ActiveMQComponent activeMQComponent) {
+        this.activeMQComponent = activeMQComponent;
+    }
+
+    @Override
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
+        ActiveMQConnectionFactory acf = null;
+
+        ConnectionFactory target = connectionFactory;
+        if (target instanceof CachingConnectionFactory ccf) {
+            target = ccf.getTargetConnectionFactory();
+        }
+        if (target instanceof DelegatingConnectionFactory dcf) {
+            target = dcf.getTargetConnectionFactory();
+        }
+        if (target instanceof ActiveMQConnectionFactory) {
+            acf = (ActiveMQConnectionFactory) target;
+        }
+
+        if (acf != null) {
+            if (customBrokerURL) {
+                // okay, a custom broker url was configured which we want to ensure
+                // the real target connection factory knows about
+                acf.setBrokerURL(brokerURL);
+            } else {
+                // it's the opposite the target has the brokerURL which we want to set on this
+                setBrokerURL(acf.getBrokerURL());
+            }
+        }
+
+        super.setConnectionFactory(connectionFactory);
+    }
+
+    @Override
+    protected ConnectionFactory createConnectionFactory() {
+        org.apache.activemq.ActiveMQConnectionFactory answer
+                = new org.apache.activemq.ActiveMQConnectionFactory();
+        answer.setTrustAllPackages(trustAllPackages);
+        if (getUsername() != null) {
+            answer.setUserName(getUsername());
+        }
+        if (getPassword() != null) {
+            answer.setPassword(getPassword());
+        }
+        answer.setBrokerURL(getBrokerURL());
+        CamelContext context = activeMQComponent != null ? activeMQComponent.getCamelContext() : null;
+        if (isUseSingleConnection()) {
+            SingleConnectionFactory scf = new SingleConnectionFactory(answer);
+            if (activeMQComponent != null) {
+                activeMQComponent.addSingleConnectionFactory(scf);
+            }
+            return scf;
+        } else if (isUsePooledConnection()) {
+            ConnectionFactory pcf = createPooledConnectionFactory(context, answer);
+            if (activeMQComponent != null) {
+                activeMQComponent.addPooledConnectionFactoryService(pcf);
+            }
+            return pcf;
+        } else {
+            return answer;
+        }
+    }
+
+    protected ConnectionFactory createPooledConnectionFactory(
+            CamelContext camelContext, ActiveMQConnectionFactory connectionFactory) {
+        try {
+            Class<?> type = loadClass(camelContext, "org.messaginghub.pooled.jms.JmsPoolConnectionFactory",
+                    getClass().getClassLoader());
+
+            Constructor<?> constructor = type.getConstructor();
+            ConnectionFactory cf = (ConnectionFactory) constructor.newInstance();
+            ObjectHelper.invokeMethod(type.getDeclaredMethod("setConnectionFactory", Object.class), cf,
+                    connectionFactory);
+            return cf;
+        } catch (Exception e) {
+            throw new RuntimeCamelException("Failed to instantiate PooledConnectionFactory: " + e, e);
+        }
+    }
+
+    public static Class<?> loadClass(CamelContext camelContext, String name, ClassLoader loader) throws ClassNotFoundException {
+        // if camel then use it to load the class
+        if (camelContext != null) {
+            return camelContext.getClassResolver()
+                    .resolveMandatoryClass("org.messaginghub.pooled.jms.JmsPoolConnectionFactory");
+        }
+
+        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+        if (contextClassLoader != null) {
+            try {
+                return contextClassLoader.loadClass(name);
+            } catch (ClassNotFoundException e) {
+                return loader.loadClass(name);
+            }
+        } else {
+            return loader.loadClass(name);
+        }
+    }
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQEndpoint.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQEndpoint.java
new file mode 100644
index 0000000..dc933e7
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQEndpoint.java
@@ -0,0 +1,73 @@
+/*
+ * 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.component.activemq6;
+
+import java.util.Map;
+
+import org.apache.camel.Category;
+import org.apache.camel.component.jms.JmsBinding;
+import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.component.jms.JmsEndpoint;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
+
+/**
+ * Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends the Camel JMS component.
+ */
+@UriEndpoint(firstVersion = "4.7.0", extendsScheme = "jms", scheme = "activemq6", title = "ActiveMQ 6.x",
+             syntax = "activemq6:destinationType:destinationName",
+             category = { Category.MESSAGING })
+public class ActiveMQEndpoint extends JmsEndpoint {
+
+    @UriParam(multiValue = true, prefix = "destination.", label = "consumer,advanced")
+    private Map<String, String> destinationOptions;
+
+    public ActiveMQEndpoint() {
+    }
+
+    public ActiveMQEndpoint(String uri, JmsComponent component, String destinationName, boolean pubSubDomain,
+                            JmsConfiguration configuration) {
+        super(uri, component, destinationName, pubSubDomain, configuration);
+    }
+
+    public ActiveMQEndpoint(String endpointUri, JmsBinding binding, JmsConfiguration configuration, String destinationName,
+                            boolean pubSubDomain) {
+        super(endpointUri, binding, configuration, destinationName, pubSubDomain);
+    }
+
+    public ActiveMQEndpoint(String endpointUri, String destinationName, boolean pubSubDomain) {
+        super(endpointUri, destinationName, pubSubDomain);
+    }
+
+    public ActiveMQEndpoint(String endpointUri, String destinationName) {
+        super(endpointUri, destinationName);
+    }
+
+    public Map<String, String> getDestinationOptions() {
+        return destinationOptions;
+    }
+
+    /**
+     * Destination Options are a way to provide extended configuration options to a JMS consumer without having to
+     * extend the JMS API. The options are encoded using URL query syntax in the destination name that the consumer is
+     * created on. See more details at https://activemq.apache.org/destination-options.
+     */
+    public void setDestinationOptions(Map<String, String> destinationOptions) {
+        this.destinationOptions = destinationOptions;
+    }
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQQueueEndpoint.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQQueueEndpoint.java
new file mode 100644
index 0000000..c0624ea
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQQueueEndpoint.java
@@ -0,0 +1,101 @@
+/*
+ * 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.component.activemq6;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.api.management.ManagedResource;
+import org.apache.camel.component.jms.DefaultQueueBrowseStrategy;
+import org.apache.camel.component.jms.JmsBrowsableEndpoint;
+import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.component.jms.QueueBrowseStrategy;
+import org.apache.camel.spi.BrowsableEndpoint;
+import org.springframework.jms.core.JmsOperations;
+
+/**
+ * An endpoint for a JMS Queue which is also browsable
+ */
+@ManagedResource(description = "Managed JMS Queue Endpoint")
+public class ActiveMQQueueEndpoint extends ActiveMQEndpoint implements JmsBrowsableEndpoint, BrowsableEndpoint {
+    private int maximumBrowseSize = -1;
+    private final QueueBrowseStrategy queueBrowseStrategy;
+
+    public ActiveMQQueueEndpoint(String uri, JmsComponent component, String destination,
+                                 JmsConfiguration configuration) {
+        this(uri, component, destination, configuration, null);
+        setDestinationType("queue");
+    }
+
+    public ActiveMQQueueEndpoint(String uri, JmsComponent component, String destination,
+                                 JmsConfiguration configuration, QueueBrowseStrategy queueBrowseStrategy) {
+        super(uri, component, destination, false, configuration);
+        setDestinationType("queue");
+        if (queueBrowseStrategy == null) {
+            this.queueBrowseStrategy = createQueueBrowseStrategy();
+        } else {
+            this.queueBrowseStrategy = queueBrowseStrategy;
+        }
+    }
+
+    public ActiveMQQueueEndpoint(String endpointUri, String destination, QueueBrowseStrategy queueBrowseStrategy) {
+        super(endpointUri, destination, false);
+        setDestinationType("queue");
+        if (queueBrowseStrategy == null) {
+            this.queueBrowseStrategy = createQueueBrowseStrategy();
+        } else {
+            this.queueBrowseStrategy = queueBrowseStrategy;
+        }
+    }
+
+    public ActiveMQQueueEndpoint(String endpointUri, String destination) {
+        super(endpointUri, destination, false);
+        setDestinationType("queue");
+        queueBrowseStrategy = createQueueBrowseStrategy();
+    }
+
+    @ManagedAttribute
+    public int getMaximumBrowseSize() {
+        return maximumBrowseSize;
+    }
+
+    /**
+     * If a number is set > 0, then this limits the number of messages that are returned when browsing the queue
+     */
+    @ManagedAttribute
+    public void setMaximumBrowseSize(int maximumBrowseSize) {
+        this.maximumBrowseSize = maximumBrowseSize;
+    }
+
+    @Override
+    public List<Exchange> getExchanges() {
+        if (queueBrowseStrategy == null) {
+            return Collections.emptyList();
+        }
+        String queue = getDestinationName();
+        JmsOperations template = getConfiguration().createInOnlyTemplate(this, false, queue);
+        return queueBrowseStrategy.browse(template, queue, this);
+    }
+
+    protected QueueBrowseStrategy createQueueBrowseStrategy() {
+        return new DefaultQueueBrowseStrategy();
+    }
+
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQSendDynamicAware.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQSendDynamicAware.java
new file mode 100644
index 0000000..0812238
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQSendDynamicAware.java
@@ -0,0 +1,25 @@
+/*
+ * 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.component.activemq6;
+
+import org.apache.camel.component.jms.JmsSendDynamicAware;
+import org.apache.camel.spi.annotations.SendDynamic;
+
+@SendDynamic("activemq6")
+public class ActiveMQSendDynamicAware extends JmsSendDynamicAware {
+
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQTemporaryQueueEndpoint.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQTemporaryQueueEndpoint.java
new file mode 100644
index 0000000..59c760b
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQTemporaryQueueEndpoint.java
@@ -0,0 +1,39 @@
+/*
+ * 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.component.activemq6;
+
+import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.component.jms.JmsTemporaryQueueEndpoint;
+import org.apache.camel.component.jms.QueueBrowseStrategy;
+
+public class ActiveMQTemporaryQueueEndpoint extends JmsTemporaryQueueEndpoint {
+
+    public ActiveMQTemporaryQueueEndpoint(String uri, JmsComponent component, String destination,
+                                          JmsConfiguration configuration) {
+        super(uri, component, destination, configuration);
+    }
+
+    public ActiveMQTemporaryQueueEndpoint(String uri, JmsComponent component, String destination,
+                                          JmsConfiguration configuration, QueueBrowseStrategy queueBrowseStrategy) {
+        super(uri, component, destination, configuration, queueBrowseStrategy);
+    }
+
+    public ActiveMQTemporaryQueueEndpoint(String endpointUri, String destination) {
+        super(endpointUri, destination);
+    }
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQTemporaryTopicEndpoint.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQTemporaryTopicEndpoint.java
new file mode 100644
index 0000000..bb02c8f
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/ActiveMQTemporaryTopicEndpoint.java
@@ -0,0 +1,33 @@
+/*
+ * 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.component.activemq6;
+
+import org.apache.camel.component.jms.JmsComponent;
+import org.apache.camel.component.jms.JmsConfiguration;
+import org.apache.camel.component.jms.JmsTemporaryTopicEndpoint;
+
+public class ActiveMQTemporaryTopicEndpoint extends JmsTemporaryTopicEndpoint {
+
+    public ActiveMQTemporaryTopicEndpoint(String uri, JmsComponent component, String destination,
+                                          JmsConfiguration configuration) {
+        super(uri, component, destination, configuration);
+    }
+
+    public ActiveMQTemporaryTopicEndpoint(String endpointUri, String destination) {
+        super(endpointUri, destination);
+    }
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/OriginalDestinationPropagateStrategy.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/OriginalDestinationPropagateStrategy.java
new file mode 100644
index 0000000..195fb74
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/OriginalDestinationPropagateStrategy.java
@@ -0,0 +1,55 @@
+/*
+ * 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.component.activemq6;
+
+import jakarta.jms.Message;
+import jakarta.jms.Session;
+
+import org.apache.activemq.command.ActiveMQDestination;
+import org.apache.activemq.command.ActiveMQMessage;
+import org.apache.camel.Exchange;
+import org.apache.camel.component.jms.JmsMessage;
+import org.apache.camel.component.jms.MessageCreatedStrategy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A strategy to enrich JMS message with their original destination if the Camel route originates from a JMS
+ * destination.
+ */
+public class OriginalDestinationPropagateStrategy implements MessageCreatedStrategy {
+
+    private static final Logger LOG = LoggerFactory.getLogger(OriginalDestinationPropagateStrategy.class);
+
+    @Override
+    public void onMessageCreated(Message message, Session session, Exchange exchange, Throwable cause) {
+        if (exchange.getIn() instanceof JmsMessage) {
+            JmsMessage msg = exchange.getIn(JmsMessage.class);
+            Message jms = msg.getJmsMessage();
+            if (jms instanceof ActiveMQMessage amq && message instanceof ActiveMQMessage) {
+                if (amq.getOriginalDestination() == null) {
+                    ActiveMQDestination from = amq.getDestination();
+                    if (from != null) {
+                        LOG.trace("Setting OriginalDestination: {} on {}", from, message);
+                        ((ActiveMQMessage) message).setOriginalDestination(from);
+                    }
+                }
+            }
+        }
+    }
+
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/ActiveMQConverter.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/ActiveMQConverter.java
new file mode 100644
index 0000000..e05b4c9
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/ActiveMQConverter.java
@@ -0,0 +1,38 @@
+/*
+ * 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.component.activemq6.converter;
+
+import org.apache.activemq.command.ActiveMQDestination;
+import org.apache.camel.Converter;
+
+@Converter(generateLoader = true)
+public class ActiveMQConverter {
+
+    /**
+     * Converts a URL in ActiveMQ syntax to a destination such as to support "queue://foo.bar" or 'topic://bar.whatnot".
+     * Things default to queues if no scheme. This allows ActiveMQ destinations to be passed around as Strings and
+     * converted back again.
+     *
+     * @param  name is the name of the queue or the full URI using prefixes queue:// or topic://
+     * @return      the ActiveMQ destination
+     */
+    @Converter
+    public ActiveMQDestination toDestination(String name) {
+        return ActiveMQDestination.createDestination(name, ActiveMQDestination.QUEUE_TYPE);
+    }
+
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/ActiveMQMessageConverter.java b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/ActiveMQMessageConverter.java
new file mode 100644
index 0000000..4cdbef0
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/ActiveMQMessageConverter.java
@@ -0,0 +1,97 @@
+/*
+ * 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.component.activemq6.converter;
+
+import java.io.Serializable;
+
+import jakarta.jms.JMSException;
+import jakarta.jms.Message;
+import jakarta.jms.MessageListener;
+
+import org.apache.activemq.command.ActiveMQMessage;
+import org.apache.activemq.command.ActiveMQObjectMessage;
+import org.apache.activemq.command.ActiveMQTextMessage;
+import org.apache.camel.Converter;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.component.jms.JmsBinding;
+
+@Converter(generateLoader = true)
+public class ActiveMQMessageConverter {
+    private JmsBinding binding = new JmsBinding();
+
+    /**
+     * Converts the inbound message exchange to an ActiveMQ JMS message
+     *
+     * @return the ActiveMQ message
+     */
+    @Converter
+    public ActiveMQMessage toMessage(Exchange exchange) throws JMSException {
+        ActiveMQMessage message = createActiveMQMessage(exchange);
+        getBinding().appendJmsProperties(message, exchange);
+        return message;
+    }
+
+    /**
+     * Allows a JMS {@link MessageListener} to be converted to a Camel {@link Processor} so that we can provide better
+     * <a href="">Bean Integration</a> so that we can use any JMS MessageListener in in Camel as a bean
+     *
+     * @param  listener the JMS message listener
+     * @return          a newly created Camel Processor which when invoked will invoke
+     *                  {@link MessageListener#onMessage(Message)}
+     */
+    @Converter
+    public Processor toProcessor(final MessageListener listener) {
+        return new Processor() {
+            public void process(Exchange exchange) throws Exception {
+                Message message = toMessage(exchange);
+                listener.onMessage(message);
+            }
+
+            @Override
+            public String toString() {
+                return "Processor of MessageListener: " + listener;
+            }
+        };
+    }
+
+    private static ActiveMQMessage createActiveMQMessage(Exchange exchange) throws JMSException {
+        Object body = exchange.getIn().getBody();
+        if (body instanceof String) {
+            ActiveMQTextMessage answer = new ActiveMQTextMessage();
+            answer.setText((String) body);
+            return answer;
+        } else if (body instanceof Serializable) {
+            ActiveMQObjectMessage answer = new ActiveMQObjectMessage();
+            answer.setObject((Serializable) body);
+            return answer;
+        } else {
+            return new ActiveMQMessage();
+        }
+
+    }
+
+    // Properties
+    // -------------------------------------------------------------------------
+    public JmsBinding getBinding() {
+        return binding;
+    }
+
+    public void setBinding(JmsBinding binding) {
+        this.binding = binding;
+    }
+}
diff --git a/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/package.html b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/package.html
new file mode 100644
index 0000000..a1c8201
--- /dev/null
+++ b/components/camel-activemq6/src/main/java/org/apache/camel/component/activemq6/converter/package.html
@@ -0,0 +1,30 @@
+<!--
+
+    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.
+
+-->
+<html>
+<head>
+</head>
+<body>
+
+Defines the <a href="http://camel.apache.org/type-converter.html">Type Converters</a> for working
+with JMS and ActiveMQ with <a href="http://camel.apache.org/">Camel</a>
+<a href="http://camel.apache.org/enterprise-integration-patterns.html">Enterprise Integration Patterns</a>
+
+
+</body>
+</html>
\ No newline at end of file
diff --git a/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQITSupport.java b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQITSupport.java
new file mode 100644
index 0000000..8d33f81
--- /dev/null
+++ b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQITSupport.java
@@ -0,0 +1,64 @@
+/*
+ * 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.component.activemq6;
+
+import org.apache.activemq.ActiveMQConnectionFactory;
+import org.apache.camel.test.infra.artemis.services.ArtemisContainer;
+import org.apache.camel.test.infra.core.CamelContextExtension;
+import org.apache.camel.test.infra.core.DefaultCamelContextExtension;
+import org.apache.camel.test.infra.core.api.ConfigurableContext;
+import org.apache.camel.test.infra.core.api.ConfigurableRoute;
+import org.apache.camel.test.infra.messaging.services.MessagingLocalContainerService;
+import org.apache.camel.test.infra.messaging.services.MessagingService;
+import org.apache.camel.test.infra.messaging.services.MessagingServiceFactory;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+public abstract class ActiveMQITSupport implements ConfigurableContext, ConfigurableRoute {
+    @Order(1)
+    @RegisterExtension
+    protected static MessagingService service = MessagingServiceFactory.builder()
+            .addLocalMapping(ActiveMQITSupport::createLocalService)
+            .build();
+
+    @Order(2)
+    @RegisterExtension
+    protected static CamelContextExtension contextExtension = new DefaultCamelContextExtension();
+
+    public static MessagingLocalContainerService<ArtemisContainer> createLocalService() {
+        ArtemisContainer container = new ArtemisContainer();
+
+        return new MessagingLocalContainerService<>(container, c -> container.defaultEndpoint());
+    }
+
+    /* We don't want topic advisories here: they may cause publication issues (i.e.:
+     * jakarta.jms.InvalidDestinationException: Cannot publish to a deleted Destination) with
+     * spring JMS. So, we disable them ...
+     */
+
+    public static ActiveMQComponent activeMQComponent(String uri) {
+        ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(uri);
+
+        connectionFactory.setWatchTopicAdvisories(false);
+
+        ActiveMQConfiguration activeMQConfiguration = new ActiveMQConfiguration();
+        activeMQConfiguration.setConnectionFactory(connectionFactory);
+
+        return new ActiveMQComponent(activeMQConfiguration);
+    }
+}
diff --git a/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQRouteIT.java b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQRouteIT.java
new file mode 100644
index 0000000..60fae2c
--- /dev/null
+++ b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQRouteIT.java
@@ -0,0 +1,120 @@
+/*
+ * 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.component.activemq6;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.core.annotations.ContextFixture;
+import org.apache.camel.test.infra.core.annotations.RouteFixture;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class ActiveMQRouteIT extends ActiveMQITSupport {
+
+    private ProducerTemplate template;
+
+    private MockEndpoint resultEndpoint;
+    private String expectedBody = "Hello there!";
+
+    @BeforeEach
+    void setupTemplate() {
+        template = contextExtension.getProducerTemplate();
+        resultEndpoint = contextExtension.getMockEndpoint("mock:result");
+    }
+
+    @Test
+    public void testJmsQueue() throws Exception {
+        resultEndpoint.expectedMessageCount(1);
+        resultEndpoint.message(0).header("cheese").isEqualTo(123);
+
+        template.sendBodyAndHeader("activemq6:queue:jmsQueue", expectedBody, "cheese", 123);
+        resultEndpoint.assertIsSatisfied();
+    }
+
+    @Test
+    public void testRequestReply() {
+        String response = template.requestBody("activemq6:queue:inOut", expectedBody, String.class);
+        assertEquals("response", response);
+    }
+
+    @Test
+    public void testJmsTopic() throws Exception {
+        resultEndpoint.expectedMessageCount(2);
+        resultEndpoint.message(0).header("cheese").isEqualTo(123);
+        template.sendBodyAndHeader("activemq6:topic:jmsTopic", expectedBody, "cheese", 123);
+        resultEndpoint.assertIsSatisfied();
+    }
+
+    @Test
+    public void testPrefixWildcard() throws Exception {
+        resultEndpoint.expectedMessageCount(1);
+        template.sendBody("activemq6:queue:wildcard.foo.bar", expectedBody);
+        resultEndpoint.assertIsSatisfied();
+    }
+
+    @Test
+    public void testIncludeDestination() throws Exception {
+        resultEndpoint.expectedMessageCount(1);
+        resultEndpoint.message(0).header("JMSDestination").isEqualTo("queue://jmsQueue");
+        template.sendBody("activemq6:queue:jmsQueue", expectedBody);
+        resultEndpoint.assertIsSatisfied();
+    }
+
+    @ContextFixture
+    public void configureContext(CamelContext context) {
+        context.addComponent("activemq6", activeMQComponent(service.defaultEndpoint()));
+    }
+
+    @RouteFixture
+    public void createRouteBuilder(CamelContext context) throws Exception {
+        context.addRoutes(createRouteBuilder());
+    }
+
+    private static RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                from("activemq6:queue:jmsQueue")
+                        .to("log:routing")
+                        .to("mock:result");
+
+                from("activemq6:queue:inOut")
+                        .setBody()
+                        .constant("response");
+
+                from("activemq6:topic:jmsTopic")
+                        .to("log:routing")
+                        .to("mock:result");
+
+                from("activemq6:topic:jmsTopic")
+                        .to("log:routing")
+                        .to("mock:result");
+
+                from("activemq6:queue:wildcard.>")
+                        .to("log:routing")
+                        .to("mock:result");
+
+                from("activemq6:queue:uriEndpoint")
+                        .to("log:routing")
+                        .to("mock:result");
+            }
+        };
+    }
+}
diff --git a/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQToDIT.java b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQToDIT.java
new file mode 100644
index 0000000..727b2d3
--- /dev/null
+++ b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQToDIT.java
@@ -0,0 +1,68 @@
+/*
+ * 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.component.activemq6;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.core.annotations.ContextFixture;
+import org.apache.camel.test.infra.core.annotations.RouteFixture;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+public class ActiveMQToDIT extends ActiveMQITSupport {
+    private ProducerTemplate template;
+
+    @Test
+    public void testToD() throws Exception {
+        contextExtension.getMockEndpoint("mock:bar").expectedBodiesReceived("Hello bar");
+        contextExtension.getMockEndpoint("mock:beer").expectedBodiesReceived("Hello beer");
+
+        template.sendBodyAndHeader("direct:start", "Hello bar", "where", "bar");
+        template.sendBodyAndHeader("direct:start", "Hello beer", "where", "beer");
+
+        MockEndpoint.assertIsSatisfied(contextExtension.getContext());
+    }
+
+    @BeforeEach
+    void setupTemplate() {
+        template = contextExtension.getProducerTemplate();
+    }
+
+    @ContextFixture
+    public void configureContext(CamelContext camelContext) {
+        camelContext.addComponent("activemq6", activeMQComponent(service.defaultEndpoint()));
+    }
+
+    @RouteFixture
+    public void createRouteBuilder(CamelContext context) throws Exception {
+        context.addRoutes(createRouteBuilder());
+    }
+
+    private RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                // route message dynamic using toD
+                from("direct:start").toD("activemq6:queue:${header.where}");
+
+                from("activemq6:queue:bar").to("mock:bar");
+                from("activemq6:queue:beer").to("mock:beer");
+            }
+        };
+    }
+}
diff --git a/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQToDSendDynamicIT.java b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQToDSendDynamicIT.java
new file mode 100644
index 0000000..d6c0fb8
--- /dev/null
+++ b/components/camel-activemq6/src/test/java/org/apache/camel/component/activemq6/ActiveMQToDSendDynamicIT.java
@@ -0,0 +1,70 @@
+/*
+ * 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.component.activemq6;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ConsumerTemplate;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.test.infra.core.annotations.ContextFixture;
+import org.apache.camel.test.infra.core.annotations.RouteFixture;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class ActiveMQToDSendDynamicIT extends ActiveMQITSupport {
+    private ProducerTemplate template;
+    private ConsumerTemplate consumer;
+
+    @Test
+    public void testToD() {
+        template.sendBodyAndHeader("direct:start", "Hello bar", "where", "bar");
+        template.sendBodyAndHeader("direct:start", "Hello beer", "where", "beer");
+
+        // The messages should be in the queues
+        String out = consumer.receiveBody("activemq6:queue:bar", 2000, String.class);
+        assertEquals("Hello bar", out);
+        out = consumer.receiveBody("activemq6:queue:beer", 2000, String.class);
+        assertEquals("Hello beer", out);
+    }
+
+    @BeforeEach
+    void setupTemplate() {
+        template = contextExtension.getProducerTemplate();
+        consumer = contextExtension.getConsumerTemplate();
+    }
+
+    @ContextFixture
+    public void configureContext(CamelContext camelContext) {
+        camelContext.addComponent("activemq6", activeMQComponent(service.defaultEndpoint()));
+    }
+
+    @RouteFixture
+    public void createRouteBuilder(CamelContext context) throws Exception {
+        context.addRoutes(createRouteBuilder());
+    }
+
+    private RouteBuilder createRouteBuilder() {
+        return new RouteBuilder() {
+            public void configure() {
+                // route message dynamic using toD
+                from("direct:start").toD("activemq6:queue:${header.where}");
+            }
+        };
+    }
+}
diff --git a/components/camel-activemq6/src/test/resources/log4j2-test.properties b/components/camel-activemq6/src/test/resources/log4j2-test.properties
new file mode 100644
index 0000000..4e071ef
--- /dev/null
+++ b/components/camel-activemq6/src/test/resources/log4j2-test.properties
@@ -0,0 +1,28 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+
+appender.out.type = File
+appender.out.name = out
+appender.out.fileName = target/camel-activemq6-test.log
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+appender.stdout.type = Console
+appender.stdout.name = stdout
+appender.stdout.layout.type = PatternLayout
+appender.stdout.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+rootLogger.level = INFO
+rootLogger.appenderRef.out.ref = out
diff --git a/components/pom.xml b/components/pom.xml
index 6b992f8..9ff2502 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -75,6 +75,7 @@
 
         <!-- regular modules in alphabetic order -->
         <module>camel-activemq</module>
+        <module>camel-activemq6</module>
         <module>camel-ai</module>
         <module>camel-amqp</module>
         <module>camel-arangodb</module>
diff --git a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
index 73dcf99..eda05e1 100644
--- a/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
+++ b/core/camel-main/src/generated/resources/org/apache/camel/main/components.properties
@@ -1,4 +1,5 @@
 activemq
+activemq6
 amqp
 arangodb
 as2
diff --git a/docs/components/modules/ROOT/examples/json/activemq6.json b/docs/components/modules/ROOT/examples/json/activemq6.json
new file mode 120000
index 0000000..8d07a81
--- /dev/null
+++ b/docs/components/modules/ROOT/examples/json/activemq6.json
@@ -0,0 +1 @@
+../../../../../../components/camel-activemq6/src/generated/resources/META-INF/org/apache/camel/component/activemq6/activemq6.json
\ No newline at end of file
diff --git a/docs/components/modules/ROOT/nav.adoc b/docs/components/modules/ROOT/nav.adoc
index b72dc12..bbe5ed8 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -2,7 +2,8 @@
 // make edits in docs/*nav.adoc.template files instead
 
 * xref:ROOT:index.adoc[Components]
-** xref:activemq-component.adoc[ActiveMQ]
+** xref:activemq-component.adoc[ActiveMQ 5.x]
+** xref:activemq6-component.adoc[ActiveMQ 6.x]
 ** xref:amqp-component.adoc[AMQP]
 ** xref:arangodb-component.adoc[ArangoDb]
 ** xref:as2-component.adoc[AS2]
diff --git a/docs/components/modules/ROOT/pages/activemq6-component.adoc b/docs/components/modules/ROOT/pages/activemq6-component.adoc
new file mode 120000
index 0000000..aee1163
--- /dev/null
+++ b/docs/components/modules/ROOT/pages/activemq6-component.adoc
@@ -0,0 +1 @@
+../../../../../components/camel-activemq6/src/main/docs/activemq6-component.adoc
\ No newline at end of file
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index dafaaa0..95f7014 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -46,8 +46,8 @@
 public interface ComponentsBuilderFactory {
 
     /**
-     * ActiveMQ (camel-activemq)
-     * Send messages to (or consume from) Apache ActiveMQ. This component
+     * ActiveMQ 5.x (camel-activemq)
+     * Send messages to (or consume from) Apache ActiveMQ 5.x. This component
      * extends the Camel JMS component.
      * 
      * Category: messaging
@@ -60,6 +60,20 @@
         return ActivemqComponentBuilderFactory.activemq();
     }
     /**
+     * ActiveMQ 6.x (camel-activemq6)
+     * Send messages to (or consume from) Apache ActiveMQ 6.x. This component
+     * extends the Camel JMS component.
+     * 
+     * Category: messaging
+     * Since: 4.7
+     * Maven coordinates: org.apache.camel:camel-activemq6
+     * 
+     * @return the dsl builder
+     */
+    static Activemq6ComponentBuilderFactory.Activemq6ComponentBuilder activemq6() {
+        return Activemq6ComponentBuilderFactory.activemq6();
+    }
+    /**
      * AMQP (camel-amqp)
      * Messaging with AMQP protocol using Apache QPid Client.
      * 
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Activemq6ComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Activemq6ComponentBuilderFactory.java
new file mode 100644
index 0000000..76fc4e7
--- /dev/null
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Activemq6ComponentBuilderFactory.java
@@ -0,0 +1,2355 @@
+/* Generated by camel build tools - do NOT edit this file! */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.component.dsl;
+
+import javax.annotation.processing.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.activemq6.ActiveMQComponent;
+
+/**
+ * Send messages to (or consume from) Apache ActiveMQ 6.x. This component
+ * extends the Camel JMS component.
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface Activemq6ComponentBuilderFactory {
+
+    /**
+     * ActiveMQ 6.x (camel-activemq6)
+     * Send messages to (or consume from) Apache ActiveMQ 6.x. This component
+     * extends the Camel JMS component.
+     * 
+     * Category: messaging
+     * Since: 4.7
+     * Maven coordinates: org.apache.camel:camel-activemq6
+     * 
+     * @return the dsl builder
+     */
+    static Activemq6ComponentBuilder activemq6() {
+        return new Activemq6ComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the ActiveMQ 6.x component.
+     */
+    interface Activemq6ComponentBuilder extends ComponentBuilder<ActiveMQComponent> {
+    
+        /**
+         * Sets the broker URL to use to connect to ActiveMQ. If none configured
+         * then localhost:61616 is used by default (however can be overridden by
+         * configuration from environment variables).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param brokerURL the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder brokerURL(java.lang.String brokerURL) {
+            doSetProperty("brokerURL", brokerURL);
+            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 with JMS 1.1.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param clientId the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder clientId(java.lang.String clientId) {
+            doSetProperty("clientId", clientId);
+            return this;
+        }
+    
+        /**
+         * The connection factory to be use. A connection factory must be
+         * configured either on the component or endpoint.
+         * 
+         * The option is a:
+         * &lt;code&gt;jakarta.jms.ConnectionFactory&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param connectionFactory the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder connectionFactory(jakarta.jms.ConnectionFactory connectionFactory) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param disableReplyTo the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder disableReplyTo(boolean disableReplyTo) {
+            doSetProperty("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: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param durableSubscriptionName the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder durableSubscriptionName(java.lang.String durableSubscriptionName) {
+            doSetProperty("durableSubscriptionName", durableSubscriptionName);
+            return this;
+        }
+    
+        
+        /**
+         * Use an embedded in-memory (non-persistent) ActiveMQ broker for
+         * development and testing purposes. You must have activemq-broker JAR
+         * on the classpath.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param embedded the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder embedded(boolean embedded) {
+            doSetProperty("embedded", embedded);
+            return this;
+        }
+    
+        /**
+         * Allows you to force the use of a specific jakarta.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:
+         * &lt;code&gt;org.apache.camel.component.jms.JmsMessageType&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param jmsMessageType the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder jmsMessageType(org.apache.camel.component.jms.JmsMessageType jmsMessageType) {
+            doSetProperty("jmsMessageType", jmsMessageType);
+            return this;
+        }
+    
+        /**
+         * Provides an explicit ReplyTo destination (overrides any incoming
+         * value of Message.getJMSReplyTo() in consumer).
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: common
+         * 
+         * @param replyTo the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyTo(java.lang.String replyTo) {
+            doSetProperty("replyTo", replyTo);
+            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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param testConnectionOnStartup the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder testConnectionOnStartup(boolean testConnectionOnStartup) {
+            doSetProperty("testConnectionOnStartup", testConnectionOnStartup);
+            return this;
+        }
+    
+        
+        /**
+         * Enables or disables whether a PooledConnectionFactory will be used so
+         * that when messages are sent to ActiveMQ from outside a message
+         * consuming thread, pooling will be used rather than the default with
+         * the Spring JmsTemplate which will create a new connection, session,
+         * producer for each message then close them all down again. The default
+         * value is true.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: common
+         * 
+         * @param usePooledConnection the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder usePooledConnection(boolean usePooledConnection) {
+            doSetProperty("usePooledConnection", usePooledConnection);
+            return this;
+        }
+    
+        
+        /**
+         * Enables or disables whether a Spring SingleConnectionFactory will be
+         * used so that when messages are sent to ActiveMQ from outside a
+         * message consuming thread, pooling will be used rather than the
+         * default with the Spring JmsTemplate which will create a new
+         * connection, session, producer for each message then close them all
+         * down again. The default value is false and a pooled connection is
+         * used by default.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: common
+         * 
+         * @param useSingleConnection the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder useSingleConnection(boolean useSingleConnection) {
+            doSetProperty("useSingleConnection", useSingleConnection);
+            return this;
+        }
+    
+        
+        /**
+         * The JMS acknowledgement name, which is one of: SESSION_TRANSACTED,
+         * CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: AUTO_ACKNOWLEDGE
+         * Group: consumer
+         * 
+         * @param acknowledgementModeName the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder acknowledgementModeName(java.lang.String acknowledgementModeName) {
+            doSetProperty("acknowledgementModeName", acknowledgementModeName);
+            return this;
+        }
+    
+        /**
+         * Consumer priorities allow you to ensure that high priority consumers
+         * receive messages while they are active. Normally, active consumers
+         * connected to a queue receive messages from it in a round-robin
+         * fashion. When consumer priorities are in use, messages are delivered
+         * round-robin if multiple active consumers exist with the same high
+         * priority. Messages will only going to lower priority consumers when
+         * the high priority consumers do not have credit available to consume
+         * the message, or those high priority consumers have declined to accept
+         * the message (for instance because it does not meet the criteria of
+         * any selectors associated with the consumer).
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param artemisConsumerPriority the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder artemisConsumerPriority(int artemisConsumerPriority) {
+            doSetProperty("artemisConsumerPriority", artemisConsumerPriority);
+            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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param asyncConsumer the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder asyncConsumer(boolean asyncConsumer) {
+            doSetProperty("asyncConsumer", asyncConsumer);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether the consumer container should auto-startup.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: consumer
+         * 
+         * @param autoStartup the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder autoStartup(boolean autoStartup) {
+            doSetProperty("autoStartup", autoStartup);
+            return this;
+        }
+    
+        /**
+         * Sets the cache level by ID for the underlying JMS resources. See
+         * cacheLevelName option for more details.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param cacheLevel the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder cacheLevel(int cacheLevel) {
+            doSetProperty("cacheLevel", cacheLevel);
+            return this;
+        }
+    
+        
+        /**
+         * Sets the cache level by name for the underlying JMS resources.
+         * Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER,
+         * CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See
+         * the Spring documentation and Transactions Cache Levels for more
+         * information.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: CACHE_AUTO
+         * Group: consumer
+         * 
+         * @param cacheLevelName the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder cacheLevelName(java.lang.String cacheLevelName) {
+            doSetProperty("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: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 1
+         * Group: consumer
+         * 
+         * @param concurrentConsumers the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder concurrentConsumers(int concurrentConsumers) {
+            doSetProperty("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: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param maxConcurrentConsumers the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder maxConcurrentConsumers(int maxConcurrentConsumers) {
+            doSetProperty("maxConcurrentConsumers", maxConcurrentConsumers);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether to use persistent delivery by default for replies.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: consumer
+         * 
+         * @param replyToDeliveryPersistent the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToDeliveryPersistent(boolean replyToDeliveryPersistent) {
+            doSetProperty("replyToDeliveryPersistent", replyToDeliveryPersistent);
+            return this;
+        }
+    
+        /**
+         * Sets the JMS selector to use.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param selector the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder selector(java.lang.String selector) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param subscriptionDurable the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder subscriptionDurable(boolean subscriptionDurable) {
+            doSetProperty("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: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param subscriptionName the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder subscriptionName(java.lang.String subscriptionName) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer
+         * 
+         * @param subscriptionShared the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder subscriptionShared(boolean subscriptionShared) {
+            doSetProperty("subscriptionShared", subscriptionShared);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether the consumer accept messages while it is stopping.
+         * You may consider enabling this option, if you start and stop JMS
+         * routes at runtime, while there are still messages enqueued on the
+         * queue. If this option is false, and you stop the JMS route, then
+         * messages may be rejected, and the JMS broker would have to attempt
+         * redeliveries, which yet again may be rejected, and eventually the
+         * message may be moved at a dead letter queue on the JMS broker. To
+         * avoid this its recommended to enable this option.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param acceptMessagesWhileStopping the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder acceptMessagesWhileStopping(boolean acceptMessagesWhileStopping) {
+            doSetProperty("acceptMessagesWhileStopping", acceptMessagesWhileStopping);
+            return this;
+        }
+    
+        
+        /**
+         * Whether the DefaultMessageListenerContainer used in the reply
+         * managers for request-reply messaging allow the
+         * DefaultMessageListenerContainer.runningAllowed flag to quick stop in
+         * case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and
+         * org.apache.camel.CamelContext is currently being stopped. This quick
+         * stop ability is enabled by default in the regular JMS consumers but
+         * to enable for reply managers you must enable this flag.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param allowReplyManagerQuickStop the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder allowReplyManagerQuickStop(boolean allowReplyManagerQuickStop) {
+            doSetProperty("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:
+         * &lt;code&gt;org.apache.camel.component.jms.ConsumerType&lt;/code&gt;
+         * type.
+         * 
+         * Default: Default
+         * Group: consumer (advanced)
+         * 
+         * @param consumerType the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder consumerType(org.apache.camel.component.jms.ConsumerType consumerType) {
+            doSetProperty("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
+         * thread-pool-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:
+         * &lt;code&gt;org.apache.camel.component.jms.DefaultTaskExecutorType&lt;/code&gt; type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param defaultTaskExecutorType the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder defaultTaskExecutorType(org.apache.camel.component.jms.DefaultTaskExecutorType defaultTaskExecutorType) {
+            doSetProperty("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. See also the option eagerPoisonBody.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param eagerLoadingOfProperties the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder eagerLoadingOfProperties(boolean eagerLoadingOfProperties) {
+            doSetProperty("eagerLoadingOfProperties", eagerLoadingOfProperties);
+            return this;
+        }
+    
+        
+        /**
+         * If eagerLoadingOfProperties is enabled and the JMS message payload
+         * (JMS body or JMS properties) is poison (cannot be read/mapped), then
+         * set this text as the message body instead so the message can be
+         * processed (the cause of the poison are already stored as exception on
+         * the Exchange). This can be turned off by setting
+         * eagerPoisonBody=false. See also the option eagerLoadingOfProperties.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Default: Poison JMS message due to ${exception.message}
+         * Group: consumer (advanced)
+         * 
+         * @param eagerPoisonBody the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder eagerPoisonBody(java.lang.String eagerPoisonBody) {
+            doSetProperty("eagerPoisonBody", eagerPoisonBody);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether the listener session should be exposed when
+         * consuming messages.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param exposeListenerSession the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder exposeListenerSession(boolean exposeListenerSession) {
+            doSetProperty("exposeListenerSession", exposeListenerSession);
+            return this;
+        }
+    
+        
+        /**
+         * The consumer type of the reply consumer (when doing request/reply),
+         * 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:
+         * &lt;code&gt;org.apache.camel.component.jms.ConsumerType&lt;/code&gt;
+         * type.
+         * 
+         * Default: Default
+         * Group: consumer (advanced)
+         * 
+         * @param replyToConsumerType the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToConsumerType(org.apache.camel.component.jms.ConsumerType replyToConsumerType) {
+            doSetProperty("replyToConsumerType", replyToConsumerType);
+            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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: consumer (advanced)
+         * 
+         * @param replyToSameDestinationAllowed the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToSameDestinationAllowed(boolean replyToSameDestinationAllowed) {
+            doSetProperty("replyToSameDestinationAllowed", replyToSameDestinationAllowed);
+            return this;
+        }
+    
+        /**
+         * Allows you to specify a custom task executor for consuming messages.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.springframework.core.task.TaskExecutor&lt;/code&gt;
+         * type.
+         * 
+         * Group: consumer (advanced)
+         * 
+         * @param taskExecutor the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder taskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) {
+            doSetProperty("taskExecutor", taskExecutor);
+            return this;
+        }
+    
+        
+        /**
+         * Sets delivery delay to use for send calls for JMS. This option
+         * requires JMS 2.0 compliant broker.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: -1
+         * Group: producer
+         * 
+         * @param deliveryDelay the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder deliveryDelay(long deliveryDelay) {
+            doSetProperty("deliveryDelay", deliveryDelay);
+            return this;
+        }
+    
+        /**
+         * Specifies the delivery mode to be used. Possible values are those
+         * defined by jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and
+         * PERSISTENT = 2.
+         * 
+         * The option is a: &lt;code&gt;java.lang.Integer&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param deliveryMode the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder deliveryMode(java.lang.Integer deliveryMode) {
+            doSetProperty("deliveryMode", deliveryMode);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether persistent delivery is used by default.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: producer
+         * 
+         * @param deliveryPersistent the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder deliveryPersistent(boolean deliveryPersistent) {
+            doSetProperty("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: &lt;code&gt;java.lang.Boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param explicitQosEnabled the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder explicitQosEnabled(java.lang.Boolean explicitQosEnabled) {
+            doSetProperty("explicitQosEnabled", explicitQosEnabled);
+            return this;
+        }
+    
+        
+        /**
+         * Sets whether JMS date properties should be formatted according to the
+         * ISO 8601 standard.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param formatDateHeadersToIso8601 the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder formatDateHeadersToIso8601(boolean formatDateHeadersToIso8601) {
+            doSetProperty("formatDateHeadersToIso8601", formatDateHeadersToIso8601);
+            return this;
+        }
+    
+        
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param lazyStartProducer the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder lazyStartProducer(boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer
+         * 
+         * @param preserveMessageQos the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder preserveMessageQos(boolean preserveMessageQos) {
+            doSetProperty("preserveMessageQos", preserveMessageQos);
+            return this;
+        }
+    
+        
+        /**
+         * Values greater than 1 specify the message priority when sending
+         * (where 1 is the lowest priority and 9 is the highest). The
+         * explicitQosEnabled option must also be enabled in order for this
+         * option to have any effect.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 4
+         * Group: producer
+         * 
+         * @param priority the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder priority(int priority) {
+            doSetProperty("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: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 1
+         * Group: producer
+         * 
+         * @param replyToConcurrentConsumers the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToConcurrentConsumers(int replyToConcurrentConsumers) {
+            doSetProperty("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: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param replyToMaxConcurrentConsumers the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToMaxConcurrentConsumers(int replyToMaxConcurrentConsumers) {
+            doSetProperty("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies the maximum number of concurrent consumers for continue
+         * routing when timeout occurred when using request/reply over JMS.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 1
+         * Group: producer
+         * 
+         * @param replyToOnTimeoutMaxConcurrentConsumers the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToOnTimeoutMaxConcurrentConsumers(int replyToOnTimeoutMaxConcurrentConsumers) {
+            doSetProperty("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: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer
+         * 
+         * @param replyToOverride the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToOverride(java.lang.String replyToOverride) {
+            doSetProperty("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:
+         * &lt;code&gt;org.apache.camel.component.jms.ReplyToType&lt;/code&gt;
+         * type.
+         * 
+         * Group: producer
+         * 
+         * @param replyToType the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToType(org.apache.camel.component.jms.ReplyToType replyToType) {
+            doSetProperty("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: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 20000
+         * Group: producer
+         * 
+         * @param requestTimeout the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder requestTimeout(long requestTimeout) {
+            doSetProperty("requestTimeout", requestTimeout);
+            return this;
+        }
+    
+        
+        /**
+         * When sending messages, specifies the time-to-live of the message (in
+         * milliseconds).
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: -1
+         * Group: producer
+         * 
+         * @param timeToLive the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder timeToLive(long timeToLive) {
+            doSetProperty("timeToLive", timeToLive);
+            return this;
+        }
+    
+        /**
+         * This option is used to allow additional headers which may have values
+         * that are invalid according to JMS specification. For example, some
+         * message systems, such as WMQ, do this with header names using prefix
+         * JMS_IBM_MQMD_ containing values with byte array or other invalid
+         * types. You can specify multiple header names separated by comma, and
+         * use as suffix for wildcard matching.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param allowAdditionalHeaders the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder allowAdditionalHeaders(java.lang.String allowAdditionalHeaders) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: producer (advanced)
+         * 
+         * @param allowNullBody the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder allowNullBody(boolean allowNullBody) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param alwaysCopyMessage the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder alwaysCopyMessage(boolean alwaysCopyMessage) {
+            doSetProperty("alwaysCopyMessage", alwaysCopyMessage);
+            return this;
+        }
+    
+        /**
+         * When using InOut exchange pattern use this JMS property instead of
+         * JMSCorrelationID JMS property to correlate messages. If set messages
+         * will be correlated solely on the value of this property
+         * JMSCorrelationID property will be ignored and not set by Camel.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param correlationProperty the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder correlationProperty(java.lang.String correlationProperty) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param disableTimeToLive the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder disableTimeToLive(boolean disableTimeToLive) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param forceSendOriginalMessage the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder forceSendOriginalMessage(boolean forceSendOriginalMessage) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param includeSentJMSMessageID the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder includeSentJMSMessageID(boolean includeSentJMSMessageID) {
+            doSetProperty("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: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param replyToCacheLevelName the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToCacheLevelName(java.lang.String replyToCacheLevelName) {
+            doSetProperty("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: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: producer (advanced)
+         * 
+         * @param replyToDestinationSelectorName the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder replyToDestinationSelectorName(java.lang.String replyToDestinationSelectorName) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: producer (advanced)
+         * 
+         * @param streamMessageTypeEnabled the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder streamMessageTypeEnabled(boolean streamMessageTypeEnabled) {
+            doSetProperty("streamMessageTypeEnabled", streamMessageTypeEnabled);
+            return this;
+        }
+    
+        
+        /**
+         * Whether to auto-discover ConnectionFactory from the registry, if no
+         * connection factory has been configured. If only one instance of
+         * ConnectionFactory is found then it will be used. This is enabled by
+         * default.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param allowAutoWiredConnectionFactory the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder allowAutoWiredConnectionFactory(boolean allowAutoWiredConnectionFactory) {
+            doSetProperty("allowAutoWiredConnectionFactory", allowAutoWiredConnectionFactory);
+            return this;
+        }
+    
+        
+        /**
+         * Whether to auto-discover DestinationResolver from the registry, if no
+         * destination resolver has been configured. If only one instance of
+         * DestinationResolver is found then it will be used. This is enabled by
+         * default.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param allowAutoWiredDestinationResolver the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder allowAutoWiredDestinationResolver(boolean allowAutoWiredDestinationResolver) {
+            doSetProperty("allowAutoWiredDestinationResolver", allowAutoWiredDestinationResolver);
+            return this;
+        }
+    
+        
+        /**
+         * Controls whether or not to include serialized headers. Applies only
+         * when transferExchange is true. This requires that the objects are
+         * serializable. Camel will exclude any non-serializable objects and log
+         * it at WARN level.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param allowSerializedHeaders the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder allowSerializedHeaders(boolean allowSerializedHeaders) {
+            doSetProperty("allowSerializedHeaders", allowSerializedHeaders);
+            return this;
+        }
+    
+        
+        /**
+         * Whether optimizing for Apache Artemis streaming mode. This can reduce
+         * memory overhead when using Artemis with JMS StreamMessage types. This
+         * option must only be enabled if Apache Artemis is being used.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param artemisStreamingEnabled the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder artemisStreamingEnabled(boolean artemisStreamingEnabled) {
+            doSetProperty("artemisStreamingEnabled", artemisStreamingEnabled);
+            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 fail-over. 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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param asyncStartListener the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder asyncStartListener(boolean asyncStartListener) {
+            doSetProperty("asyncStartListener", asyncStartListener);
+            return this;
+        }
+    
+        
+        /**
+         * Whether to stop the JmsConsumer message listener asynchronously, when
+         * stopping a route.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param asyncStopListener the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder asyncStopListener(boolean asyncStopListener) {
+            doSetProperty("asyncStopListener", asyncStopListener);
+            return this;
+        }
+    
+        
+        /**
+         * Whether autowiring is enabled. This is used for automatic autowiring
+         * options (the option must be marked as autowired) by looking up in the
+         * registry to find if there is a single instance of matching type,
+         * which then gets configured on the component. This can be used for
+         * automatic configuring JDBC data sources, JMS connection factories,
+         * AWS Clients, etc.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param autowiredEnabled the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder autowiredEnabled(boolean autowiredEnabled) {
+            doSetProperty("autowiredEnabled", autowiredEnabled);
+            return this;
+        }
+    
+        /**
+         * To use a shared JMS configuration.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.component.jms.JmsConfiguration&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param configuration the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder configuration(org.apache.camel.component.jms.JmsConfiguration configuration) {
+            doSetProperty("configuration", configuration);
+            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:
+         * &lt;code&gt;org.springframework.jms.support.destination.DestinationResolver&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param destinationResolver the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder destinationResolver(org.springframework.jms.support.destination.DestinationResolver destinationResolver) {
+            doSetProperty("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:
+         * &lt;code&gt;org.springframework.util.ErrorHandler&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param errorHandler the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder errorHandler(org.springframework.util.ErrorHandler errorHandler) {
+            doSetProperty("errorHandler", errorHandler);
+            return this;
+        }
+    
+        /**
+         * Specifies the JMS Exception Listener that is to be notified of any
+         * underlying JMS exceptions.
+         * 
+         * The option is a:
+         * &lt;code&gt;jakarta.jms.ExceptionListener&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param exceptionListener the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder exceptionListener(jakarta.jms.ExceptionListener exceptionListener) {
+            doSetProperty("exceptionListener", exceptionListener);
+            return this;
+        }
+    
+        
+        /**
+         * Specify the limit for the number of consumers that are allowed to be
+         * idle at any given time.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 1
+         * Group: advanced
+         * 
+         * @param idleConsumerLimit the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder idleConsumerLimit(int idleConsumerLimit) {
+            doSetProperty("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: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 1
+         * Group: advanced
+         * 
+         * @param idleTaskExecutionLimit the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder idleTaskExecutionLimit(int idleTaskExecutionLimit) {
+            doSetProperty("idleTaskExecutionLimit", idleTaskExecutionLimit);
+            return this;
+        }
+    
+        
+        /**
+         * Whether to include all JMSX prefixed 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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param includeAllJMSXProperties the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder includeAllJMSXProperties(boolean includeAllJMSXProperties) {
+            doSetProperty("includeAllJMSXProperties", includeAllJMSXProperties);
+            return this;
+        }
+    
+        
+        /**
+         * Whether the JMS consumer should include JMSCorrelationIDAsBytes as a
+         * header on the Camel Message.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param includeCorrelationIDAsBytes the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder includeCorrelationIDAsBytes(boolean includeCorrelationIDAsBytes) {
+            doSetProperty("includeCorrelationIDAsBytes", includeCorrelationIDAsBytes);
+            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:
+         * &lt;code&gt;org.apache.camel.component.jms.JmsKeyFormatStrategy&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param jmsKeyFormatStrategy the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder jmsKeyFormatStrategy(org.apache.camel.component.jms.JmsKeyFormatStrategy jmsKeyFormatStrategy) {
+            doSetProperty("jmsKeyFormatStrategy", jmsKeyFormatStrategy);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether Camel should auto map the received JMS message to a
+         * suited payload type, such as jakarta.jms.TextMessage to a String etc.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param mapJmsMessage the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder mapJmsMessage(boolean mapJmsMessage) {
+            doSetProperty("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: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: -1
+         * Group: advanced
+         * 
+         * @param maxMessagesPerTask the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder maxMessagesPerTask(int maxMessagesPerTask) {
+            doSetProperty("maxMessagesPerTask", maxMessagesPerTask);
+            return this;
+        }
+    
+        /**
+         * To use a custom Spring
+         * org.springframework.jms.support.converter.MessageConverter so you can
+         * be in control how to map to/from a jakarta.jms.Message.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.springframework.jms.support.converter.MessageConverter&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param messageConverter the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder messageConverter(org.springframework.jms.support.converter.MessageConverter messageConverter) {
+            doSetProperty("messageConverter", messageConverter);
+            return this;
+        }
+    
+        /**
+         * To use the given MessageCreatedStrategy which are invoked when Camel
+         * creates new instances of jakarta.jms.Message objects when Camel is
+         * sending a JMS message.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.component.jms.MessageCreatedStrategy&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param messageCreatedStrategy the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder messageCreatedStrategy(org.apache.camel.component.jms.MessageCreatedStrategy messageCreatedStrategy) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param messageIdEnabled the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder messageIdEnabled(boolean messageIdEnabled) {
+            doSetProperty("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:
+         * &lt;code&gt;org.apache.camel.component.jms.MessageListenerContainerFactory&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param messageListenerContainerFactory the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder messageListenerContainerFactory(org.apache.camel.component.jms.MessageListenerContainerFactory messageListenerContainerFactory) {
+            doSetProperty("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: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: advanced
+         * 
+         * @param messageTimestampEnabled the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder messageTimestampEnabled(boolean messageTimestampEnabled) {
+            doSetProperty("messageTimestampEnabled", messageTimestampEnabled);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether to inhibit the delivery of messages published by
+         * its own connection.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param pubSubNoLocal the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder pubSubNoLocal(boolean pubSubNoLocal) {
+            doSetProperty("pubSubNoLocal", pubSubNoLocal);
+            return this;
+        }
+    
+        /**
+         * To use a custom QueueBrowseStrategy when browsing queues.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.component.jms.QueueBrowseStrategy&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param queueBrowseStrategy the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder queueBrowseStrategy(org.apache.camel.component.jms.QueueBrowseStrategy queueBrowseStrategy) {
+            doSetProperty("queueBrowseStrategy", queueBrowseStrategy);
+            return this;
+        }
+    
+        
+        /**
+         * The timeout for receiving messages (in milliseconds).
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 1000
+         * Group: advanced
+         * 
+         * @param receiveTimeout the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder receiveTimeout(long receiveTimeout) {
+            doSetProperty("receiveTimeout", receiveTimeout);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies the interval between recovery attempts, i.e. when a
+         * connection is being refreshed, in milliseconds. The default is 5000
+         * ms, that is, 5 seconds.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 5000
+         * Group: advanced
+         * 
+         * @param recoveryInterval the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder recoveryInterval(long recoveryInterval) {
+            doSetProperty("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: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 1000
+         * Group: advanced
+         * 
+         * @param requestTimeoutCheckerInterval the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder requestTimeoutCheckerInterval(long requestTimeoutCheckerInterval) {
+            doSetProperty("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval);
+            return this;
+        }
+    
+        
+        /**
+         * Sets whether synchronous processing should be strictly used.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param synchronous the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder synchronous(boolean synchronous) {
+            doSetProperty("synchronous", synchronous);
+            return this;
+        }
+    
+        /**
+         * A pluggable TemporaryQueueResolver that allows you to use your own
+         * resolver for creating temporary queues (some messaging systems has
+         * special requirements for creating temporary queues).
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.component.jms.TemporaryQueueResolver&lt;/code&gt; type.
+         * 
+         * Group: advanced
+         * 
+         * @param temporaryQueueResolver the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder temporaryQueueResolver(org.apache.camel.component.jms.TemporaryQueueResolver temporaryQueueResolver) {
+            doSetProperty("temporaryQueueResolver", temporaryQueueResolver);
+            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 jakarta.jms.ObjectMessage. If the
+         * client is Camel, the returned Exception is rethrown. This allows you
+         * to use Camel JMS as a bridge in your routing - for example, using
+         * persistent queues to enable robust routing. Notice that if you also
+         * have transferExchange enabled, this option takes precedence. The
+         * caught exception is required to be serializable. The original
+         * Exception on the consumer side can be wrapped in an outer exception
+         * such as org.apache.camel.RuntimeCamelException when returned to the
+         * producer. Use this with caution as the data is using Java Object
+         * serialization and requires the received to be able to deserialize the
+         * data at Class level, which forces a strong coupling between the
+         * producers and consumer!.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param transferException the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder transferException(boolean transferException) {
+            doSetProperty("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. Use this with caution as the data is using Java
+         * Object serialization and requires the receiver to be able to
+         * deserialize the data at Class level, which forces a strong coupling
+         * between the producers and consumers having to use compatible Camel
+         * versions!.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param transferExchange the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder transferExchange(boolean transferExchange) {
+            doSetProperty("transferExchange", transferExchange);
+            return this;
+        }
+    
+        
+        /**
+         * Define if all Java packages are trusted or not (for Java object JMS
+         * message types). Notice its not recommended practice to send Java
+         * serialized objects over network. Setting this to true can expose
+         * security risks, so use this with care.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param trustAllPackages the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder trustAllPackages(boolean trustAllPackages) {
+            doSetProperty("trustAllPackages", trustAllPackages);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether JMSMessageID should always be used as
+         * JMSCorrelationID for InOut messages.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: advanced
+         * 
+         * @param useMessageIDAsCorrelationID the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder useMessageIDAsCorrelationID(boolean useMessageIDAsCorrelationID) {
+            doSetProperty("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: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 50
+         * Group: advanced
+         * 
+         * @param waitForProvisionCorrelationToBeUpdatedCounter the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder waitForProvisionCorrelationToBeUpdatedCounter(int waitForProvisionCorrelationToBeUpdatedCounter) {
+            doSetProperty("waitForProvisionCorrelationToBeUpdatedCounter", waitForProvisionCorrelationToBeUpdatedCounter);
+            return this;
+        }
+    
+        
+        /**
+         * Interval in millis to sleep each time while waiting for provisional
+         * correlation id to be updated.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 100
+         * Group: advanced
+         * 
+         * @param waitForProvisionCorrelationToBeUpdatedThreadSleepingTime the
+         * value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(long waitForProvisionCorrelationToBeUpdatedThreadSleepingTime) {
+            doSetProperty("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime", waitForProvisionCorrelationToBeUpdatedThreadSleepingTime);
+            return this;
+        }
+    
+        
+        /**
+         * Number of times to wait for temporary replyTo queue to be created and
+         * ready when doing request/reply over JMS.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: 200
+         * Group: advanced
+         * 
+         * @param waitForTemporaryReplyToToBeUpdatedCounter the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder waitForTemporaryReplyToToBeUpdatedCounter(int waitForTemporaryReplyToToBeUpdatedCounter) {
+            doSetProperty("waitForTemporaryReplyToToBeUpdatedCounter", waitForTemporaryReplyToToBeUpdatedCounter);
+            return this;
+        }
+    
+        
+        /**
+         * Interval in millis to sleep each time while waiting for temporary
+         * replyTo queue to be ready.
+         * 
+         * The option is a: &lt;code&gt;long&lt;/code&gt; type.
+         * 
+         * Default: 100
+         * Group: advanced
+         * 
+         * @param waitForTemporaryReplyToToBeUpdatedThreadSleepingTime the value
+         * to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder waitForTemporaryReplyToToBeUpdatedThreadSleepingTime(long waitForTemporaryReplyToToBeUpdatedThreadSleepingTime) {
+            doSetProperty("waitForTemporaryReplyToToBeUpdatedThreadSleepingTime", waitForTemporaryReplyToToBeUpdatedThreadSleepingTime);
+            return this;
+        }
+    
+        /**
+         * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
+         * header to and from Camel message.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.spi.HeaderFilterStrategy&lt;/code&gt;
+         * type.
+         * 
+         * Group: filter
+         * 
+         * @param headerFilterStrategy the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder headerFilterStrategy(org.apache.camel.spi.HeaderFilterStrategy headerFilterStrategy) {
+            doSetProperty("headerFilterStrategy", headerFilterStrategy);
+            return this;
+        }
+    
+        
+        /**
+         * Allows to configure the default errorHandler logging level for
+         * logging uncaught exceptions.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.apache.camel.LoggingLevel&lt;/code&gt; type.
+         * 
+         * Default: WARN
+         * Group: logging
+         * 
+         * @param errorHandlerLoggingLevel the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder errorHandlerLoggingLevel(org.apache.camel.LoggingLevel errorHandlerLoggingLevel) {
+            doSetProperty("errorHandlerLoggingLevel", errorHandlerLoggingLevel);
+            return this;
+        }
+    
+        
+        /**
+         * Allows to control whether stack-traces should be logged or not, by
+         * the default errorHandler.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: logging
+         * 
+         * @param errorHandlerLogStackTrace the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder errorHandlerLogStackTrace(boolean errorHandlerLogStackTrace) {
+            doSetProperty("errorHandlerLogStackTrace", errorHandlerLogStackTrace);
+            return this;
+        }
+    
+        /**
+         * Password to use with the ConnectionFactory. You can also configure
+         * username/password directly on the ConnectionFactory.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param password the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder password(java.lang.String password) {
+            doSetProperty("password", password);
+            return this;
+        }
+    
+        /**
+         * Username to use with the ConnectionFactory. You can also configure
+         * username/password directly on the ConnectionFactory.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: security
+         * 
+         * @param username the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder username(java.lang.String username) {
+            doSetProperty("username", username);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether to use transacted mode.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: transaction
+         * 
+         * @param transacted the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder transacted(boolean transacted) {
+            doSetProperty("transacted", transacted);
+            return this;
+        }
+    
+        
+        /**
+         * Specifies whether InOut operations (request reply) default to using
+         * transacted mode If this flag is set to true, then Spring JmsTemplate
+         * will have sessionTransacted set to true, and the acknowledgeMode as
+         * transacted on the JmsTemplate used for InOut operations. Note from
+         * Spring JMS: that within a JTA transaction, the parameters passed to
+         * createQueue, createTopic methods are not taken into account.
+         * Depending on the Java EE transaction context, the container makes its
+         * own decisions on these values. Analogously, these parameters are not
+         * taken into account within a locally managed transaction either, since
+         * Spring JMS operates on an existing JMS Session in this case. Setting
+         * this flag to true will use a short local JMS transaction when running
+         * outside of a managed transaction, and a synchronized local JMS
+         * transaction in case of a managed transaction (other than an XA
+         * transaction) being present. This has the effect of a local JMS
+         * transaction being managed alongside the main transaction (which might
+         * be a native JDBC transaction), with the JMS transaction committing
+         * right after the main transaction.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: false
+         * Group: transaction
+         * 
+         * @param transactedInOut the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder transactedInOut(boolean transactedInOut) {
+            doSetProperty("transactedInOut", transactedInOut);
+            return this;
+        }
+    
+        
+        /**
+         * If true, Camel will create a JmsTransactionManager, if there is no
+         * transactionManager injected when option transacted=true.
+         * 
+         * The option is a: &lt;code&gt;boolean&lt;/code&gt; type.
+         * 
+         * Default: true
+         * Group: transaction (advanced)
+         * 
+         * @param lazyCreateTransactionManager the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder lazyCreateTransactionManager(boolean lazyCreateTransactionManager) {
+            doSetProperty("lazyCreateTransactionManager", lazyCreateTransactionManager);
+            return this;
+        }
+    
+        /**
+         * The Spring transaction manager to use.
+         * 
+         * The option is a:
+         * &lt;code&gt;org.springframework.transaction.PlatformTransactionManager&lt;/code&gt; type.
+         * 
+         * Group: transaction (advanced)
+         * 
+         * @param transactionManager the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder transactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager) {
+            doSetProperty("transactionManager", transactionManager);
+            return this;
+        }
+    
+        /**
+         * The name of the transaction to use.
+         * 
+         * The option is a: &lt;code&gt;java.lang.String&lt;/code&gt; type.
+         * 
+         * Group: transaction (advanced)
+         * 
+         * @param transactionName the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder transactionName(java.lang.String transactionName) {
+            doSetProperty("transactionName", transactionName);
+            return this;
+        }
+    
+        
+        /**
+         * The timeout value of the transaction (in seconds), if using
+         * transacted mode.
+         * 
+         * The option is a: &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Default: -1
+         * Group: transaction (advanced)
+         * 
+         * @param transactionTimeout the value to set
+         * @return the dsl builder
+         */
+        default Activemq6ComponentBuilder transactionTimeout(int transactionTimeout) {
+            doSetProperty("transactionTimeout", transactionTimeout);
+            return this;
+        }
+    }
+
+    class Activemq6ComponentBuilderImpl
+            extends AbstractComponentBuilder<ActiveMQComponent>
+            implements Activemq6ComponentBuilder {
+        @Override
+        protected ActiveMQComponent buildConcreteComponent() {
+            return new ActiveMQComponent();
+        }
+        private org.apache.camel.component.jms.JmsConfiguration getOrCreateConfiguration(ActiveMQComponent component) {
+            if (component.getConfiguration() == null) {
+                component.setConfiguration(new org.apache.camel.component.jms.JmsConfiguration());
+            }
+            return component.getConfiguration();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "brokerURL": ((ActiveMQComponent) component).setBrokerURL((java.lang.String) value); return true;
+            case "clientId": getOrCreateConfiguration((ActiveMQComponent) component).setClientId((java.lang.String) value); return true;
+            case "connectionFactory": getOrCreateConfiguration((ActiveMQComponent) component).setConnectionFactory((jakarta.jms.ConnectionFactory) value); return true;
+            case "disableReplyTo": getOrCreateConfiguration((ActiveMQComponent) component).setDisableReplyTo((boolean) value); return true;
+            case "durableSubscriptionName": getOrCreateConfiguration((ActiveMQComponent) component).setDurableSubscriptionName((java.lang.String) value); return true;
+            case "embedded": ((ActiveMQComponent) component).setEmbedded((boolean) value); return true;
+            case "jmsMessageType": getOrCreateConfiguration((ActiveMQComponent) component).setJmsMessageType((org.apache.camel.component.jms.JmsMessageType) value); return true;
+            case "replyTo": getOrCreateConfiguration((ActiveMQComponent) component).setReplyTo((java.lang.String) value); return true;
+            case "testConnectionOnStartup": getOrCreateConfiguration((ActiveMQComponent) component).setTestConnectionOnStartup((boolean) value); return true;
+            case "usePooledConnection": ((ActiveMQComponent) component).setUsePooledConnection((boolean) value); return true;
+            case "useSingleConnection": ((ActiveMQComponent) component).setUseSingleConnection((boolean) value); return true;
+            case "acknowledgementModeName": getOrCreateConfiguration((ActiveMQComponent) component).setAcknowledgementModeName((java.lang.String) value); return true;
+            case "artemisConsumerPriority": getOrCreateConfiguration((ActiveMQComponent) component).setArtemisConsumerPriority((int) value); return true;
+            case "asyncConsumer": getOrCreateConfiguration((ActiveMQComponent) component).setAsyncConsumer((boolean) value); return true;
+            case "autoStartup": getOrCreateConfiguration((ActiveMQComponent) component).setAutoStartup((boolean) value); return true;
+            case "cacheLevel": getOrCreateConfiguration((ActiveMQComponent) component).setCacheLevel((int) value); return true;
+            case "cacheLevelName": getOrCreateConfiguration((ActiveMQComponent) component).setCacheLevelName((java.lang.String) value); return true;
+            case "concurrentConsumers": getOrCreateConfiguration((ActiveMQComponent) component).setConcurrentConsumers((int) value); return true;
+            case "maxConcurrentConsumers": getOrCreateConfiguration((ActiveMQComponent) component).setMaxConcurrentConsumers((int) value); return true;
+            case "replyToDeliveryPersistent": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToDeliveryPersistent((boolean) value); return true;
+            case "selector": getOrCreateConfiguration((ActiveMQComponent) component).setSelector((java.lang.String) value); return true;
+            case "subscriptionDurable": getOrCreateConfiguration((ActiveMQComponent) component).setSubscriptionDurable((boolean) value); return true;
+            case "subscriptionName": getOrCreateConfiguration((ActiveMQComponent) component).setSubscriptionName((java.lang.String) value); return true;
+            case "subscriptionShared": getOrCreateConfiguration((ActiveMQComponent) component).setSubscriptionShared((boolean) value); return true;
+            case "acceptMessagesWhileStopping": getOrCreateConfiguration((ActiveMQComponent) component).setAcceptMessagesWhileStopping((boolean) value); return true;
+            case "allowReplyManagerQuickStop": getOrCreateConfiguration((ActiveMQComponent) component).setAllowReplyManagerQuickStop((boolean) value); return true;
+            case "consumerType": getOrCreateConfiguration((ActiveMQComponent) component).setConsumerType((org.apache.camel.component.jms.ConsumerType) value); return true;
+            case "defaultTaskExecutorType": getOrCreateConfiguration((ActiveMQComponent) component).setDefaultTaskExecutorType((org.apache.camel.component.jms.DefaultTaskExecutorType) value); return true;
+            case "eagerLoadingOfProperties": getOrCreateConfiguration((ActiveMQComponent) component).setEagerLoadingOfProperties((boolean) value); return true;
+            case "eagerPoisonBody": getOrCreateConfiguration((ActiveMQComponent) component).setEagerPoisonBody((java.lang.String) value); return true;
+            case "exposeListenerSession": getOrCreateConfiguration((ActiveMQComponent) component).setExposeListenerSession((boolean) value); return true;
+            case "replyToConsumerType": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToConsumerType((org.apache.camel.component.jms.ConsumerType) value); return true;
+            case "replyToSameDestinationAllowed": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToSameDestinationAllowed((boolean) value); return true;
+            case "taskExecutor": getOrCreateConfiguration((ActiveMQComponent) component).setTaskExecutor((org.springframework.core.task.TaskExecutor) value); return true;
+            case "deliveryDelay": getOrCreateConfiguration((ActiveMQComponent) component).setDeliveryDelay((long) value); return true;
+            case "deliveryMode": getOrCreateConfiguration((ActiveMQComponent) component).setDeliveryMode((java.lang.Integer) value); return true;
+            case "deliveryPersistent": getOrCreateConfiguration((ActiveMQComponent) component).setDeliveryPersistent((boolean) value); return true;
+            case "explicitQosEnabled": getOrCreateConfiguration((ActiveMQComponent) component).setExplicitQosEnabled((java.lang.Boolean) value); return true;
+            case "formatDateHeadersToIso8601": getOrCreateConfiguration((ActiveMQComponent) component).setFormatDateHeadersToIso8601((boolean) value); return true;
+            case "lazyStartProducer": ((ActiveMQComponent) component).setLazyStartProducer((boolean) value); return true;
+            case "preserveMessageQos": getOrCreateConfiguration((ActiveMQComponent) component).setPreserveMessageQos((boolean) value); return true;
+            case "priority": getOrCreateConfiguration((ActiveMQComponent) component).setPriority((int) value); return true;
+            case "replyToConcurrentConsumers": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToConcurrentConsumers((int) value); return true;
+            case "replyToMaxConcurrentConsumers": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToMaxConcurrentConsumers((int) value); return true;
+            case "replyToOnTimeoutMaxConcurrentConsumers": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToOnTimeoutMaxConcurrentConsumers((int) value); return true;
+            case "replyToOverride": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToOverride((java.lang.String) value); return true;
+            case "replyToType": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToType((org.apache.camel.component.jms.ReplyToType) value); return true;
+            case "requestTimeout": getOrCreateConfiguration((ActiveMQComponent) component).setRequestTimeout((long) value); return true;
+            case "timeToLive": getOrCreateConfiguration((ActiveMQComponent) component).setTimeToLive((long) value); return true;
+            case "allowAdditionalHeaders": getOrCreateConfiguration((ActiveMQComponent) component).setAllowAdditionalHeaders((java.lang.String) value); return true;
+            case "allowNullBody": getOrCreateConfiguration((ActiveMQComponent) component).setAllowNullBody((boolean) value); return true;
+            case "alwaysCopyMessage": getOrCreateConfiguration((ActiveMQComponent) component).setAlwaysCopyMessage((boolean) value); return true;
+            case "correlationProperty": getOrCreateConfiguration((ActiveMQComponent) component).setCorrelationProperty((java.lang.String) value); return true;
+            case "disableTimeToLive": getOrCreateConfiguration((ActiveMQComponent) component).setDisableTimeToLive((boolean) value); return true;
+            case "forceSendOriginalMessage": getOrCreateConfiguration((ActiveMQComponent) component).setForceSendOriginalMessage((boolean) value); return true;
+            case "includeSentJMSMessageID": getOrCreateConfiguration((ActiveMQComponent) component).setIncludeSentJMSMessageID((boolean) value); return true;
+            case "replyToCacheLevelName": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToCacheLevelName((java.lang.String) value); return true;
+            case "replyToDestinationSelectorName": getOrCreateConfiguration((ActiveMQComponent) component).setReplyToDestinationSelectorName((java.lang.String) value); return true;
+            case "streamMessageTypeEnabled": getOrCreateConfiguration((ActiveMQComponent) component).setStreamMessageTypeEnabled((boolean) value); return true;
+            case "allowAutoWiredConnectionFactory": ((ActiveMQComponent) component).setAllowAutoWiredConnectionFactory((boolean) value); return true;
+            case "allowAutoWiredDestinationResolver": ((ActiveMQComponent) component).setAllowAutoWiredDestinationResolver((boolean) value); return true;
+            case "allowSerializedHeaders": getOrCreateConfiguration((ActiveMQComponent) component).setAllowSerializedHeaders((boolean) value); return true;
+            case "artemisStreamingEnabled": getOrCreateConfiguration((ActiveMQComponent) component).setArtemisStreamingEnabled((boolean) value); return true;
+            case "asyncStartListener": getOrCreateConfiguration((ActiveMQComponent) component).setAsyncStartListener((boolean) value); return true;
+            case "asyncStopListener": getOrCreateConfiguration((ActiveMQComponent) component).setAsyncStopListener((boolean) value); return true;
+            case "autowiredEnabled": ((ActiveMQComponent) component).setAutowiredEnabled((boolean) value); return true;
+            case "configuration": ((ActiveMQComponent) component).setConfiguration((org.apache.camel.component.jms.JmsConfiguration) value); return true;
+            case "destinationResolver": getOrCreateConfiguration((ActiveMQComponent) component).setDestinationResolver((org.springframework.jms.support.destination.DestinationResolver) value); return true;
+            case "errorHandler": getOrCreateConfiguration((ActiveMQComponent) component).setErrorHandler((org.springframework.util.ErrorHandler) value); return true;
+            case "exceptionListener": getOrCreateConfiguration((ActiveMQComponent) component).setExceptionListener((jakarta.jms.ExceptionListener) value); return true;
+            case "idleConsumerLimit": getOrCreateConfiguration((ActiveMQComponent) component).setIdleConsumerLimit((int) value); return true;
+            case "idleTaskExecutionLimit": getOrCreateConfiguration((ActiveMQComponent) component).setIdleTaskExecutionLimit((int) value); return true;
+            case "includeAllJMSXProperties": getOrCreateConfiguration((ActiveMQComponent) component).setIncludeAllJMSXProperties((boolean) value); return true;
+            case "includeCorrelationIDAsBytes": ((ActiveMQComponent) component).setIncludeCorrelationIDAsBytes((boolean) value); return true;
+            case "jmsKeyFormatStrategy": getOrCreateConfiguration((ActiveMQComponent) component).setJmsKeyFormatStrategy((org.apache.camel.component.jms.JmsKeyFormatStrategy) value); return true;
+            case "mapJmsMessage": getOrCreateConfiguration((ActiveMQComponent) component).setMapJmsMessage((boolean) value); return true;
+            case "maxMessagesPerTask": getOrCreateConfiguration((ActiveMQComponent) component).setMaxMessagesPerTask((int) value); return true;
+            case "messageConverter": getOrCreateConfiguration((ActiveMQComponent) component).setMessageConverter((org.springframework.jms.support.converter.MessageConverter) value); return true;
+            case "messageCreatedStrategy": getOrCreateConfiguration((ActiveMQComponent) component).setMessageCreatedStrategy((org.apache.camel.component.jms.MessageCreatedStrategy) value); return true;
+            case "messageIdEnabled": getOrCreateConfiguration((ActiveMQComponent) component).setMessageIdEnabled((boolean) value); return true;
+            case "messageListenerContainerFactory": getOrCreateConfiguration((ActiveMQComponent) component).setMessageListenerContainerFactory((org.apache.camel.component.jms.MessageListenerContainerFactory) value); return true;
+            case "messageTimestampEnabled": getOrCreateConfiguration((ActiveMQComponent) component).setMessageTimestampEnabled((boolean) value); return true;
+            case "pubSubNoLocal": getOrCreateConfiguration((ActiveMQComponent) component).setPubSubNoLocal((boolean) value); return true;
+            case "queueBrowseStrategy": ((ActiveMQComponent) component).setQueueBrowseStrategy((org.apache.camel.component.jms.QueueBrowseStrategy) value); return true;
+            case "receiveTimeout": getOrCreateConfiguration((ActiveMQComponent) component).setReceiveTimeout((long) value); return true;
+            case "recoveryInterval": getOrCreateConfiguration((ActiveMQComponent) component).setRecoveryInterval((long) value); return true;
+            case "requestTimeoutCheckerInterval": getOrCreateConfiguration((ActiveMQComponent) component).setRequestTimeoutCheckerInterval((long) value); return true;
+            case "synchronous": getOrCreateConfiguration((ActiveMQComponent) component).setSynchronous((boolean) value); return true;
+            case "temporaryQueueResolver": getOrCreateConfiguration((ActiveMQComponent) component).setTemporaryQueueResolver((org.apache.camel.component.jms.TemporaryQueueResolver) value); return true;
+            case "transferException": getOrCreateConfiguration((ActiveMQComponent) component).setTransferException((boolean) value); return true;
+            case "transferExchange": getOrCreateConfiguration((ActiveMQComponent) component).setTransferExchange((boolean) value); return true;
+            case "trustAllPackages": ((ActiveMQComponent) component).setTrustAllPackages((boolean) value); return true;
+            case "useMessageIDAsCorrelationID": getOrCreateConfiguration((ActiveMQComponent) component).setUseMessageIDAsCorrelationID((boolean) value); return true;
+            case "waitForProvisionCorrelationToBeUpdatedCounter": getOrCreateConfiguration((ActiveMQComponent) component).setWaitForProvisionCorrelationToBeUpdatedCounter((int) value); return true;
+            case "waitForProvisionCorrelationToBeUpdatedThreadSleepingTime": getOrCreateConfiguration((ActiveMQComponent) component).setWaitForProvisionCorrelationToBeUpdatedThreadSleepingTime((long) value); return true;
+            case "waitForTemporaryReplyToToBeUpdatedCounter": getOrCreateConfiguration((ActiveMQComponent) component).setWaitForTemporaryReplyToToBeUpdatedCounter((int) value); return true;
+            case "waitForTemporaryReplyToToBeUpdatedThreadSleepingTime": getOrCreateConfiguration((ActiveMQComponent) component).setWaitForTemporaryReplyToToBeUpdatedThreadSleepingTime((long) value); return true;
+            case "headerFilterStrategy": ((ActiveMQComponent) component).setHeaderFilterStrategy((org.apache.camel.spi.HeaderFilterStrategy) value); return true;
+            case "errorHandlerLoggingLevel": getOrCreateConfiguration((ActiveMQComponent) component).setErrorHandlerLoggingLevel((org.apache.camel.LoggingLevel) value); return true;
+            case "errorHandlerLogStackTrace": getOrCreateConfiguration((ActiveMQComponent) component).setErrorHandlerLogStackTrace((boolean) value); return true;
+            case "password": getOrCreateConfiguration((ActiveMQComponent) component).setPassword((java.lang.String) value); return true;
+            case "username": getOrCreateConfiguration((ActiveMQComponent) component).setUsername((java.lang.String) value); return true;
+            case "transacted": getOrCreateConfiguration((ActiveMQComponent) component).setTransacted((boolean) value); return true;
+            case "transactedInOut": getOrCreateConfiguration((ActiveMQComponent) component).setTransactedInOut((boolean) value); return true;
+            case "lazyCreateTransactionManager": getOrCreateConfiguration((ActiveMQComponent) component).setLazyCreateTransactionManager((boolean) value); return true;
+            case "transactionManager": getOrCreateConfiguration((ActiveMQComponent) component).setTransactionManager((org.springframework.transaction.PlatformTransactionManager) value); return true;
+            case "transactionName": getOrCreateConfiguration((ActiveMQComponent) component).setTransactionName((java.lang.String) value); return true;
+            case "transactionTimeout": getOrCreateConfiguration((ActiveMQComponent) component).setTransactionTimeout((int) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ActivemqComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ActivemqComponentBuilderFactory.java
index 50310db..691ba6e 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ActivemqComponentBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/ActivemqComponentBuilderFactory.java
@@ -24,8 +24,8 @@
 import org.apache.camel.component.activemq.ActiveMQComponent;
 
 /**
- * Send messages to (or consume from) Apache ActiveMQ. This component extends
- * the Camel JMS component.
+ * Send messages to (or consume from) Apache ActiveMQ 5.x. This component
+ * extends the Camel JMS component.
  * 
  * Generated by camel build tools - do NOT edit this file!
  */
@@ -33,8 +33,8 @@
 public interface ActivemqComponentBuilderFactory {
 
     /**
-     * ActiveMQ (camel-activemq)
-     * Send messages to (or consume from) Apache ActiveMQ. This component
+     * ActiveMQ 5.x (camel-activemq)
+     * Send messages to (or consume from) Apache ActiveMQ 5.x. This component
      * extends the Camel JMS component.
      * 
      * Category: messaging
@@ -48,7 +48,7 @@
     }
 
     /**
-     * Builder for the ActiveMQ component.
+     * Builder for the ActiveMQ 5.x component.
      */
     interface ActivemqComponentBuilder extends ComponentBuilder<ActiveMQComponent> {
     
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index e4f4a5b..a4f4808 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -27,8 +27,8 @@
 public class StaticEndpointBuilders {
 
     /**
-     * ActiveMQ (camel-activemq)
-     * Send messages to (or consume from) Apache ActiveMQ. This component
+     * ActiveMQ 5.x (camel-activemq)
+     * Send messages to (or consume from) Apache ActiveMQ 5.x. This component
      * extends the Camel JMS component.
      * 
      * Category: messaging
@@ -53,8 +53,8 @@
         return activemq("activemq", path);
     }
     /**
-     * ActiveMQ (camel-activemq)
-     * Send messages to (or consume from) Apache ActiveMQ. This component
+     * ActiveMQ 5.x (camel-activemq)
+     * Send messages to (or consume from) Apache ActiveMQ 5.x. This component
      * extends the Camel JMS component.
      * 
      * Category: messaging
@@ -81,6 +81,60 @@
         return ActiveMQEndpointBuilderFactory.endpointBuilder(componentName, path);
     }
     /**
+     * ActiveMQ 6.x (camel-activemq6)
+     * Send messages to (or consume from) Apache ActiveMQ 6.x. This component
+     * extends the Camel JMS component.
+     * 
+     * Category: messaging
+     * Since: 4.7
+     * Maven coordinates: org.apache.camel:camel-activemq6
+     * 
+     * Syntax: <code>activemq6:destinationType:destinationName</code>
+     * 
+     * Path parameter: destinationType
+     * The kind of destination to use
+     * Default value: queue
+     * There are 4 enums and the value can be one of: queue, topic, temp-queue,
+     * temp-topic
+     * 
+     * Path parameter: destinationName (required)
+     * Name of the queue or topic to use as destination
+     * 
+     * @param path destinationType:destinationName
+     * @return the dsl builder
+     */
+    public static ActiveMQEndpointBuilderFactory.ActiveMQEndpointBuilder activemq6(String path) {
+        return activemq6("activemq6", path);
+    }
+    /**
+     * ActiveMQ 6.x (camel-activemq6)
+     * Send messages to (or consume from) Apache ActiveMQ 6.x. This component
+     * extends the Camel JMS component.
+     * 
+     * Category: messaging
+     * Since: 4.7
+     * Maven coordinates: org.apache.camel:camel-activemq6
+     * 
+     * Syntax: <code>activemq6:destinationType:destinationName</code>
+     * 
+     * Path parameter: destinationType
+     * The kind of destination to use
+     * Default value: queue
+     * There are 4 enums and the value can be one of: queue, topic, temp-queue,
+     * temp-topic
+     * 
+     * Path parameter: destinationName (required)
+     * Name of the queue or topic to use as destination
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path destinationType:destinationName
+     * @return the dsl builder
+     */
+    public static ActiveMQEndpointBuilderFactory.ActiveMQEndpointBuilder activemq6(String componentName, String path) {
+        return ActiveMQEndpointBuilderFactory.endpointBuilder(componentName, path);
+    }
+    /**
      * AMQP (camel-amqp)
      * Messaging with AMQP protocol using Apache QPid Client.
      * 
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java
index d7b8af1..2ad5b4d 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/ActiveMQEndpointBuilderFactory.java
@@ -27,8 +27,8 @@
 import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
 
 /**
- * Send messages to (or consume from) Apache ActiveMQ. This component extends
- * the Camel JMS component.
+ * Send messages to (or consume from) Apache ActiveMQ 5.x. This component
+ * extends the Camel JMS component.
  * 
  * Generated by camel build tools - do NOT edit this file!
  */
@@ -36,7 +36,7 @@
 public interface ActiveMQEndpointBuilderFactory {
 
     /**
-     * Builder for endpoint consumers for the ActiveMQ component.
+     * Builder for endpoint consumers for the ActiveMQ 5.x component.
      */
     public interface ActiveMQEndpointConsumerBuilder
             extends
@@ -857,7 +857,7 @@
     }
 
     /**
-     * Advanced builder for endpoint consumers for the ActiveMQ component.
+     * Advanced builder for endpoint consumers for the ActiveMQ 5.x component.
      */
     public interface AdvancedActiveMQEndpointConsumerBuilder
             extends
@@ -2649,7 +2649,7 @@
     }
 
     /**
-     * Builder for endpoint producers for the ActiveMQ component.
+     * Builder for endpoint producers for the ActiveMQ 5.x component.
      */
     public interface ActiveMQEndpointProducerBuilder
             extends
@@ -3462,7 +3462,7 @@
     }
 
     /**
-     * Advanced builder for endpoint producers for the ActiveMQ component.
+     * Advanced builder for endpoint producers for the ActiveMQ 5.x component.
      */
     public interface AdvancedActiveMQEndpointProducerBuilder extends EndpointProducerBuilder {
         default ActiveMQEndpointProducerBuilder basic() {
@@ -5103,7 +5103,7 @@
     }
 
     /**
-     * Builder for endpoint for the ActiveMQ component.
+     * Builder for endpoint for the ActiveMQ 5.x component.
      */
     public interface ActiveMQEndpointBuilder
             extends
@@ -5436,7 +5436,7 @@
     }
 
     /**
-     * Advanced builder for endpoint for the ActiveMQ component.
+     * Advanced builder for endpoint for the ActiveMQ 5.x component.
      */
     public interface AdvancedActiveMQEndpointBuilder
             extends
@@ -6729,9 +6729,9 @@
 
     public interface ActiveMQBuilders {
         /**
-         * ActiveMQ (camel-activemq)
-         * Send messages to (or consume from) Apache ActiveMQ. This component
-         * extends the Camel JMS component.
+         * ActiveMQ 5.x (camel-activemq)
+         * Send messages to (or consume from) Apache ActiveMQ 5.x. This
+         * component extends the Camel JMS component.
          * 
          * Category: messaging
          * Since: 1.0
@@ -6743,9 +6743,9 @@
             return ActiveMQHeaderNameBuilder.INSTANCE;
         }
         /**
-         * ActiveMQ (camel-activemq)
-         * Send messages to (or consume from) Apache ActiveMQ. This component
-         * extends the Camel JMS component.
+         * ActiveMQ 5.x (camel-activemq)
+         * Send messages to (or consume from) Apache ActiveMQ 5.x. This
+         * component extends the Camel JMS component.
          * 
          * Category: messaging
          * Since: 1.0
@@ -6769,9 +6769,9 @@
             return ActiveMQEndpointBuilderFactory.endpointBuilder("activemq", path);
         }
         /**
-         * ActiveMQ (camel-activemq)
-         * Send messages to (or consume from) Apache ActiveMQ. This component
-         * extends the Camel JMS component.
+         * ActiveMQ 5.x (camel-activemq)
+         * Send messages to (or consume from) Apache ActiveMQ 5.x. This
+         * component extends the Camel JMS component.
          * 
          * Category: messaging
          * Since: 1.0
@@ -6799,7 +6799,7 @@
 
     }
     /**
-     * The builder of headers' name for the ActiveMQ component.
+     * The builder of headers' name for the ActiveMQ 5.x component.
      */
     public static class ActiveMQHeaderNameBuilder {
         /**
diff --git a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
index e15f859..9d682b5 100644
--- a/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
+++ b/dsl/camel-kamelet-main/src/generated/resources/camel-component-known-dependencies.properties
@@ -18,6 +18,7 @@
 org.apache.camel.FunctionGraphComponent=camel:huaweicloud-functiongraph
 org.apache.camel.coap.CoAPComponent=camel:coap
 org.apache.camel.component.activemq.ActiveMQComponent=camel:activemq
+org.apache.camel.component.activemq6.ActiveMQComponent=camel:activemq6
 org.apache.camel.component.amqp.AMQPComponent=camel:amqp
 org.apache.camel.component.arangodb.ArangoDbComponent=camel:arangodb
 org.apache.camel.component.as2.AS2Component=camel:as2
diff --git a/dsl/camel-kamelet-main/src/main/resources/camel-main-known-dependencies.properties b/dsl/camel-kamelet-main/src/main/resources/camel-main-known-dependencies.properties
index 4a0d9f6..0243764 100644
--- a/dsl/camel-kamelet-main/src/main/resources/camel-main-known-dependencies.properties
+++ b/dsl/camel-kamelet-main/src/main/resources/camel-main-known-dependencies.properties
@@ -35,6 +35,7 @@
 META-INF/services/org/apache/camel/cron/cron-service = camel:quartz
 META-INF/services/org/apache/camel/platform-http/jolokia = camel:camel-platform-http-jolokia
 org.apache.camel.component.activemq.ActiveMQComponent\:embedded\=true = org.apache.activemq:activemq-broker:5.18.4
+org.apache.camel.component.activemq6.ActiveMQComponent\:embedded\=true = org.apache.activemq:activemq-broker:6.1.2
 spring.datasource.url = org.springframework.boot:spring-boot-starter-jdbc:${spring-boot-version}
 quarkus.datasource.db-kind\=db2 = io.quarkus:quarkus-jdbc-db2:${quarkus-version}
 quarkus.datasource.db-kind\=derby = io.quarkus:quarkus-jdbc-derby:${quarkus-version}
diff --git a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/Activemq6UriDsl.kt b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/Activemq6UriDsl.kt
new file mode 100644
index 0000000..97b8e31
--- /dev/null
+++ b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/Activemq6UriDsl.kt
@@ -0,0 +1,1543 @@
+/*
+ * 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.kotlin.components
+
+import kotlin.Boolean
+import kotlin.Int
+import kotlin.String
+import kotlin.Unit
+import org.apache.camel.kotlin.CamelDslMarker
+import org.apache.camel.kotlin.UriDsl
+
+/**
+ * Send messages to (or consume from) Apache ActiveMQ 6.x. This component extends the Camel JMS
+ * component.
+ */
+public fun UriDsl.activemq6(i: Activemq6UriDsl.() -> Unit) {
+  Activemq6UriDsl(this).apply(i)
+}
+
+@CamelDslMarker
+public class Activemq6UriDsl(
+  it: UriDsl,
+) {
+  private val it: UriDsl
+
+  init {
+    this.it = it
+    this.it.component("activemq6")
+  }
+
+  private var destinationType: String = ""
+
+  private var destinationName: String = ""
+
+  /**
+   * The kind of destination to use
+   */
+  public fun destinationType(destinationType: String) {
+    this.destinationType = destinationType
+    it.url("$destinationType:$destinationName")
+  }
+
+  /**
+   * Name of the queue or topic to use as destination
+   */
+  public fun destinationName(destinationName: String) {
+    this.destinationName = destinationName
+    it.url("$destinationType:$destinationName")
+  }
+
+  /**
+   * 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 with JMS 1.1.
+   */
+  public fun clientId(clientId: String) {
+    it.property("clientId", clientId)
+  }
+
+  /**
+   * The connection factory to be use. A connection factory must be configured either on the
+   * component or endpoint.
+   */
+  public fun connectionFactory(connectionFactory: String) {
+    it.property("connectionFactory", connectionFactory)
+  }
+
+  /**
+   * 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.
+   */
+  public fun disableReplyTo(disableReplyTo: String) {
+    it.property("disableReplyTo", disableReplyTo)
+  }
+
+  /**
+   * Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send
+   * a reply back to the destination specified in the JMSReplyTo header. You can use this option if you
+   * want Camel to consume from a route and you do not want Camel to automatically send back a reply
+   * message because another component in your code handles the reply message. You can also use this
+   * option if you want to use Camel as a proxy between different message brokers and you want to route
+   * message from one system to another.
+   */
+  public fun disableReplyTo(disableReplyTo: Boolean) {
+    it.property("disableReplyTo", disableReplyTo.toString())
+  }
+
+  /**
+   * The durable subscriber name for specifying durable topic subscriptions. The clientId option
+   * must be configured as well.
+   */
+  public fun durableSubscriptionName(durableSubscriptionName: String) {
+    it.property("durableSubscriptionName", durableSubscriptionName)
+  }
+
+  /**
+   * Allows you to force the use of a specific jakarta.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.
+   */
+  public fun jmsMessageType(jmsMessageType: String) {
+    it.property("jmsMessageType", jmsMessageType)
+  }
+
+  /**
+   * Provides an explicit ReplyTo destination (overrides any incoming value of
+   * Message.getJMSReplyTo() in consumer).
+   */
+  public fun replyTo(replyTo: String) {
+    it.property("replyTo", replyTo)
+  }
+
+  /**
+   * Specifies whether to test the connection on startup. This ensures that when Camel starts that
+   * all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted
+   * then Camel throws an exception on startup. This ensures that Camel is not started with failed
+   * connections. The JMS producers is tested as well.
+   */
+  public fun testConnectionOnStartup(testConnectionOnStartup: String) {
+    it.property("testConnectionOnStartup", testConnectionOnStartup)
+  }
+
+  /**
+   * Specifies whether to test the connection on startup. This ensures that when Camel starts that
+   * all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted
+   * then Camel throws an exception on startup. This ensures that Camel is not started with failed
+   * connections. The JMS producers is tested as well.
+   */
+  public fun testConnectionOnStartup(testConnectionOnStartup: Boolean) {
+    it.property("testConnectionOnStartup", testConnectionOnStartup.toString())
+  }
+
+  /**
+   * The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE,
+   * AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE
+   */
+  public fun acknowledgementModeName(acknowledgementModeName: String) {
+    it.property("acknowledgementModeName", acknowledgementModeName)
+  }
+
+  /**
+   * Consumer priorities allow you to ensure that high priority consumers receive messages while
+   * they are active. Normally, active consumers connected to a queue receive messages from it in a
+   * round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if
+   * multiple active consumers exist with the same high priority. Messages will only going to lower
+   * priority consumers when the high priority consumers do not have credit available to consume the
+   * message, or those high priority consumers have declined to accept the message (for instance
+   * because it does not meet the criteria of any selectors associated with the consumer).
+   */
+  public fun artemisConsumerPriority(artemisConsumerPriority: String) {
+    it.property("artemisConsumerPriority", artemisConsumerPriority)
+  }
+
+  /**
+   * Consumer priorities allow you to ensure that high priority consumers receive messages while
+   * they are active. Normally, active consumers connected to a queue receive messages from it in a
+   * round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if
+   * multiple active consumers exist with the same high priority. Messages will only going to lower
+   * priority consumers when the high priority consumers do not have credit available to consume the
+   * message, or those high priority consumers have declined to accept the message (for instance
+   * because it does not meet the criteria of any selectors associated with the consumer).
+   */
+  public fun artemisConsumerPriority(artemisConsumerPriority: Int) {
+    it.property("artemisConsumerPriority", artemisConsumerPriority.toString())
+  }
+
+  /**
+   * 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).
+   */
+  public fun asyncConsumer(asyncConsumer: String) {
+    it.property("asyncConsumer", asyncConsumer)
+  }
+
+  /**
+   * Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer
+   * may pickup the next message from the JMS queue, while the previous message is being processed
+   * asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not
+   * 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the
+   * JmsConsumer will pickup the next message from the JMS queue. Note 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).
+   */
+  public fun asyncConsumer(asyncConsumer: Boolean) {
+    it.property("asyncConsumer", asyncConsumer.toString())
+  }
+
+  /**
+   * Specifies whether the consumer container should auto-startup.
+   */
+  public fun autoStartup(autoStartup: String) {
+    it.property("autoStartup", autoStartup)
+  }
+
+  /**
+   * Specifies whether the consumer container should auto-startup.
+   */
+  public fun autoStartup(autoStartup: Boolean) {
+    it.property("autoStartup", autoStartup.toString())
+  }
+
+  /**
+   * Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more
+   * details.
+   */
+  public fun cacheLevel(cacheLevel: String) {
+    it.property("cacheLevel", cacheLevel)
+  }
+
+  /**
+   * Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more
+   * details.
+   */
+  public fun cacheLevel(cacheLevel: Int) {
+    it.property("cacheLevel", cacheLevel.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun cacheLevelName(cacheLevelName: String) {
+    it.property("cacheLevelName", cacheLevelName)
+  }
+
+  /**
+   * Specifies the default number of concurrent consumers when consuming from JMS (not for
+   * request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down
+   * of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used
+   * to control number of concurrent consumers on the reply message listener.
+   */
+  public fun concurrentConsumers(concurrentConsumers: String) {
+    it.property("concurrentConsumers", concurrentConsumers)
+  }
+
+  /**
+   * Specifies the default number of concurrent consumers when consuming from JMS (not for
+   * request/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up/down
+   * of threads. When doing request/reply over JMS then the option replyToConcurrentConsumers is used
+   * to control number of concurrent consumers on the reply message listener.
+   */
+  public fun concurrentConsumers(concurrentConsumers: Int) {
+    it.property("concurrentConsumers", concurrentConsumers.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun maxConcurrentConsumers(maxConcurrentConsumers: String) {
+    it.property("maxConcurrentConsumers", maxConcurrentConsumers)
+  }
+
+  /**
+   * 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.
+   */
+  public fun maxConcurrentConsumers(maxConcurrentConsumers: Int) {
+    it.property("maxConcurrentConsumers", maxConcurrentConsumers.toString())
+  }
+
+  /**
+   * Specifies whether to use persistent delivery by default for replies.
+   */
+  public fun replyToDeliveryPersistent(replyToDeliveryPersistent: String) {
+    it.property("replyToDeliveryPersistent", replyToDeliveryPersistent)
+  }
+
+  /**
+   * Specifies whether to use persistent delivery by default for replies.
+   */
+  public fun replyToDeliveryPersistent(replyToDeliveryPersistent: Boolean) {
+    it.property("replyToDeliveryPersistent", replyToDeliveryPersistent.toString())
+  }
+
+  /**
+   * Sets the JMS selector to use
+   */
+  public fun selector(selector: String) {
+    it.property("selector", selector)
+  }
+
+  /**
+   * 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.
+   */
+  public fun subscriptionDurable(subscriptionDurable: String) {
+    it.property("subscriptionDurable", subscriptionDurable)
+  }
+
+  /**
+   * 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.
+   */
+  public fun subscriptionDurable(subscriptionDurable: Boolean) {
+    it.property("subscriptionDurable", subscriptionDurable.toString())
+  }
+
+  /**
+   * 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).
+   */
+  public fun subscriptionName(subscriptionName: String) {
+    it.property("subscriptionName", subscriptionName)
+  }
+
+  /**
+   * 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.
+   */
+  public fun subscriptionShared(subscriptionShared: String) {
+    it.property("subscriptionShared", subscriptionShared)
+  }
+
+  /**
+   * 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.
+   */
+  public fun subscriptionShared(subscriptionShared: Boolean) {
+    it.property("subscriptionShared", subscriptionShared.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun acceptMessagesWhileStopping(acceptMessagesWhileStopping: String) {
+    it.property("acceptMessagesWhileStopping", acceptMessagesWhileStopping)
+  }
+
+  /**
+   * 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.
+   */
+  public fun acceptMessagesWhileStopping(acceptMessagesWhileStopping: Boolean) {
+    it.property("acceptMessagesWhileStopping", acceptMessagesWhileStopping.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun allowReplyManagerQuickStop(allowReplyManagerQuickStop: String) {
+    it.property("allowReplyManagerQuickStop", allowReplyManagerQuickStop)
+  }
+
+  /**
+   * 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.
+   */
+  public fun allowReplyManagerQuickStop(allowReplyManagerQuickStop: Boolean) {
+    it.property("allowReplyManagerQuickStop", allowReplyManagerQuickStop.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun consumerType(consumerType: String) {
+    it.property("consumerType", consumerType)
+  }
+
+  /**
+   * 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 thread-pool-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.
+   */
+  public fun defaultTaskExecutorType(defaultTaskExecutorType: String) {
+    it.property("defaultTaskExecutorType", defaultTaskExecutorType)
+  }
+
+  /**
+   * Destination Options are a way to provide extended configuration options to a JMS consumer
+   * without having to extend the JMS API. The options are encoded using URL query syntax in the
+   * destination name that the consumer is created on. See more details at
+   * https://activemq.apache.org/destination-options.
+   */
+  public fun destinationOptions(destinationOptions: String) {
+    it.property("destinationOptions", destinationOptions)
+  }
+
+  /**
+   * Enables eager loading of JMS properties and payload as soon as a message is loaded which
+   * generally is inefficient as the JMS properties may not be required but sometimes can catch early
+   * any issues with the underlying JMS provider and the use of JMS properties. See also the option
+   * eagerPoisonBody.
+   */
+  public fun eagerLoadingOfProperties(eagerLoadingOfProperties: String) {
+    it.property("eagerLoadingOfProperties", eagerLoadingOfProperties)
+  }
+
+  /**
+   * Enables eager loading of JMS properties and payload as soon as a message is loaded which
+   * generally is inefficient as the JMS properties may not be required but sometimes can catch early
+   * any issues with the underlying JMS provider and the use of JMS properties. See also the option
+   * eagerPoisonBody.
+   */
+  public fun eagerLoadingOfProperties(eagerLoadingOfProperties: Boolean) {
+    it.property("eagerLoadingOfProperties", eagerLoadingOfProperties.toString())
+  }
+
+  /**
+   * If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties)
+   * is poison (cannot be read/mapped), then set this text as the message body instead so the message
+   * can be processed (the cause of the poison are already stored as exception on the Exchange). This
+   * can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.
+   */
+  public fun eagerPoisonBody(eagerPoisonBody: String) {
+    it.property("eagerPoisonBody", eagerPoisonBody)
+  }
+
+  /**
+   * To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is
+   * enabled then this option is not in use. By default the consumer will deal with exceptions, that
+   * will be logged at WARN or ERROR level and ignored.
+   */
+  public fun exceptionHandler(exceptionHandler: String) {
+    it.property("exceptionHandler", exceptionHandler)
+  }
+
+  /**
+   * Sets the exchange pattern when the consumer creates an exchange.
+   */
+  public fun exchangePattern(exchangePattern: String) {
+    it.property("exchangePattern", exchangePattern)
+  }
+
+  /**
+   * Specifies whether the listener session should be exposed when consuming messages.
+   */
+  public fun exposeListenerSession(exposeListenerSession: String) {
+    it.property("exposeListenerSession", exposeListenerSession)
+  }
+
+  /**
+   * Specifies whether the listener session should be exposed when consuming messages.
+   */
+  public fun exposeListenerSession(exposeListenerSession: Boolean) {
+    it.property("exposeListenerSession", exposeListenerSession.toString())
+  }
+
+  /**
+   * The consumer type of the reply consumer (when doing request/reply), 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.
+   */
+  public fun replyToConsumerType(replyToConsumerType: String) {
+    it.property("replyToConsumerType", replyToConsumerType)
+  }
+
+  /**
+   * Whether a JMS consumer is allowed to send a reply message to the same destination that the
+   * consumer is using to consume from. This prevents an endless loop by consuming and sending back the
+   * same message to itself.
+   */
+  public fun replyToSameDestinationAllowed(replyToSameDestinationAllowed: String) {
+    it.property("replyToSameDestinationAllowed", replyToSameDestinationAllowed)
+  }
+
+  /**
+   * Whether a JMS consumer is allowed to send a reply message to the same destination that the
+   * consumer is using to consume from. This prevents an endless loop by consuming and sending back the
+   * same message to itself.
+   */
+  public fun replyToSameDestinationAllowed(replyToSameDestinationAllowed: Boolean) {
+    it.property("replyToSameDestinationAllowed", replyToSameDestinationAllowed.toString())
+  }
+
+  /**
+   * Allows you to specify a custom task executor for consuming messages.
+   */
+  public fun taskExecutor(taskExecutor: String) {
+    it.property("taskExecutor", taskExecutor)
+  }
+
+  /**
+   * Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant
+   * broker.
+   */
+  public fun deliveryDelay(deliveryDelay: String) {
+    it.property("deliveryDelay", deliveryDelay)
+  }
+
+  /**
+   * Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant
+   * broker.
+   */
+  public fun deliveryDelay(deliveryDelay: Int) {
+    it.property("deliveryDelay", deliveryDelay.toString())
+  }
+
+  /**
+   * Specifies the delivery mode to be used. Possible values are those defined by
+   * jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.
+   */
+  public fun deliveryMode(deliveryMode: String) {
+    it.property("deliveryMode", deliveryMode)
+  }
+
+  /**
+   * Specifies the delivery mode to be used. Possible values are those defined by
+   * jakarta.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.
+   */
+  public fun deliveryMode(deliveryMode: Int) {
+    it.property("deliveryMode", deliveryMode.toString())
+  }
+
+  /**
+   * Specifies whether persistent delivery is used by default.
+   */
+  public fun deliveryPersistent(deliveryPersistent: String) {
+    it.property("deliveryPersistent", deliveryPersistent)
+  }
+
+  /**
+   * Specifies whether persistent delivery is used by default.
+   */
+  public fun deliveryPersistent(deliveryPersistent: Boolean) {
+    it.property("deliveryPersistent", deliveryPersistent.toString())
+  }
+
+  /**
+   * Set if the deliveryMode, priority or timeToLive qualities of service should be used when
+   * sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and
+   * timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos
+   * option, which operates at message granularity, reading QoS properties exclusively from the Camel
+   * In message headers.
+   */
+  public fun explicitQosEnabled(explicitQosEnabled: String) {
+    it.property("explicitQosEnabled", explicitQosEnabled)
+  }
+
+  /**
+   * Set if the deliveryMode, priority or timeToLive qualities of service should be used when
+   * sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and
+   * timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos
+   * option, which operates at message granularity, reading QoS properties exclusively from the Camel
+   * In message headers.
+   */
+  public fun explicitQosEnabled(explicitQosEnabled: Boolean) {
+    it.property("explicitQosEnabled", explicitQosEnabled.toString())
+  }
+
+  /**
+   * Sets whether JMS date properties should be formatted according to the ISO 8601 standard.
+   */
+  public fun formatDateHeadersToIso8601(formatDateHeadersToIso8601: String) {
+    it.property("formatDateHeadersToIso8601", formatDateHeadersToIso8601)
+  }
+
+  /**
+   * Sets whether JMS date properties should be formatted according to the ISO 8601 standard.
+   */
+  public fun formatDateHeadersToIso8601(formatDateHeadersToIso8601: Boolean) {
+    it.property("formatDateHeadersToIso8601", formatDateHeadersToIso8601.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun preserveMessageQos(preserveMessageQos: String) {
+    it.property("preserveMessageQos", preserveMessageQos)
+  }
+
+  /**
+   * Set to true, if you want to send message using the QoS settings specified on the message,
+   * instead of the QoS settings on the JMS endpoint. The following three headers are considered
+   * JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not
+   * provided, Camel will fall back to use the values from the endpoint instead. So, when using this
+   * option, the headers override the values from the endpoint. The explicitQosEnabled option, by
+   * contrast, will only use options set on the endpoint, and not values from the message header.
+   */
+  public fun preserveMessageQos(preserveMessageQos: Boolean) {
+    it.property("preserveMessageQos", preserveMessageQos.toString())
+  }
+
+  /**
+   * Values greater than 1 specify the message priority when sending (where 1 is the lowest priority
+   * and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option
+   * to have any effect.
+   */
+  public fun priority(priority: String) {
+    it.property("priority", priority)
+  }
+
+  /**
+   * Values greater than 1 specify the message priority when sending (where 1 is the lowest priority
+   * and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option
+   * to have any effect.
+   */
+  public fun priority(priority: Int) {
+    it.property("priority", priority.toString())
+  }
+
+  /**
+   * Specifies the default number of concurrent consumers when doing request/reply over JMS. See
+   * also the maxMessagesPerTask option to control dynamic scaling up/down of threads.
+   */
+  public fun replyToConcurrentConsumers(replyToConcurrentConsumers: String) {
+    it.property("replyToConcurrentConsumers", replyToConcurrentConsumers)
+  }
+
+  /**
+   * Specifies the default number of concurrent consumers when doing request/reply over JMS. See
+   * also the maxMessagesPerTask option to control dynamic scaling up/down of threads.
+   */
+  public fun replyToConcurrentConsumers(replyToConcurrentConsumers: Int) {
+    it.property("replyToConcurrentConsumers", replyToConcurrentConsumers.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun replyToMaxConcurrentConsumers(replyToMaxConcurrentConsumers: String) {
+    it.property("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers)
+  }
+
+  /**
+   * Specifies the maximum number of concurrent consumers when using request/reply over JMS. See
+   * also the maxMessagesPerTask option to control dynamic scaling up/down of threads.
+   */
+  public fun replyToMaxConcurrentConsumers(replyToMaxConcurrentConsumers: Int) {
+    it.property("replyToMaxConcurrentConsumers", replyToMaxConcurrentConsumers.toString())
+  }
+
+  /**
+   * Specifies the maximum number of concurrent consumers for continue routing when timeout occurred
+   * when using request/reply over JMS.
+   */
+  public
+      fun replyToOnTimeoutMaxConcurrentConsumers(replyToOnTimeoutMaxConcurrentConsumers: String) {
+    it.property("replyToOnTimeoutMaxConcurrentConsumers", replyToOnTimeoutMaxConcurrentConsumers)
+  }
+
+  /**
+   * Specifies the maximum number of concurrent consumers for continue routing when timeout occurred
+   * when using request/reply over JMS.
+   */
+  public fun replyToOnTimeoutMaxConcurrentConsumers(replyToOnTimeoutMaxConcurrentConsumers: Int) {
+    it.property("replyToOnTimeoutMaxConcurrentConsumers",
+        replyToOnTimeoutMaxConcurrentConsumers.toString())
+  }
+
+  /**
+   * Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of
+   * replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply
+   * message from the ReplyTo destination.
+   */
+  public fun replyToOverride(replyToOverride: String) {
+    it.property("replyToOverride", replyToOverride)
+  }
+
+  /**
+   * 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.
+   */
+  public fun replyToType(replyToType: String) {
+    it.property("replyToType", replyToType)
+  }
+
+  /**
+   * The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds).
+   * The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this
+   * endpoint configured timeout value, and thus have per message individual timeout values. See also
+   * the requestTimeoutCheckerInterval option.
+   */
+  public fun requestTimeout(requestTimeout: String) {
+    it.property("requestTimeout", requestTimeout)
+  }
+
+  /**
+   * When sending messages, specifies the time-to-live of the message (in milliseconds).
+   */
+  public fun timeToLive(timeToLive: String) {
+    it.property("timeToLive", timeToLive)
+  }
+
+  /**
+   * When sending messages, specifies the time-to-live of the message (in milliseconds).
+   */
+  public fun timeToLive(timeToLive: Int) {
+    it.property("timeToLive", timeToLive.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun allowAdditionalHeaders(allowAdditionalHeaders: String) {
+    it.property("allowAdditionalHeaders", allowAdditionalHeaders)
+  }
+
+  /**
+   * Whether to allow sending messages with no body. If this option is false and the message body is
+   * null, then an JMSException is thrown.
+   */
+  public fun allowNullBody(allowNullBody: String) {
+    it.property("allowNullBody", allowNullBody)
+  }
+
+  /**
+   * Whether to allow sending messages with no body. If this option is false and the message body is
+   * null, then an JMSException is thrown.
+   */
+  public fun allowNullBody(allowNullBody: Boolean) {
+    it.property("allowNullBody", allowNullBody.toString())
+  }
+
+  /**
+   * 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)
+   */
+  public fun alwaysCopyMessage(alwaysCopyMessage: String) {
+    it.property("alwaysCopyMessage", alwaysCopyMessage)
+  }
+
+  /**
+   * 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)
+   */
+  public fun alwaysCopyMessage(alwaysCopyMessage: Boolean) {
+    it.property("alwaysCopyMessage", alwaysCopyMessage.toString())
+  }
+
+  /**
+   * When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS
+   * property to correlate messages. If set messages will be correlated solely on the value of this
+   * property JMSCorrelationID property will be ignored and not set by Camel.
+   */
+  public fun correlationProperty(correlationProperty: String) {
+    it.property("correlationProperty", correlationProperty)
+  }
+
+  /**
+   * 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.
+   */
+  public fun disableTimeToLive(disableTimeToLive: String) {
+    it.property("disableTimeToLive", disableTimeToLive)
+  }
+
+  /**
+   * Use this option to force disabling time to live. For example when you do request/reply over
+   * JMS, then Camel will by default use the requestTimeout value as time to live on the message being
+   * sent. The problem is that the sender and receiver systems have to have their clocks synchronized,
+   * so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true
+   * to not set a time to live value on the sent message. Then the message will not expire on the
+   * receiver system. See below in section About time to live for more details.
+   */
+  public fun disableTimeToLive(disableTimeToLive: Boolean) {
+    it.property("disableTimeToLive", disableTimeToLive.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun forceSendOriginalMessage(forceSendOriginalMessage: String) {
+    it.property("forceSendOriginalMessage", forceSendOriginalMessage)
+  }
+
+  /**
+   * 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.
+   */
+  public fun forceSendOriginalMessage(forceSendOriginalMessage: Boolean) {
+    it.property("forceSendOriginalMessage", forceSendOriginalMessage.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun includeSentJMSMessageID(includeSentJMSMessageID: String) {
+    it.property("includeSentJMSMessageID", includeSentJMSMessageID)
+  }
+
+  /**
+   * 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.
+   */
+  public fun includeSentJMSMessageID(includeSentJMSMessageID: Boolean) {
+    it.property("includeSentJMSMessageID", includeSentJMSMessageID.toString())
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where a producer may otherwise
+   * fail during starting and cause the route to fail being started. By deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via Camel's routing error
+   * handlers. Beware that when the first message is processed then creating and starting the producer
+   * may take a little time and prolong the total processing time of the processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: String) {
+    it.property("lazyStartProducer", lazyStartProducer)
+  }
+
+  /**
+   * Whether the producer should be started lazy (on the first message). By starting lazy you can
+   * use this to allow CamelContext and routes to startup in situations where a producer may otherwise
+   * fail during starting and cause the route to fail being started. By deferring this startup to be
+   * lazy then the startup failure can be handled during routing messages via Camel's routing error
+   * handlers. Beware that when the first message is processed then creating and starting the producer
+   * may take a little time and prolong the total processing time of the processing.
+   */
+  public fun lazyStartProducer(lazyStartProducer: Boolean) {
+    it.property("lazyStartProducer", lazyStartProducer.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun replyToCacheLevelName(replyToCacheLevelName: String) {
+    it.property("replyToCacheLevelName", replyToCacheLevelName)
+  }
+
+  /**
+   * 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).
+   */
+  public fun replyToDestinationSelectorName(replyToDestinationSelectorName: String) {
+    it.property("replyToDestinationSelectorName", replyToDestinationSelectorName)
+  }
+
+  /**
+   * 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.
+   */
+  public fun streamMessageTypeEnabled(streamMessageTypeEnabled: String) {
+    it.property("streamMessageTypeEnabled", streamMessageTypeEnabled)
+  }
+
+  /**
+   * 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.
+   */
+  public fun streamMessageTypeEnabled(streamMessageTypeEnabled: Boolean) {
+    it.property("streamMessageTypeEnabled", streamMessageTypeEnabled.toString())
+  }
+
+  /**
+   * Controls whether or not to include serialized headers. Applies only when transferExchange is
+   * true. This requires that the objects are serializable. Camel will exclude any non-serializable
+   * objects and log it at WARN level.
+   */
+  public fun allowSerializedHeaders(allowSerializedHeaders: String) {
+    it.property("allowSerializedHeaders", allowSerializedHeaders)
+  }
+
+  /**
+   * Controls whether or not to include serialized headers. Applies only when transferExchange is
+   * true. This requires that the objects are serializable. Camel will exclude any non-serializable
+   * objects and log it at WARN level.
+   */
+  public fun allowSerializedHeaders(allowSerializedHeaders: Boolean) {
+    it.property("allowSerializedHeaders", allowSerializedHeaders.toString())
+  }
+
+  /**
+   * Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when
+   * using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is
+   * being used.
+   */
+  public fun artemisStreamingEnabled(artemisStreamingEnabled: String) {
+    it.property("artemisStreamingEnabled", artemisStreamingEnabled)
+  }
+
+  /**
+   * Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when
+   * using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is
+   * being used.
+   */
+  public fun artemisStreamingEnabled(artemisStreamingEnabled: Boolean) {
+    it.property("artemisStreamingEnabled", artemisStreamingEnabled.toString())
+  }
+
+  /**
+   * 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 fail-over. 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.
+   */
+  public fun asyncStartListener(asyncStartListener: String) {
+    it.property("asyncStartListener", asyncStartListener)
+  }
+
+  /**
+   * 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 fail-over. 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.
+   */
+  public fun asyncStartListener(asyncStartListener: Boolean) {
+    it.property("asyncStartListener", asyncStartListener.toString())
+  }
+
+  /**
+   * Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.
+   */
+  public fun asyncStopListener(asyncStopListener: String) {
+    it.property("asyncStopListener", asyncStopListener)
+  }
+
+  /**
+   * Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.
+   */
+  public fun asyncStopListener(asyncStopListener: Boolean) {
+    it.property("asyncStopListener", asyncStopListener.toString())
+  }
+
+  /**
+   * 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).
+   */
+  public fun destinationResolver(destinationResolver: String) {
+    it.property("destinationResolver", destinationResolver)
+  }
+
+  /**
+   * 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.
+   */
+  public fun errorHandler(errorHandler: String) {
+    it.property("errorHandler", errorHandler)
+  }
+
+  /**
+   * Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions.
+   */
+  public fun exceptionListener(exceptionListener: String) {
+    it.property("exceptionListener", exceptionListener)
+  }
+
+  /**
+   * To use a custom HeaderFilterStrategy to filter header to and from Camel message.
+   */
+  public fun headerFilterStrategy(headerFilterStrategy: String) {
+    it.property("headerFilterStrategy", headerFilterStrategy)
+  }
+
+  /**
+   * Specify the limit for the number of consumers that are allowed to be idle at any given time.
+   */
+  public fun idleConsumerLimit(idleConsumerLimit: String) {
+    it.property("idleConsumerLimit", idleConsumerLimit)
+  }
+
+  /**
+   * Specify the limit for the number of consumers that are allowed to be idle at any given time.
+   */
+  public fun idleConsumerLimit(idleConsumerLimit: Int) {
+    it.property("idleConsumerLimit", idleConsumerLimit.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun idleTaskExecutionLimit(idleTaskExecutionLimit: String) {
+    it.property("idleTaskExecutionLimit", idleTaskExecutionLimit)
+  }
+
+  /**
+   * 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.
+   */
+  public fun idleTaskExecutionLimit(idleTaskExecutionLimit: Int) {
+    it.property("idleTaskExecutionLimit", idleTaskExecutionLimit.toString())
+  }
+
+  /**
+   * Whether to include all JMSX prefixed 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.
+   */
+  public fun includeAllJMSXProperties(includeAllJMSXProperties: String) {
+    it.property("includeAllJMSXProperties", includeAllJMSXProperties)
+  }
+
+  /**
+   * Whether to include all JMSX prefixed 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.
+   */
+  public fun includeAllJMSXProperties(includeAllJMSXProperties: Boolean) {
+    it.property("includeAllJMSXProperties", includeAllJMSXProperties.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun jmsKeyFormatStrategy(jmsKeyFormatStrategy: String) {
+    it.property("jmsKeyFormatStrategy", jmsKeyFormatStrategy)
+  }
+
+  /**
+   * Specifies whether Camel should auto map the received JMS message to a suited payload type, such
+   * as jakarta.jms.TextMessage to a String etc.
+   */
+  public fun mapJmsMessage(mapJmsMessage: String) {
+    it.property("mapJmsMessage", mapJmsMessage)
+  }
+
+  /**
+   * Specifies whether Camel should auto map the received JMS message to a suited payload type, such
+   * as jakarta.jms.TextMessage to a String etc.
+   */
+  public fun mapJmsMessage(mapJmsMessage: Boolean) {
+    it.property("mapJmsMessage", mapJmsMessage.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun maxMessagesPerTask(maxMessagesPerTask: String) {
+    it.property("maxMessagesPerTask", maxMessagesPerTask)
+  }
+
+  /**
+   * 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.
+   */
+  public fun maxMessagesPerTask(maxMessagesPerTask: Int) {
+    it.property("maxMessagesPerTask", maxMessagesPerTask.toString())
+  }
+
+  /**
+   * To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be
+   * in control how to map to/from a jakarta.jms.Message.
+   */
+  public fun messageConverter(messageConverter: String) {
+    it.property("messageConverter", messageConverter)
+  }
+
+  /**
+   * To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of
+   * jakarta.jms.Message objects when Camel is sending a JMS message.
+   */
+  public fun messageCreatedStrategy(messageCreatedStrategy: String) {
+    it.property("messageCreatedStrategy", messageCreatedStrategy)
+  }
+
+  /**
+   * 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.
+   */
+  public fun messageIdEnabled(messageIdEnabled: String) {
+    it.property("messageIdEnabled", messageIdEnabled)
+  }
+
+  /**
+   * 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.
+   */
+  public fun messageIdEnabled(messageIdEnabled: Boolean) {
+    it.property("messageIdEnabled", messageIdEnabled.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public fun messageListenerContainerFactory(messageListenerContainerFactory: String) {
+    it.property("messageListenerContainerFactory", messageListenerContainerFactory)
+  }
+
+  /**
+   * 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.
+   */
+  public fun messageTimestampEnabled(messageTimestampEnabled: String) {
+    it.property("messageTimestampEnabled", messageTimestampEnabled)
+  }
+
+  /**
+   * 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.
+   */
+  public fun messageTimestampEnabled(messageTimestampEnabled: Boolean) {
+    it.property("messageTimestampEnabled", messageTimestampEnabled.toString())
+  }
+
+  /**
+   * Specifies whether to inhibit the delivery of messages published by its own connection.
+   */
+  public fun pubSubNoLocal(pubSubNoLocal: String) {
+    it.property("pubSubNoLocal", pubSubNoLocal)
+  }
+
+  /**
+   * Specifies whether to inhibit the delivery of messages published by its own connection.
+   */
+  public fun pubSubNoLocal(pubSubNoLocal: Boolean) {
+    it.property("pubSubNoLocal", pubSubNoLocal.toString())
+  }
+
+  /**
+   * The timeout for receiving messages (in milliseconds).
+   */
+  public fun receiveTimeout(receiveTimeout: String) {
+    it.property("receiveTimeout", receiveTimeout)
+  }
+
+  /**
+   * Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in
+   * milliseconds. The default is 5000 ms, that is, 5 seconds.
+   */
+  public fun recoveryInterval(recoveryInterval: String) {
+    it.property("recoveryInterval", recoveryInterval)
+  }
+
+  /**
+   * Configures how often Camel should check for timed out Exchanges when doing request/reply over
+   * JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs,
+   * then you can lower this interval, to check more frequently. The timeout is determined by the
+   * option requestTimeout.
+   */
+  public fun requestTimeoutCheckerInterval(requestTimeoutCheckerInterval: String) {
+    it.property("requestTimeoutCheckerInterval", requestTimeoutCheckerInterval)
+  }
+
+  /**
+   * Sets whether synchronous processing should be strictly used
+   */
+  public fun synchronous(synchronous: String) {
+    it.property("synchronous", synchronous)
+  }
+
+  /**
+   * Sets whether synchronous processing should be strictly used
+   */
+  public fun synchronous(synchronous: Boolean) {
+    it.property("synchronous", synchronous.toString())
+  }
+
+  /**
+   * A pluggable TemporaryQueueResolver that allows you to use your own resolver for creating
+   * temporary queues (some messaging systems has special requirements for creating temporary queues).
+   */
+  public fun temporaryQueueResolver(temporaryQueueResolver: String) {
+    it.property("temporaryQueueResolver", temporaryQueueResolver)
+  }
+
+  /**
+   * 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
+   * jakarta.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows
+   * you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable
+   * robust routing. Notice that if you also have transferExchange enabled, this option takes
+   * precedence. The caught exception is required to be serializable. The original Exception on the
+   * consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException
+   * when returned to the producer. Use this with caution as the data is using Java Object
+   * serialization and requires the received to be able to deserialize the data at Class level, which
+   * forces a strong coupling between the producers and consumer!
+   */
+  public fun transferException(transferException: String) {
+    it.property("transferException", transferException)
+  }
+
+  /**
+   * If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the
+   * consumer side, then the caused Exception will be send back in response as a
+   * jakarta.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows
+   * you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable
+   * robust routing. Notice that if you also have transferExchange enabled, this option takes
+   * precedence. The caught exception is required to be serializable. The original Exception on the
+   * consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException
+   * when returned to the producer. Use this with caution as the data is using Java Object
+   * serialization and requires the received to be able to deserialize the data at Class level, which
+   * forces a strong coupling between the producers and consumer!
+   */
+  public fun transferException(transferException: Boolean) {
+    it.property("transferException", transferException.toString())
+  }
+
+  /**
+   * 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. Use this with caution as the data is using Java Object serialization and requires the
+   * receiver to be able to deserialize the data at Class level, which forces a strong coupling between
+   * the producers and consumers having to use compatible Camel versions!
+   */
+  public fun transferExchange(transferExchange: String) {
+    it.property("transferExchange", transferExchange)
+  }
+
+  /**
+   * 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. Use this with caution as the data is using Java Object serialization and requires the
+   * receiver to be able to deserialize the data at Class level, which forces a strong coupling between
+   * the producers and consumers having to use compatible Camel versions!
+   */
+  public fun transferExchange(transferExchange: Boolean) {
+    it.property("transferExchange", transferExchange.toString())
+  }
+
+  /**
+   * Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.
+   */
+  public fun useMessageIDAsCorrelationID(useMessageIDAsCorrelationID: String) {
+    it.property("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID)
+  }
+
+  /**
+   * Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.
+   */
+  public fun useMessageIDAsCorrelationID(useMessageIDAsCorrelationID: Boolean) {
+    it.property("useMessageIDAsCorrelationID", useMessageIDAsCorrelationID.toString())
+  }
+
+  /**
+   * 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.
+   */
+  public
+      fun waitForProvisionCorrelationToBeUpdatedCounter(waitForProvisionCorrelationToBeUpdatedCounter: String) {
+    it.property("waitForProvisionCorrelationToBeUpdatedCounter",
+        waitForProvisionCorrelationToBeUpdatedCounter)
+  }
+
+  /**
+   * 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.
+   */
+  public
+      fun waitForProvisionCorrelationToBeUpdatedCounter(waitForProvisionCorrelationToBeUpdatedCounter: Int) {
+    it.property("waitForProvisionCorrelationToBeUpdatedCounter",
+        waitForProvisionCorrelationToBeUpdatedCounter.toString())
+  }
+
+  /**
+   * Interval in millis to sleep each time while waiting for provisional correlation id to be
+   * updated.
+   */
+  public
+      fun waitForProvisionCorrelationToBeUpdatedThreadSleepingTime(waitForProvisionCorrelationToBeUpdatedThreadSleepingTime: String) {
+    it.property("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime",
+        waitForProvisionCorrelationToBeUpdatedThreadSleepingTime)
+  }
+
+  /**
+   * Number of times to wait for temporary replyTo queue to be created and ready when doing
+   * request/reply over JMS.
+   */
+  public
+      fun waitForTemporaryReplyToToBeUpdatedCounter(waitForTemporaryReplyToToBeUpdatedCounter: String) {
+    it.property("waitForTemporaryReplyToToBeUpdatedCounter",
+        waitForTemporaryReplyToToBeUpdatedCounter)
+  }
+
+  /**
+   * Number of times to wait for temporary replyTo queue to be created and ready when doing
+   * request/reply over JMS.
+   */
+  public
+      fun waitForTemporaryReplyToToBeUpdatedCounter(waitForTemporaryReplyToToBeUpdatedCounter: Int) {
+    it.property("waitForTemporaryReplyToToBeUpdatedCounter",
+        waitForTemporaryReplyToToBeUpdatedCounter.toString())
+  }
+
+  /**
+   * Interval in millis to sleep each time while waiting for temporary replyTo queue to be ready.
+   */
+  public
+      fun waitForTemporaryReplyToToBeUpdatedThreadSleepingTime(waitForTemporaryReplyToToBeUpdatedThreadSleepingTime: String) {
+    it.property("waitForTemporaryReplyToToBeUpdatedThreadSleepingTime",
+        waitForTemporaryReplyToToBeUpdatedThreadSleepingTime)
+  }
+
+  /**
+   * Allows to configure the default errorHandler logging level for logging uncaught exceptions.
+   */
+  public fun errorHandlerLoggingLevel(errorHandlerLoggingLevel: String) {
+    it.property("errorHandlerLoggingLevel", errorHandlerLoggingLevel)
+  }
+
+  /**
+   * Allows to control whether stack-traces should be logged or not, by the default errorHandler.
+   */
+  public fun errorHandlerLogStackTrace(errorHandlerLogStackTrace: String) {
+    it.property("errorHandlerLogStackTrace", errorHandlerLogStackTrace)
+  }
+
+  /**
+   * Allows to control whether stack-traces should be logged or not, by the default errorHandler.
+   */
+  public fun errorHandlerLogStackTrace(errorHandlerLogStackTrace: Boolean) {
+    it.property("errorHandlerLogStackTrace", errorHandlerLogStackTrace.toString())
+  }
+
+  /**
+   * Password to use with the ConnectionFactory. You can also configure username/password directly
+   * on the ConnectionFactory.
+   */
+  public fun password(password: String) {
+    it.property("password", password)
+  }
+
+  /**
+   * Username to use with the ConnectionFactory. You can also configure username/password directly
+   * on the ConnectionFactory.
+   */
+  public fun username(username: String) {
+    it.property("username", username)
+  }
+
+  /**
+   * Specifies whether to use transacted mode
+   */
+  public fun transacted(transacted: String) {
+    it.property("transacted", transacted)
+  }
+
+  /**
+   * Specifies whether to use transacted mode
+   */
+  public fun transacted(transacted: Boolean) {
+    it.property("transacted", transacted.toString())
+  }
+
+  /**
+   * Specifies whether InOut operations (request reply) default to using transacted mode If this
+   * flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the
+   * acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS:
+   * that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not
+   * taken into account. Depending on the Java EE transaction context, the container makes its own
+   * decisions on these values. Analogously, these parameters are not taken into account within a
+   * locally managed transaction either, since Spring JMS operates on an existing JMS Session in this
+   * case. Setting this flag to true will use a short local JMS transaction when running outside of a
+   * managed transaction, and a synchronized local JMS transaction in case of a managed transaction
+   * (other than an XA transaction) being present. This has the effect of a local JMS transaction being
+   * managed alongside the main transaction (which might be a native JDBC transaction), with the JMS
+   * transaction committing right after the main transaction.
+   */
+  public fun transactedInOut(transactedInOut: String) {
+    it.property("transactedInOut", transactedInOut)
+  }
+
+  /**
+   * Specifies whether InOut operations (request reply) default to using transacted mode If this
+   * flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the
+   * acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS:
+   * that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not
+   * taken into account. Depending on the Java EE transaction context, the container makes its own
+   * decisions on these values. Analogously, these parameters are not taken into account within a
+   * locally managed transaction either, since Spring JMS operates on an existing JMS Session in this
+   * case. Setting this flag to true will use a short local JMS transaction when running outside of a
+   * managed transaction, and a synchronized local JMS transaction in case of a managed transaction
+   * (other than an XA transaction) being present. This has the effect of a local JMS transaction being
+   * managed alongside the main transaction (which might be a native JDBC transaction), with the JMS
+   * transaction committing right after the main transaction.
+   */
+  public fun transactedInOut(transactedInOut: Boolean) {
+    it.property("transactedInOut", transactedInOut.toString())
+  }
+
+  /**
+   * If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected
+   * when option transacted=true.
+   */
+  public fun lazyCreateTransactionManager(lazyCreateTransactionManager: String) {
+    it.property("lazyCreateTransactionManager", lazyCreateTransactionManager)
+  }
+
+  /**
+   * If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected
+   * when option transacted=true.
+   */
+  public fun lazyCreateTransactionManager(lazyCreateTransactionManager: Boolean) {
+    it.property("lazyCreateTransactionManager", lazyCreateTransactionManager.toString())
+  }
+
+  /**
+   * The Spring transaction manager to use.
+   */
+  public fun transactionManager(transactionManager: String) {
+    it.property("transactionManager", transactionManager)
+  }
+
+  /**
+   * The name of the transaction to use.
+   */
+  public fun transactionName(transactionName: String) {
+    it.property("transactionName", transactionName)
+  }
+
+  /**
+   * The timeout value of the transaction (in seconds), if using transacted mode.
+   */
+  public fun transactionTimeout(transactionTimeout: String) {
+    it.property("transactionTimeout", transactionTimeout)
+  }
+
+  /**
+   * The timeout value of the transaction (in seconds), if using transacted mode.
+   */
+  public fun transactionTimeout(transactionTimeout: Int) {
+    it.property("transactionTimeout", transactionTimeout.toString())
+  }
+}
diff --git a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/ActivemqUriDsl.kt b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/ActivemqUriDsl.kt
index 8f5a113..1d8adc9 100644
--- a/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/ActivemqUriDsl.kt
+++ b/dsl/camel-kotlin-api/src/generated/kotlin/org/apache/camel/kotlin/components/ActivemqUriDsl.kt
@@ -24,7 +24,7 @@
 import org.apache.camel.kotlin.UriDsl
 
 /**
- * Send messages to (or consume from) Apache ActiveMQ. This component extends the Camel JMS
+ * Send messages to (or consume from) Apache ActiveMQ 5.x. This component extends the Camel JMS
  * component.
  */
 public fun UriDsl.activemq(i: ActivemqUriDsl.() -> Unit) {
diff --git a/parent/pom.xml b/parent/pom.xml
index 111f8d3..a473dba 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -57,6 +57,7 @@
 
         <!-- dependency versions -->
         <activemq-version>5.18.4</activemq-version>
+        <activemq6-version>6.1.2</activemq6-version>
         <activemq-artemis-version>2.33.0</activemq-artemis-version>
         <angus-mail-version>2.0.3</angus-mail-version>
         <apacheds-version>2.0.0.AM26</apacheds-version>
@@ -670,6 +671,11 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
+                <artifactId>camel-activemq6</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel</groupId>
                 <artifactId>camel-amqp</artifactId>
                 <version>${project.version}</version>
             </dependency>