diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-07-06 15:52:42 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-07-06 15:52:42 +0000 |
| commit | 0b4a603d83bccf562349b444e351607cc9398dc4 (patch) | |
| tree | 6523688c43fc73dee5902ea8a2f2173bd2f2edc8 /qpid/java/perftests/src/main | |
| parent | 075b23734c31d05cd81aa3948666e0dcb38bf369 (diff) | |
| download | qpid-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.java | 39 |
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 |
