summaryrefslogtreecommitdiff
path: root/qpid/java/perftests/src/main
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2012-07-06 15:52:42 +0000
committerRobert Gemmell <robbie@apache.org>2012-07-06 15:52:42 +0000
commit0b4a603d83bccf562349b444e351607cc9398dc4 (patch)
tree6523688c43fc73dee5902ea8a2f2173bd2f2edc8 /qpid/java/perftests/src/main
parent075b23734c31d05cd81aa3948666e0dcb38bf369 (diff)
downloadqpid-python-0b4a603d83bccf562349b444e351607cc9398dc4.tar.gz
QPID-4113: added support for a system property to override all participant durations.
Applied patch from Philip Harvey <phil@philharveyonline.com> git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1358281 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/perftests/src/main')
-rw-r--r--qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java39
1 files changed, 38 insertions, 1 deletions
diff --git a/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java b/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java
index 31037a3038..5ebd73a8b9 100644
--- a/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java
+++ b/qpid/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java
@@ -18,10 +18,20 @@
*/
package org.apache.qpid.disttest.controller.config;
+import org.apache.commons.lang.ObjectUtils;
import org.apache.qpid.disttest.message.CreateParticpantCommand;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public abstract class ParticipantConfig
{
+ private static final Logger LOGGER = LoggerFactory.getLogger(ParticipantConfig.class);
+
+ public static final String DURATION_OVERRIDE_SYSTEM_PROPERTY = "qpid.disttest.duration";
+
+ /** we cache the overridden duration so that we only compute and - more importantly - log it once */
+ private static Long cachedOverriddenDuration;
+
private String _destinationName;
private long _numberOfMessages;
private String _name;
@@ -58,7 +68,34 @@ public abstract class ParticipantConfig
createParticipantCommand.setDestinationName(_destinationName);
createParticipantCommand.setNumberOfMessages(_numberOfMessages);
createParticipantCommand.setBatchSize(_batchSize);
- createParticipantCommand.setMaximumDuration(_maximumDuration);
+
+ Long maximumDuration = (Long)ObjectUtils.defaultIfNull(getOverriddenDuration(), _maximumDuration);
+ createParticipantCommand.setMaximumDuration(maximumDuration);
}
+ private Long getOverriddenDuration()
+ {
+ if(cachedOverriddenDuration != null)
+ {
+ return cachedOverriddenDuration;
+ }
+
+ String overriddenDurationString = System.getProperty(DURATION_OVERRIDE_SYSTEM_PROPERTY);
+ if(overriddenDurationString != null)
+ {
+ try
+ {
+ long overriddenDuration = Long.valueOf(overriddenDurationString);
+ LOGGER.info("Applied overridden maximum duration " + overriddenDuration);
+ cachedOverriddenDuration = overriddenDuration;
+ return overriddenDuration;
+ }
+ catch (NumberFormatException e)
+ {
+ LOGGER.error("Couldn't parse overridden duration " + overriddenDurationString, e);
+ }
+ }
+
+ return null;
+ }
} \ No newline at end of file