summaryrefslogtreecommitdiff
path: root/java/perftests
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
commit1ce6e1d254c757a43658da7c6f1fe4591c693f1c (patch)
tree4a34ad1b3eb643e6ee774d4db8a4e5766257a940 /java/perftests
parentc9a3a2d86a39c4254bcccdcde2b578d36c41c561 (diff)
downloadqpid-python-1ce6e1d254c757a43658da7c6f1fe4591c693f1c.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/qpid@1358281 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/perftests')
-rw-r--r--java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java39
-rw-r--r--java/perftests/src/test/java/org/apache/qpid/disttest/controller/config/ParticipantConfigTest.java43
2 files changed, 81 insertions, 1 deletions
diff --git a/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java b/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java
index 31037a3038..5ebd73a8b9 100644
--- a/java/perftests/src/main/java/org/apache/qpid/disttest/controller/config/ParticipantConfig.java
+++ b/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
diff --git a/java/perftests/src/test/java/org/apache/qpid/disttest/controller/config/ParticipantConfigTest.java b/java/perftests/src/test/java/org/apache/qpid/disttest/controller/config/ParticipantConfigTest.java
new file mode 100644
index 0000000000..f58cc628a4
--- /dev/null
+++ b/java/perftests/src/test/java/org/apache/qpid/disttest/controller/config/ParticipantConfigTest.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.qpid.disttest.controller.config;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import org.apache.qpid.disttest.message.CreateParticpantCommand;
+import org.apache.qpid.test.utils.QpidTestCase;
+
+public class ParticipantConfigTest extends QpidTestCase
+{
+ public void testCreateProducerCommandAppliesDurationOverride()
+ {
+ long overriddenDuration = 123;
+ setTestSystemProperty(ParticipantConfig.DURATION_OVERRIDE_SYSTEM_PROPERTY, String.valueOf(overriddenDuration));
+
+ CreateParticpantCommand createParticipantCommand = mock(CreateParticpantCommand.class);
+ ParticipantConfig participantConfig = new ParticipantConfig("name", "destinationName", 1, 2, 5000)
+ {
+ };
+
+ participantConfig.setParticipantProperties(createParticipantCommand);
+
+ verify(createParticipantCommand).setMaximumDuration(overriddenDuration);
+ }
+}