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

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

commit a846e6f6ca6b6ab36ae5908967910d6e3792d96f
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Jan 21 07:53:02 2021 +0100

    [CAMEL-16008] Implement consumer priority in camel
---
 .../apache/camel/catalog/docs/jms-component.adoc   |  6 +-
 .../component/jms/JmsComponentConfigurer.java      |  6 ++
 .../camel/component/jms/JmsEndpointConfigurer.java |  6 ++
 .../camel/component/jms/JmsEndpointUriFactory.java | 83 +++++++++++-----------
 .../org/apache/camel/component/jms/jms.json        |  2 +
 .../camel-jms/src/main/docs/jms-component.adoc     |  5 +-
 .../apache/camel/component/jms/JmsComponent.java   |  8 +++
 .../camel/component/jms/JmsConfiguration.java      | 35 +++++----
 .../apache/camel/component/jms/JmsEndpoint.java    | 66 ++---------------
 .../apache/camel/component/jms/JmsProducer.java    |  6 --
 .../camel/component/jms/JmsQueueEndpoint.java      |  7 --
 .../component/jms/JmsTemporaryQueueEndpoint.java   |  7 --
 .../component/jms/JmsTemporaryTopicEndpoint.java   |  7 --
 .../jms/JmsEndpointConfigurationTest.java          |  1 -
 .../component/dsl/JmsComponentBuilderFactory.java  | 25 +++++++
 .../endpoint/dsl/JmsEndpointBuilderFactory.java    | 48 +++++++++++++
 .../modules/ROOT/pages/jms-component.adoc          |  6 +-
 17 files changed, 170 insertions(+), 154 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/jms-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/jms-component.adoc
index f370065..67a4063 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/jms-component.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/jms-component.adoc
@@ -187,7 +187,7 @@ about these properties by consulting the relevant Spring 
documentation.
 
 
 // component options: START
-The JMS component supports 97 options, which are listed below.
+The JMS component supports 98 options, which are listed below.
 
 
 
@@ -202,6 +202,7 @@ The JMS component supports 97 options, which are listed 
below.
 | *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any 
incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *testConnectionOnStartup* (common) | Specifies whether to test the 
connection on startup. This ensures that when Camel starts that all the JMS 
consumers have a valid connection to the JMS broker. If a connection cannot be 
granted then Camel throws an exception on startup. This ensures that Camel is 
not started with failed connections. The JMS producers is tested as well. | 
false | boolean
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which 
is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, 
DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: 
SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | 
AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | 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 av [...]
 | *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the Asynchronous Routing Engine). This means that messages 
may be processed not 100% strictly in order. If disabled (as default) then the 
Exchange is fully processed before the JmsConsumer will pickup the next message 
from the JMS queue. Note if transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should 
auto-startup. | true | boolean
 | *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS 
resources. See cacheLevelName option for more details. |  | int
@@ -331,7 +332,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (94 parameters):
+=== Query Parameters (95 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -345,6 +346,7 @@ with the following path and query parameters:
 | *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any 
incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *testConnectionOnStartup* (common) | Specifies whether to test the 
connection on startup. This ensures that when Camel starts that all the JMS 
consumers have a valid connection to the JMS broker. If a connection cannot be 
granted then Camel throws an exception on startup. This ensures that Camel is 
not started with failed connections. The JMS producers is tested as well. | 
false | boolean
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which 
is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, 
DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: 
SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | 
AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | 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 av [...]
 | *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the Asynchronous Routing Engine). This means that messages 
may be processed not 100% strictly in order. If disabled (as default) then the 
Exchange is fully processed before the JmsConsumer will pickup the next message 
from the JMS queue. Note if transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should 
auto-startup. | true | boolean
 | *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS 
resources. See cacheLevelName option for more details. |  | int
diff --git 
a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java
 
b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java
index 36c0add..9c65744 100644
--- 
a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java
+++ 
b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsComponentConfigurer.java
@@ -46,6 +46,8 @@ public class JmsComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "allowSerializedHeaders": 
getOrCreateConfiguration(target).setAllowSerializedHeaders(property(camelContext,
 boolean.class, value)); return true;
         case "alwayscopymessage":
         case "alwaysCopyMessage": 
getOrCreateConfiguration(target).setAlwaysCopyMessage(property(camelContext, 
boolean.class, value)); return true;
+        case "artemisconsumerpriority":
+        case "artemisConsumerPriority": 
getOrCreateConfiguration(target).setArtemisConsumerPriority(property(camelContext,
 int.class, value)); return true;
         case "artemisstreamingenabled":
         case "artemisStreamingEnabled": 
getOrCreateConfiguration(target).setArtemisStreamingEnabled(property(camelContext,
 boolean.class, value)); return true;
         case "asyncconsumer":
@@ -240,6 +242,8 @@ public class JmsComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "allowSerializedHeaders": return boolean.class;
         case "alwayscopymessage":
         case "alwaysCopyMessage": return boolean.class;
+        case "artemisconsumerpriority":
+        case "artemisConsumerPriority": return int.class;
         case "artemisstreamingenabled":
         case "artemisStreamingEnabled": return boolean.class;
         case "asyncconsumer":
@@ -435,6 +439,8 @@ public class JmsComponentConfigurer extends 
PropertyConfigurerSupport implements
         case "allowSerializedHeaders": return 
getOrCreateConfiguration(target).isAllowSerializedHeaders();
         case "alwayscopymessage":
         case "alwaysCopyMessage": return 
getOrCreateConfiguration(target).isAlwaysCopyMessage();
+        case "artemisconsumerpriority":
+        case "artemisConsumerPriority": return 
getOrCreateConfiguration(target).getArtemisConsumerPriority();
         case "artemisstreamingenabled":
         case "artemisStreamingEnabled": return 
getOrCreateConfiguration(target).isArtemisStreamingEnabled();
         case "asyncconsumer":
diff --git 
a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java
 
b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java
index e76ea0f..5e2d277 100644
--- 
a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java
+++ 
b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointConfigurer.java
@@ -35,6 +35,8 @@ public class JmsEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "allowSerializedHeaders": 
target.getConfiguration().setAllowSerializedHeaders(property(camelContext, 
boolean.class, value)); return true;
         case "alwayscopymessage":
         case "alwaysCopyMessage": 
target.getConfiguration().setAlwaysCopyMessage(property(camelContext, 
boolean.class, value)); return true;
+        case "artemisconsumerpriority":
+        case "artemisConsumerPriority": 
target.getConfiguration().setArtemisConsumerPriority(property(camelContext, 
int.class, value)); return true;
         case "artemisstreamingenabled":
         case "artemisStreamingEnabled": 
target.getConfiguration().setArtemisStreamingEnabled(property(camelContext, 
boolean.class, value)); return true;
         case "asyncconsumer":
@@ -224,6 +226,8 @@ public class JmsEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "allowSerializedHeaders": return boolean.class;
         case "alwayscopymessage":
         case "alwaysCopyMessage": return boolean.class;
+        case "artemisconsumerpriority":
+        case "artemisConsumerPriority": return int.class;
         case "artemisstreamingenabled":
         case "artemisStreamingEnabled": return boolean.class;
         case "asyncconsumer":
@@ -414,6 +418,8 @@ public class JmsEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "allowSerializedHeaders": return 
target.getConfiguration().isAllowSerializedHeaders();
         case "alwayscopymessage":
         case "alwaysCopyMessage": return 
target.getConfiguration().isAlwaysCopyMessage();
+        case "artemisconsumerpriority":
+        case "artemisConsumerPriority": return 
target.getConfiguration().getArtemisConsumerPriority();
         case "artemisstreamingenabled":
         case "artemisStreamingEnabled": return 
target.getConfiguration().isArtemisStreamingEnabled();
         case "asyncconsumer":
diff --git 
a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointUriFactory.java
 
b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointUriFactory.java
index 361f076..8f1de6c 100644
--- 
a/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointUriFactory.java
+++ 
b/components/camel-jms/src/generated/java/org/apache/camel/component/jms/JmsEndpointUriFactory.java
@@ -20,69 +20,83 @@ public class JmsEndpointUriFactory extends 
org.apache.camel.support.component.En
     private static final Set<String> PROPERTY_NAMES;
     private static final Set<String> SECRET_PROPERTY_NAMES;
     static {
-        Set<String> props = new HashSet<>(96);
+        Set<String> props = new HashSet<>(97);
         props.add("includeSentJMSMessageID");
         props.add("asyncConsumer");
         props.add("mapJmsMessage");
+        props.add("synchronous");
+        props.add("eagerLoadingOfProperties");
+        props.add("password");
+        props.add("replyToMaxConcurrentConsumers");
+        props.add("deliveryMode");
+        props.add("transferException");
+        props.add("asyncStartListener");
+        props.add("eagerPoisonBody");
+        props.add("artemisStreamingEnabled");
+        props.add("maxConcurrentConsumers");
+        props.add("taskExecutor");
+        props.add("priority");
+        props.add("acknowledgementModeName");
+        props.add("exposeListenerSession");
+        props.add("receiveTimeout");
+        props.add("replyTo");
+        props.add("replyToOverride");
+        props.add("errorHandlerLoggingLevel");
+        props.add("errorHandler");
+        props.add("allowReplyManagerQuickStop");
+        props.add("replyToOnTimeoutMaxConcurrentConsumers");
+        props.add("messageConverter");
+        props.add("maxMessagesPerTask");
+        props.add("jmsKeyFormatStrategy");
+        props.add("streamMessageTypeEnabled");
+        props.add("headerFilterStrategy");
+        props.add("destinationName");
+        props.add("allowAdditionalHeaders");
+        props.add("clientId");
+        props.add("recoveryInterval");
+        props.add("replyToCacheLevelName");
+        props.add("messageIdEnabled");
+        props.add("allowSerializedHeaders");
+        props.add("preserveMessageQos");
+        props.add("connectionFactory");
+        props.add("testConnectionOnStartup");
+        props.add("subscriptionName");
+        props.add("useMessageIDAsCorrelationID");
+        props.add("cacheLevelName");
+        props.add("idleTaskExecutionLimit");
         props.add("messageListenerContainerFactory");
         props.add("requestTimeoutCheckerInterval");
-        props.add("synchronous");
         props.add("includeAllJMSXProperties");
         props.add("cacheLevel");
         props.add("errorHandlerLogStackTrace");
         props.add("transactedInOut");
-        props.add("eagerLoadingOfProperties");
         props.add("timeToLive");
-        props.add("password");
-        props.add("replyToMaxConcurrentConsumers");
-        props.add("deliveryMode");
-        props.add("transferException");
         props.add("exceptionListener");
         props.add("destinationType");
-        props.add("asyncStartListener");
         props.add("waitForProvisionCorrelationToBeUpdatedThreadSleepingTime");
         props.add("transactionManager");
-        props.add("eagerPoisonBody");
         props.add("alwaysCopyMessage");
+        props.add("artemisConsumerPriority");
         props.add("replyToConcurrentConsumers");
-        props.add("artemisStreamingEnabled");
         props.add("replyToDestinationSelectorName");
-        props.add("maxConcurrentConsumers");
-        props.add("taskExecutor");
         props.add("disableTimeToLive");
         props.add("deliveryPersistent");
-        props.add("priority");
         props.add("concurrentConsumers");
         props.add("acceptMessagesWhileStopping");
         props.add("consumerType");
-        props.add("acknowledgementModeName");
         props.add("lazyStartProducer");
-        props.add("exposeListenerSession");
-        props.add("receiveTimeout");
         props.add("subscriptionDurable");
         props.add("destinationResolver");
-        props.add("replyTo");
-        props.add("replyToOverride");
-        props.add("errorHandlerLoggingLevel");
-        props.add("errorHandler");
         props.add("exceptionHandler");
-        props.add("allowReplyManagerQuickStop");
         props.add("idleConsumerLimit");
-        props.add("replyToOnTimeoutMaxConcurrentConsumers");
         props.add("explicitQosEnabled");
-        props.add("messageConverter");
-        props.add("maxMessagesPerTask");
         props.add("transacted");
         props.add("transactionName");
         props.add("correlationProperty");
         props.add("autoStartup");
         props.add("messageTimestampEnabled");
-        props.add("jmsKeyFormatStrategy");
-        props.add("streamMessageTypeEnabled");
-        props.add("headerFilterStrategy");
         props.add("waitForProvisionCorrelationToBeUpdatedCounter");
         props.add("lazyCreateTransactionManager");
-        props.add("destinationName");
         props.add("messageCreatedStrategy");
         props.add("asyncStopListener");
         props.add("transferExchange");
@@ -93,29 +107,16 @@ public class JmsEndpointUriFactory extends 
org.apache.camel.support.component.En
         props.add("deliveryDelay");
         props.add("disableReplyTo");
         props.add("formatDateHeadersToIso8601");
-        props.add("allowAdditionalHeaders");
-        props.add("clientId");
-        props.add("recoveryInterval");
-        props.add("replyToCacheLevelName");
-        props.add("messageIdEnabled");
         props.add("exchangePattern");
-        props.add("allowSerializedHeaders");
         props.add("pubSubNoLocal");
-        props.add("preserveMessageQos");
         props.add("forceSendOriginalMessage");
         props.add("subscriptionShared");
         props.add("replyToType");
-        props.add("connectionFactory");
-        props.add("testConnectionOnStartup");
-        props.add("subscriptionName");
-        props.add("useMessageIDAsCorrelationID");
         props.add("transactionTimeout");
         props.add("durableSubscriptionName");
         props.add("replyToSameDestinationAllowed");
         props.add("jmsMessageType");
         props.add("defaultTaskExecutorType");
-        props.add("cacheLevelName");
-        props.add("idleTaskExecutionLimit");
         props.add("username");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
         Set<String> secretProps = new HashSet<>(2);
diff --git 
a/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json
 
b/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json
index 3afaeff..6df0bf2 100644
--- 
a/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json
+++ 
b/components/camel-jms/src/generated/resources/org/apache/camel/component/jms/jms.json
@@ -31,6 +31,7 @@
     "replyTo": { "kind": "property", "displayName": "Reply To", "group": 
"common", "label": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.jms.JmsConfiguration", 
"configurationField": "configuration", "description": "Provides an explicit 
ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in 
consumer)." },
     "testConnectionOnStartup": { "kind": "property", "displayName": "Test 
Connection On Startup", "group": "common", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Specifies whether to test the connection on 
startup. This ensures that when Camel starts tha [...]
     "acknowledgementModeName": { "kind": "property", "displayName": 
"Acknowledgement Mode Name", "group": "consumer", "label": "consumer", 
"required": false, "type": "string", "javaType": "java.lang.String", "enum": [ 
"SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", 
"DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationFiel [...]
+    "artemisConsumerPriority": { "kind": "property", "displayName": "Artemis 
Consumer Priority", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Consumer priorities allow you to ensure that 
high priority consumers receive messages while they are active. N [...]
     "asyncConsumer": { "kind": "property", "displayName": "Async Consumer", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may picku [...]
     "autoStartup": { "kind": "property", "displayName": "Auto Startup", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Specifies whether the consumer container 
should auto-startup." },
     "cacheLevel": { "kind": "property", "displayName": "Cache Level", "group": 
"consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.jms.JmsConfiguration", 
"configurationField": "configuration", "description": "Sets the cache level by 
ID for the underlying JMS resources. See cacheLevelName option for more 
details." },
@@ -132,6 +133,7 @@
     "replyTo": { "kind": "parameter", "displayName": "Reply To", "group": 
"common", "label": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.jms.JmsConfiguration", 
"configurationField": "configuration", "description": "Provides an explicit 
ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in 
consumer)." },
     "testConnectionOnStartup": { "kind": "parameter", "displayName": "Test 
Connection On Startup", "group": "common", "label": "", "required": false, 
"type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 
false, "secret": false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Specifies whether to test the connection on 
startup. This ensures that when Camel starts th [...]
     "acknowledgementModeName": { "kind": "parameter", "displayName": 
"Acknowledgement Mode Name", "group": "consumer", "label": "consumer", 
"required": false, "type": "string", "javaType": "java.lang.String", "enum": [ 
"SESSION_TRANSACTED", "CLIENT_ACKNOWLEDGE", "AUTO_ACKNOWLEDGE", 
"DUPS_OK_ACKNOWLEDGE" ], "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": "AUTO_ACKNOWLEDGE", "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationFie [...]
+    "artemisConsumerPriority": { "kind": "parameter", "displayName": "Artemis 
Consumer Priority", "group": "consumer", "label": "consumer", "required": 
false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": 
false, "secret": false, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Consumer priorities allow you to ensure that 
high priority consumers receive messages while they are active.  [...]
     "asyncConsumer": { "kind": "parameter", "displayName": "Async Consumer", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": false, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may pick [...]
     "autoStartup": { "kind": "parameter", "displayName": "Auto Startup", 
"group": "consumer", "label": "consumer", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "autowired": false, "secret": 
false, "defaultValue": true, "configurationClass": 
"org.apache.camel.component.jms.JmsConfiguration", "configurationField": 
"configuration", "description": "Specifies whether the consumer container 
should auto-startup." },
     "cacheLevel": { "kind": "parameter", "displayName": "Cache Level", 
"group": "consumer", "label": "consumer", "required": false, "type": "integer", 
"javaType": "int", "deprecated": false, "autowired": false, "secret": false, 
"configurationClass": "org.apache.camel.component.jms.JmsConfiguration", 
"configurationField": "configuration", "description": "Sets the cache level by 
ID for the underlying JMS resources. See cacheLevelName option for more 
details." },
diff --git a/components/camel-jms/src/main/docs/jms-component.adoc 
b/components/camel-jms/src/main/docs/jms-component.adoc
index e119799..67a4063 100644
--- a/components/camel-jms/src/main/docs/jms-component.adoc
+++ b/components/camel-jms/src/main/docs/jms-component.adoc
@@ -187,7 +187,7 @@ about these properties by consulting the relevant Spring 
documentation.
 
 
 // component options: START
-The JMS component supports 97 options, which are listed below.
+The JMS component supports 98 options, which are listed below.
 
 
 
@@ -202,6 +202,7 @@ The JMS component supports 97 options, which are listed 
below.
 | *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any 
incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *testConnectionOnStartup* (common) | Specifies whether to test the 
connection on startup. This ensures that when Camel starts that all the JMS 
consumers have a valid connection to the JMS broker. If a connection cannot be 
granted then Camel throws an exception on startup. This ensures that Camel is 
not started with failed connections. The JMS producers is tested as well. | 
false | boolean
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which 
is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, 
DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: 
SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | 
AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | 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 av [...]
 | *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the Asynchronous Routing Engine). This means that messages 
may be processed not 100% strictly in order. If disabled (as default) then the 
Exchange is fully processed before the JmsConsumer will pickup the next message 
from the JMS queue. Note if transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should 
auto-startup. | true | boolean
 | *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS 
resources. See cacheLevelName option for more details. |  | int
@@ -345,12 +346,12 @@ with the following path and query parameters:
 | *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any 
incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *testConnectionOnStartup* (common) | Specifies whether to test the 
connection on startup. This ensures that when Camel starts that all the JMS 
consumers have a valid connection to the JMS broker. If a connection cannot be 
granted then Camel throws an exception on startup. This ensures that Camel is 
not started with failed connections. The JMS producers is tested as well. | 
false | boolean
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which 
is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, 
DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: 
SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | 
AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | 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 av [...]
 | *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the Asynchronous Routing Engine). This means that messages 
may be processed not 100% strictly in order. If disabled (as default) then the 
Exchange is fully processed before the JmsConsumer will pickup the next message 
from the JMS queue. Note if transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should 
auto-startup. | true | boolean
 | *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS 
resources. See cacheLevelName option for more details. |  | int
 | *cacheLevelName* (consumer) | Sets the cache level by name for the 
underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, 
CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is 
CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more 
information. There are 5 enums and the value can be one of: CACHE_AUTO, 
CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, CACHE_SESSION | CACHE_AUTO | 
String
 | *concurrentConsumers* (consumer) | Specifies the default number of 
concurrent consumers when consuming from JMS (not for request/reply over JMS). 
See also the maxMessagesPerTask option to control dynamic scaling up/down of 
threads. When doing request/reply over JMS then the option 
replyToConcurrentConsumers is used to control number of concurrent consumers on 
the reply message listener. | 1 | int
-| *consumerPriority* (consumer) | 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 [...]
 | *maxConcurrentConsumers* (consumer) | Specifies the maximum number of 
concurrent consumers when consuming from JMS (not for request/reply over JMS). 
See also the maxMessagesPerTask option to control dynamic scaling up/down of 
threads. When doing request/reply over JMS then the option 
replyToMaxConcurrentConsumers is used to control number of concurrent consumers 
on the reply message listener. |  | int
 | *replyToDeliveryPersistent* (consumer) | Specifies whether to use persistent 
delivery by default for replies. | true | boolean
 | *selector* (consumer) | Sets the JMS selector to use |  | String
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
index 883518b..8795807 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
@@ -1021,6 +1021,14 @@ public class JmsComponent extends 
HeaderFilterStrategyComponent {
         configuration.setArtemisStreamingEnabled(artemisStreamingEnabled);
     }
 
+    public void setArtemisConsumerPriority(int priority) {
+        configuration.setArtemisConsumerPriority(priority);
+    }
+
+    public int getArtemisConsumerPriority() {
+        return configuration.getArtemisConsumerPriority();
+    }
+
     // Implementation methods
     // 
-------------------------------------------------------------------------
 
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
index 9efcdac..939a70a 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
@@ -478,8 +478,16 @@ public class JmsConfiguration implements Cloneable {
     @UriParam(label = "producer",
               description = "Sets whether JMS date properties should be 
formatted according to the ISO 8601 standard.")
     private boolean formatDateHeadersToIso8601;
-    @UriParam(defaultValue = "true", label = "advanced", description = 
"Whether optimizing for Apache Artemis streaming mode.")
+    @UriParam(label = "advanced", defaultValue = "true", description = 
"Whether optimizing for Apache Artemis streaming mode.")
     private boolean artemisStreamingEnabled = true;
+    @UriParam(label = "consumer", 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).")
+    private int artemisConsumerPriority;
 
     // JMS 2.0 API
     @UriParam(label = "consumer", description = "Set the name of a 
subscription to create. To be applied in case"
@@ -521,15 +529,6 @@ public class JmsConfiguration implements Cloneable {
               description = "Sets whether synchronous processing should be 
strictly used")
     private boolean synchronous;
 
-    @UriParam(label = "consumer", 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).")
-    private int consumerPriority;
-
     public JmsConfiguration() {
     }
 
@@ -2293,20 +2292,20 @@ public class JmsConfiguration implements Cloneable {
         this.artemisStreamingEnabled = artemisStreamingEnabled;
     }
 
-    public boolean isSynchronous() {
-        return synchronous;
+    public void setArtemisConsumerPriority(int priority) {
+        this.artemisConsumerPriority = priority;
     }
 
-    public void setSynchronous(boolean synchronous) {
-        this.synchronous = synchronous;
+    public int getArtemisConsumerPriority() {
+        return artemisConsumerPriority;
     }
 
-    public void setConsumerPriority(int priority) {
-        this.consumerPriority = priority;
+    public boolean isSynchronous() {
+        return synchronous;
     }
 
-    public int getConsumerPriority() {
-        return consumerPriority;
+    public void setSynchronous(boolean synchronous) {
+        this.synchronous = synchronous;
     }
 
 }
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
index 8388e65..c21b05c 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
@@ -21,14 +21,10 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import javax.jms.ConnectionFactory;
-import javax.jms.Destination;
 import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Queue;
 import javax.jms.Session;
-import javax.jms.TemporaryQueue;
-import javax.jms.TemporaryTopic;
 import javax.jms.Topic;
 
 import org.apache.camel.AsyncEndpoint;
@@ -88,23 +84,12 @@ public class JmsEndpoint extends DefaultEndpoint
     @UriPath(description = "Name of the queue or topic to use as destination")
     @Metadata(required = true)
     private String destinationName;
-    private Destination destination;
     @UriParam(label = "advanced",
               description = "To use a custom HeaderFilterStrategy to filter 
header to and from Camel message.")
     private HeaderFilterStrategy headerFilterStrategy;
     @UriParam
     private JmsConfiguration configuration;
 
-    public JmsEndpoint() {
-        this(null, null);
-    }
-
-    public JmsEndpoint(Topic destination) throws JMSException {
-        this("jms:topic:" + destination.getTopicName(), null);
-        this.destination = destination;
-        this.destinationType = "topic";
-    }
-
     public JmsEndpoint(String uri, JmsComponent component, String 
destinationName, boolean pubSubDomain,
                        JmsConfiguration configuration) {
         super(UnsafeUriCharactersEncoder.encode(uri), component);
@@ -149,32 +134,6 @@ public class JmsEndpoint extends DefaultEndpoint
         this(UnsafeUriCharactersEncoder.encode(endpointUri), destinationName, 
true);
     }
 
-    /**
-     * Returns a new JMS endpoint for the given JMS destination using the 
configuration from the given JMS component
-     */
-    public static JmsEndpoint newInstance(Destination destination, 
JmsComponent component) throws JMSException {
-        JmsEndpoint answer = newInstance(destination);
-        JmsConfiguration newConfiguration = 
component.getConfiguration().copy();
-        answer.setConfiguration(newConfiguration);
-        answer.setCamelContext(component.getCamelContext());
-        return answer;
-    }
-
-    /**
-     * Returns a new JMS endpoint for the given JMS destination
-     */
-    public static JmsEndpoint newInstance(Destination destination) throws 
JMSException {
-        if (destination instanceof TemporaryQueue) {
-            return new JmsTemporaryQueueEndpoint((TemporaryQueue) destination);
-        } else if (destination instanceof TemporaryTopic) {
-            return new JmsTemporaryTopicEndpoint((TemporaryTopic) destination);
-        } else if (destination instanceof Queue) {
-            return new JmsQueueEndpoint((Queue) destination);
-        } else {
-            return new JmsEndpoint((Topic) destination);
-        }
-    }
-
     @Override
     public Producer createProducer() throws Exception {
         Producer answer = new JmsProducer(this);
@@ -197,14 +156,12 @@ public class JmsEndpoint extends DefaultEndpoint
 
     public void configureListenerContainer(AbstractMessageListenerContainer 
listenerContainer, JmsConsumer consumer) {
         if (destinationName != null) {
-            if (getConfiguration().getConsumerPriority() != 0) {
-                destinationName += "?consumer-priority=" + 
getConfiguration().getConsumerPriority();
+            String target = destinationName;
+            if (getConfiguration().getArtemisConsumerPriority() != 0) {
+                target += "?consumer-priority=" + 
getConfiguration().getArtemisConsumerPriority();
             }
-            listenerContainer.setDestinationName(destinationName);
+            listenerContainer.setDestinationName(target);
             LOG.debug("Using destinationName: {} on listenerContainer: {}", 
destinationName, listenerContainer);
-        } else if (destination != null) {
-            listenerContainer.setDestination(destination);
-            LOG.debug("Using destination: {} on listenerContainer: {}", 
destinationName, listenerContainer);
         } else {
             DestinationResolver resolver = getDestinationResolver();
             if (resolver != null) {
@@ -432,17 +389,6 @@ public class JmsEndpoint extends DefaultEndpoint
         this.destinationName = destinationName;
     }
 
-    public Destination getDestination() {
-        return destination;
-    }
-
-    /**
-     * Allows a specific JMS Destination object to be used as the destination
-     */
-    public void setDestination(Destination destination) {
-        this.destination = destination;
-    }
-
     public JmsConfiguration getConfiguration() {
         return configuration;
     }
@@ -1328,9 +1274,7 @@ public class JmsEndpoint extends DefaultEndpoint
     @Override
     protected String createEndpointUri() {
         String scheme = "jms";
-        if (destination != null) {
-            return scheme + ":" + destination;
-        } else if (destinationName != null) {
+        if (destinationName != null) {
             return scheme + ":" + destinationName;
         }
         DestinationResolver resolver = getDestinationResolver();
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
index 99acbc3..9719155 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsProducer.java
@@ -179,9 +179,6 @@ public class JmsProducer extends DefaultAsyncProducer {
         Destination destination = in.getHeader(JmsConstants.JMS_DESTINATION, 
Destination.class);
         // remove the header so it wont be propagated
         in.removeHeader(JmsConstants.JMS_DESTINATION);
-        if (destination == null) {
-            destination = endpoint.getDestination();
-        }
         if (destination != null) {
             // prefer to use destination over destination name
             destinationName = null;
@@ -314,9 +311,6 @@ public class JmsProducer extends DefaultAsyncProducer {
             // remove the header so it wont be propagated
             in.removeHeader(JmsConstants.JMS_DESTINATION);
         }
-        if (destination == null) {
-            destination = endpoint.getDestination();
-        }
         if (destination != null) {
             // prefer to use destination over destination name
             destinationName = null;
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java
index be375f4..bb1f4d7 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsQueueEndpoint.java
@@ -19,7 +19,6 @@ package org.apache.camel.component.jms;
 import java.util.Collections;
 import java.util.List;
 
-import javax.jms.JMSException;
 import javax.jms.Queue;
 
 import org.apache.camel.Exchange;
@@ -36,12 +35,6 @@ public class JmsQueueEndpoint extends JmsEndpoint implements 
BrowsableEndpoint {
     private int maximumBrowseSize = -1;
     private final QueueBrowseStrategy queueBrowseStrategy;
 
-    public JmsQueueEndpoint(Queue destination) throws JMSException {
-        this("jms:queue:" + destination.getQueueName(), null);
-        setDestinationType("queue");
-        setDestination(destination);
-    }
-
     public JmsQueueEndpoint(String uri, JmsComponent component, String 
destination,
                             JmsConfiguration configuration) {
         this(uri, component, destination, configuration, null);
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java
index d7ea610..9f4c503 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryQueueEndpoint.java
@@ -45,13 +45,6 @@ public class JmsTemporaryQueueEndpoint extends 
JmsQueueEndpoint implements Desti
         setDestinationType("temp-queue");
     }
 
-    public JmsTemporaryQueueEndpoint(TemporaryQueue jmsDestination) throws 
JMSException {
-        super("jms:temp-queue:" + jmsDestination.getQueueName(), null);
-        setDestinationType("temp-queue");
-        this.jmsDestination = jmsDestination;
-        setDestination(jmsDestination);
-    }
-
     /**
      * This endpoint is a singleton so that the temporary destination 
instances are shared across all producers and
      * consumers of the same endpoint URI
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java
index 7989b89..d9074ec 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsTemporaryTopicEndpoint.java
@@ -38,13 +38,6 @@ public class JmsTemporaryTopicEndpoint extends JmsEndpoint 
implements Destinatio
         setDestinationType("temp-topic");
     }
 
-    public JmsTemporaryTopicEndpoint(TemporaryTopic jmsDestination) throws 
JMSException {
-        super("jms:temp-topic:" + jmsDestination.getTopicName(), null);
-        this.jmsDestination = jmsDestination;
-        setDestinationType("temp-topic");
-        setDestination(jmsDestination);
-    }
-
     /**
      * This endpoint is a singleton so that the temporary destination 
instances are shared across all producers and
      * consumers of the same endpoint URI
diff --git 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
index 6e324f6..64b3129 100644
--- 
a/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
+++ 
b/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsEndpointConfigurationTest.java
@@ -319,7 +319,6 @@ public class JmsEndpointConfigurationTest extends 
CamelTestSupport {
         assertNotNull(endpoint.getConnectionFactory());
         assertEquals(1, endpoint.getConcurrentConsumers());
         assertNull(endpoint.getDeliveryMode());
-        assertNull(endpoint.getDestination());
         assertEquals("Foo", endpoint.getDestinationName());
         assertNull(endpoint.getDestinationResolver());
         assertNull(endpoint.getDurableSubscriptionName());
diff --git 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java
 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java
index 9481450..fc53aa5 100644
--- 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java
+++ 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/JmsComponentBuilderFactory.java
@@ -194,6 +194,30 @@ public interface JmsComponentBuilderFactory {
             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 JmsComponentBuilder 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
@@ -1923,6 +1947,7 @@ public interface JmsComponentBuilderFactory {
             case "replyTo": getOrCreateConfiguration((JmsComponent) 
component).setReplyTo((java.lang.String) value); return true;
             case "testConnectionOnStartup": 
getOrCreateConfiguration((JmsComponent) 
component).setTestConnectionOnStartup((boolean) value); return true;
             case "acknowledgementModeName": 
getOrCreateConfiguration((JmsComponent) 
component).setAcknowledgementModeName((java.lang.String) value); return true;
+            case "artemisConsumerPriority": 
getOrCreateConfiguration((JmsComponent) 
component).setArtemisConsumerPriority((int) value); return true;
             case "asyncConsumer": getOrCreateConfiguration((JmsComponent) 
component).setAsyncConsumer((boolean) value); return true;
             case "autoStartup": getOrCreateConfiguration((JmsComponent) 
component).setAutoStartup((boolean) value); return true;
             case "cacheLevel": getOrCreateConfiguration((JmsComponent) 
component).setCacheLevel((int) value); return true;
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java
index 71ba787..6a032b8 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/JmsEndpointBuilderFactory.java
@@ -269,6 +269,54 @@ public interface JmsEndpointBuilderFactory {
             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 JmsEndpointConsumerBuilder artemisConsumerPriority(
+                int artemisConsumerPriority) {
+            doSetProperty("artemisConsumerPriority", artemisConsumerPriority);
+            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 will be converted to a &lt;code&gt;int&lt;/code&gt; type.
+         * 
+         * Group: consumer
+         * 
+         * @param artemisConsumerPriority the value to set
+         * @return the dsl builder
+         */
+        default JmsEndpointConsumerBuilder artemisConsumerPriority(
+                String 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
diff --git a/docs/components/modules/ROOT/pages/jms-component.adoc 
b/docs/components/modules/ROOT/pages/jms-component.adoc
index df2b332..27c0ae3 100644
--- a/docs/components/modules/ROOT/pages/jms-component.adoc
+++ b/docs/components/modules/ROOT/pages/jms-component.adoc
@@ -189,7 +189,7 @@ about these properties by consulting the relevant Spring 
documentation.
 
 
 // component options: START
-The JMS component supports 97 options, which are listed below.
+The JMS component supports 98 options, which are listed below.
 
 
 
@@ -204,6 +204,7 @@ The JMS component supports 97 options, which are listed 
below.
 | *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any 
incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *testConnectionOnStartup* (common) | Specifies whether to test the 
connection on startup. This ensures that when Camel starts that all the JMS 
consumers have a valid connection to the JMS broker. If a connection cannot be 
granted then Camel throws an exception on startup. This ensures that Camel is 
not started with failed connections. The JMS producers is tested as well. | 
false | boolean
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which 
is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, 
DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: 
SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | 
AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | 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 av [...]
 | *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the Asynchronous Routing Engine). This means that messages 
may be processed not 100% strictly in order. If disabled (as default) then the 
Exchange is fully processed before the JmsConsumer will pickup the next message 
from the JMS queue. Note if transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should 
auto-startup. | true | boolean
 | *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS 
resources. See cacheLevelName option for more details. |  | int
@@ -333,7 +334,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (94 parameters):
+=== Query Parameters (95 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -347,6 +348,7 @@ with the following path and query parameters:
 | *replyTo* (common) | Provides an explicit ReplyTo destination (overrides any 
incoming value of Message.getJMSReplyTo() in consumer). |  | String
 | *testConnectionOnStartup* (common) | Specifies whether to test the 
connection on startup. This ensures that when Camel starts that all the JMS 
consumers have a valid connection to the JMS broker. If a connection cannot be 
granted then Camel throws an exception on startup. This ensures that Camel is 
not started with failed connections. The JMS producers is tested as well. | 
false | boolean
 | *acknowledgementModeName* (consumer) | The JMS acknowledgement name, which 
is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, 
DUPS_OK_ACKNOWLEDGE. There are 4 enums and the value can be one of: 
SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE | 
AUTO_ACKNOWLEDGE | String
+| *artemisConsumerPriority* (consumer) | 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 av [...]
 | *asyncConsumer* (consumer) | Whether the JmsConsumer processes the Exchange 
asynchronously. If enabled then the JmsConsumer may pickup the next message 
from the JMS queue, while the previous message is being processed 
asynchronously (by the Asynchronous Routing Engine). This means that messages 
may be processed not 100% strictly in order. If disabled (as default) then the 
Exchange is fully processed before the JmsConsumer will pickup the next message 
from the JMS queue. Note if transac [...]
 | *autoStartup* (consumer) | Specifies whether the consumer container should 
auto-startup. | true | boolean
 | *cacheLevel* (consumer) | Sets the cache level by ID for the underlying JMS 
resources. See cacheLevelName option for more details. |  | int

Reply via email to