From eecf7b6eade1ab168511d37835e2e089950c3584 Mon Sep 17 00:00:00 2001 From: Ken Liao Date: Sat, 19 Oct 2024 16:06:21 -0700 Subject: [PATCH] Add priority and disableMessageTimestamp to the producer command of activemq CLI --- .../org/apache/activemq/util/ProducerThread.java | 12 ++++++++++++ .../activemq/console/command/ProducerCommand.java | 12 ++++++++++++ .../org/apache/activemq/console/command/producer.txt | 4 +++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/activemq-client/src/main/java/org/apache/activemq/util/ProducerThread.java b/activemq-client/src/main/java/org/apache/activemq/util/ProducerThread.java index da032320f4..447639ac83 100644 --- a/activemq-client/src/main/java/org/apache/activemq/util/ProducerThread.java +++ b/activemq-client/src/main/java/org/apache/activemq/util/ProducerThread.java @@ -40,6 +40,8 @@ public class ProducerThread extends Thread { long msgTTL = 0L; String msgGroupID=null; int transactionBatchSize; + int priority = 4; + boolean disableMessageTimestamp = false; int transactions = 0; AtomicInteger sentCount = new AtomicInteger(0); @@ -64,6 +66,8 @@ public void run() { producer = session.createProducer(destination); producer.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT); producer.setTimeToLive(msgTTL); + producer.setPriority(priority); + producer.setDisableMessageTimestamp(disableMessageTimestamp); initPayLoad(); running = true; @@ -306,4 +310,12 @@ public synchronized void resumeProducer(){ public void resetCounters(){ this.sentCount.set(0); } + + public void setMessagePriority(int priority) { + this.priority = priority; + } + + public void setDisableMessageTimestamp(boolean disableMessageTimestamp) { + this.disableMessageTimestamp = disableMessageTimestamp; + } } diff --git a/activemq-console/src/main/java/org/apache/activemq/console/command/ProducerCommand.java b/activemq-console/src/main/java/org/apache/activemq/console/command/ProducerCommand.java index 28409fd437..5546610490 100644 --- a/activemq-console/src/main/java/org/apache/activemq/console/command/ProducerCommand.java +++ b/activemq-console/src/main/java/org/apache/activemq/console/command/ProducerCommand.java @@ -45,6 +45,8 @@ public class ProducerCommand extends AbstractCommand { String msgGroupID=null; int transactionBatchSize; private int parallelThreads = 1; + int priority = 4; // Default priority + boolean disableMessageTimestamp = false; @Override protected void runTask(List tokens) throws Exception { @@ -82,6 +84,8 @@ protected void runTask(List tokens) throws Exception { producer.setMsgGroupID(msgGroupID); producer.setTextMessageSize(textMessageSize); producer.setFinished(active); + producer.setMessagePriority(priority); + producer.setDisableMessageTimestamp(disableMessageTimestamp); producer.start(); } @@ -213,6 +217,14 @@ public void setMessage(String message) { this.message = message; } + public void setMessagePriority(int priority) { + this.priority = priority; + } + + public void setDisableMessageTimestamp(boolean disableMessageTimestamp) { + this.disableMessageTimestamp = disableMessageTimestamp; + } + @Override protected void printHelp() { printHelpFromFile(); diff --git a/activemq-console/src/main/resources/org/apache/activemq/console/command/producer.txt b/activemq-console/src/main/resources/org/apache/activemq/console/command/producer.txt index 1f37586a9f..d836744710 100644 --- a/activemq-console/src/main/resources/org/apache/activemq/console/command/producer.txt +++ b/activemq-console/src/main/resources/org/apache/activemq/console/command/producer.txt @@ -15,4 +15,6 @@ Options : [--textMessageSize N] - size in bytes of a TextMessage, a Lorem ipsum demo TextMessage is used [--message ..] - a text string to use as the message body [--payloadUrl URL] - a url pointing to a document to use as the message body - [--msgGroupID ..] - JMS message group identifier \ No newline at end of file + [--msgGroupID ..] - JMS message group identifier + [--messagePriority N] - The message priority. Default is 4 + [--disableMessageTimestamp true|false] - Whether or not to disable timestamp on message, default false \ No newline at end of file