summaryrefslogtreecommitdiff
path: root/java/testkit/src
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2009-05-23 13:35:38 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2009-05-23 13:35:38 +0000
commit67aca96746d64f088d254ef23ab831a3b8f7b4df (patch)
treec1702c30090b2eac869e1d708ab3313d8121374d /java/testkit/src
parent36319d26120c163c0c36598038859dad716ac358 (diff)
downloadqpid-python-67aca96746d64f088d254ef23ab831a3b8f7b4df.tar.gz
The default value for message cache is set to false.
Added the functionality to support variable message sizes using -Drandom_msg_size=true. This will create an array of payloads from 1 byte to x bytes where x is configured by -Dmsg_size=x (default is 1024). The Random number generator works of the same seed so different test runs can be compared properly. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@777922 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/testkit/src')
-rw-r--r--java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java48
-rw-r--r--java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java10
2 files changed, 52 insertions, 6 deletions
diff --git a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java
index e9421d7f22..30885ab461 100644
--- a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java
+++ b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/PerfProducer.java
@@ -20,6 +20,10 @@
*/
package org.apache.qpid.testkit.perf;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
import javax.jms.BytesMessage;
import javax.jms.DeliveryMode;
import javax.jms.Message;
@@ -54,7 +58,13 @@ public class PerfProducer extends PerfBase
MessageProducer producer;
Message msg;
byte[] payload;
-
+ List<byte[]> payloads;
+ boolean cacheMsg = false;
+ boolean randomMsgSize = false;
+ boolean durable = false;
+ Random random;
+ int msgSizeRange = 1024;
+
public PerfProducer()
{
super();
@@ -65,16 +75,32 @@ public class PerfProducer extends PerfBase
super.setUp();
feedbackDest = session.createTemporaryQueue();
+ durable = params.isDurable();
+
// if message caching is enabled we pre create the message
// else we pre create the payload
if (params.isCacheMessage())
{
+ cacheMsg = true;
+
msg = MessageFactory.createBytesMessage(session, params.getMsgSize());
- msg.setJMSDeliveryMode(params.isDurable()?
+ msg.setJMSDeliveryMode(durable?
DeliveryMode.PERSISTENT :
DeliveryMode.NON_PERSISTENT
);
}
+ else if (params.isRandomMsgSize())
+ {
+ random = new Random(20080921);
+ randomMsgSize = true;
+ msgSizeRange = params.getMsgSize();
+ payloads = new ArrayList<byte[]>(msgSizeRange);
+
+ for (int i=1; i < msgSizeRange; i++)
+ {
+ payloads.add(MessageFactory.createMessagePayload(i).getBytes());
+ }
+ }
else
{
payload = MessageFactory.createMessagePayload(params.getMsgSize()).getBytes();
@@ -87,14 +113,26 @@ public class PerfProducer extends PerfBase
protected Message getNextMessage() throws Exception
{
- if (params.isCacheMessage())
+ if (cacheMsg)
{
return msg;
}
else
- {
+ {
msg = session.createBytesMessage();
- ((BytesMessage)msg).writeBytes(payload);
+
+ if (!randomMsgSize)
+ {
+ ((BytesMessage)msg).writeBytes(payload);
+ }
+ else
+ {
+ ((BytesMessage)msg).writeBytes(payloads.get(random.nextInt(msgSizeRange)));
+ }
+ msg.setJMSDeliveryMode(durable?
+ DeliveryMode.PERSISTENT :
+ DeliveryMode.NON_PERSISTENT
+ );
return msg;
}
}
diff --git a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java
index 924fa24fa5..2612af36e1 100644
--- a/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java
+++ b/java/testkit/src/main/java/org/apache/qpid/testkit/perf/TestParams.java
@@ -38,7 +38,7 @@ public class TestParams
private int msg_type = 1; // not used yet
- private boolean cacheMessage = true;
+ private boolean cacheMessage = false;
private boolean disableMessageID = false;
@@ -55,6 +55,8 @@ public class TestParams
private int msg_count = 10;
private int warmup_count = 1;
+
+ private boolean random_msg_size = false;
public TestParams()
{
@@ -75,6 +77,7 @@ public class TestParams
ack_mode = Integer.getInteger("ack_mode",Session.AUTO_ACKNOWLEDGE);
msg_count = Integer.getInteger("msg_count",msg_count);
warmup_count = Integer.getInteger("warmup_count",warmup_count);
+ random_msg_size = Boolean.getBoolean("random_msg_size");
}
public int getAckMode()
@@ -156,5 +159,10 @@ public class TestParams
{
return disableTimestamp;
}
+
+ public boolean isRandomMsgSize()
+ {
+ return random_msg_size;
+ }
}