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 2994ca73aefaff6cbf7c6bd78440b688e2fba939
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Jan 21 08:43:14 2021 +0100

    [CAMEL-16008] Implement consumer priority in camel
---
 .../apache/camel/catalog/docs/amqp-component.adoc  |  6 +-
 .../component/amqp/AMQPEndpointUriFactory.java     | 83 +++++++++++-----------
 .../org/apache/camel/component/amqp/amqp.json      |  2 +
 .../camel-amqp/src/main/docs/amqp-component.adoc   |  6 +-
 .../apache/camel/component/jms/JmsEndpoint.java    |  3 +
 .../component/dsl/AmqpComponentBuilderFactory.java | 25 +++++++
 .../endpoint/dsl/AMQPEndpointBuilderFactory.java   | 48 +++++++++++++
 .../modules/ROOT/pages/amqp-component.adoc         |  6 +-
 8 files changed, 132 insertions(+), 47 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/amqp-component.adoc
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/amqp-component.adoc
index 2a36ebb..9bc83e6 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/amqp-component.adoc
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/amqp-component.adoc
@@ -45,7 +45,7 @@ xref:jms-component.adoc[JMS] component after the destination 
name.
 
 
 // component options: START
-The AMQP component supports 98 options, which are listed below.
+The AMQP component supports 99 options, which are listed below.
 
 
 
@@ -61,6 +61,7 @@ The AMQP component supports 98 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
@@ -179,7 +180,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"]
@@ -193,6 +194,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-amqp/src/generated/java/org/apache/camel/component/amqp/AMQPEndpointUriFactory.java
 
b/components/camel-amqp/src/generated/java/org/apache/camel/component/amqp/AMQPEndpointUriFactory.java
index 867c06f..14768d0 100644
--- 
a/components/camel-amqp/src/generated/java/org/apache/camel/component/amqp/AMQPEndpointUriFactory.java
+++ 
b/components/camel-amqp/src/generated/java/org/apache/camel/component/amqp/AMQPEndpointUriFactory.java
@@ -20,69 +20,83 @@ public class AMQPEndpointUriFactory extends 
org.apache.camel.support.component.E
     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 AMQPEndpointUriFactory extends 
org.apache.camel.support.component.E
         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-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.json
 
b/components/camel-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.json
index 133351f..9c62977 100644
--- 
a/components/camel-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.json
+++ 
b/components/camel-amqp/src/generated/resources/org/apache/camel/component/amqp/amqp.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-amqp/src/main/docs/amqp-component.adoc 
b/components/camel-amqp/src/main/docs/amqp-component.adoc
index 2a36ebb..9bc83e6 100644
--- a/components/camel-amqp/src/main/docs/amqp-component.adoc
+++ b/components/camel-amqp/src/main/docs/amqp-component.adoc
@@ -45,7 +45,7 @@ xref:jms-component.adoc[JMS] component after the destination 
name.
 
 
 // component options: START
-The AMQP component supports 98 options, which are listed below.
+The AMQP component supports 99 options, which are listed below.
 
 
 
@@ -61,6 +61,7 @@ The AMQP component supports 98 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
@@ -179,7 +180,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"]
@@ -193,6 +194,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/main/java/org/apache/camel/component/jms/JmsEndpoint.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
index c21b05c..9fb81e3 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
@@ -90,6 +90,9 @@ public class JmsEndpoint extends DefaultEndpoint
     @UriParam
     private JmsConfiguration configuration;
 
+    public JmsEndpoint() {
+    }
+
     public JmsEndpoint(String uri, JmsComponent component, String 
destinationName, boolean pubSubDomain,
                        JmsConfiguration configuration) {
         super(UnsafeUriCharactersEncoder.encode(uri), component);
diff --git 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AmqpComponentBuilderFactory.java
 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AmqpComponentBuilderFactory.java
index 1c1cafa..35b16ab 100644
--- 
a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AmqpComponentBuilderFactory.java
+++ 
b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/AmqpComponentBuilderFactory.java
@@ -213,6 +213,30 @@ public interface AmqpComponentBuilderFactory {
             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 AmqpComponentBuilder 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
@@ -1943,6 +1967,7 @@ public interface AmqpComponentBuilderFactory {
             case "replyTo": getOrCreateConfiguration((AMQPComponent) 
component).setReplyTo((java.lang.String) value); return true;
             case "testConnectionOnStartup": 
getOrCreateConfiguration((AMQPComponent) 
component).setTestConnectionOnStartup((boolean) value); return true;
             case "acknowledgementModeName": 
getOrCreateConfiguration((AMQPComponent) 
component).setAcknowledgementModeName((java.lang.String) value); return true;
+            case "artemisConsumerPriority": 
getOrCreateConfiguration((AMQPComponent) 
component).setArtemisConsumerPriority((int) value); return true;
             case "asyncConsumer": getOrCreateConfiguration((AMQPComponent) 
component).setAsyncConsumer((boolean) value); return true;
             case "autoStartup": getOrCreateConfiguration((AMQPComponent) 
component).setAutoStartup((boolean) value); return true;
             case "cacheLevel": getOrCreateConfiguration((AMQPComponent) 
component).setCacheLevel((int) value); return true;
diff --git 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java
 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java
index f6df7b8..73055a2 100644
--- 
a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java
+++ 
b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AMQPEndpointBuilderFactory.java
@@ -270,6 +270,54 @@ public interface AMQPEndpointBuilderFactory {
             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 AMQPEndpointConsumerBuilder 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 AMQPEndpointConsumerBuilder 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/amqp-component.adoc 
b/docs/components/modules/ROOT/pages/amqp-component.adoc
index 9aa8b8bc..a7174dc 100644
--- a/docs/components/modules/ROOT/pages/amqp-component.adoc
+++ b/docs/components/modules/ROOT/pages/amqp-component.adoc
@@ -47,7 +47,7 @@ xref:jms-component.adoc[JMS] component after the destination 
name.
 
 
 // component options: START
-The AMQP component supports 98 options, which are listed below.
+The AMQP component supports 99 options, which are listed below.
 
 
 
@@ -63,6 +63,7 @@ The AMQP component supports 98 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
@@ -181,7 +182,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"]
@@ -195,6 +196,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