This is an automated email from the ASF dual-hosted git repository. orudyy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
commit b724eb4730d6d95546129a4bc7d4e9edebec937f Author: Alex Rudyy <[email protected]> AuthorDate: Tue Aug 20 17:19:39 2019 +0100 QPID-8349: [Tests][AMQP 1.0] Use annotation ConfigItem for setting Qpid Broker-J JVM system properties --- .../v1_0/extensions/filter/FilterTest.java | 20 ++---------------- .../protocol/v1_0/messaging/MultiTransferTest.java | 22 ++------------------ .../protocol/v1_0/messaging/TransferTest.java | 20 ++---------------- .../v1_0/transport/link/ResumeDeliveriesTest.java | 24 ++++------------------ .../qpid/systests/admin/SpawnBrokerAdmin.java | 9 +++++++- .../org/apache/qpid/tests/utils/ConfigItem.java | 1 + .../utils/EmbeddedBrokerPerClassAdminImpl.java | 23 ++++++++++++++++++--- 7 files changed, 39 insertions(+), 80 deletions(-) diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java index 680c7b6..c359e40 100644 --- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java +++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/extensions/filter/FilterTest.java @@ -37,7 +37,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -63,36 +62,21 @@ import org.apache.qpid.tests.protocol.v1_0.extensions.type.TestFilter; import org.apache.qpid.tests.utils.BrokerAdmin; import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase; import org.apache.qpid.tests.utils.BrokerSpecific; +import org.apache.qpid.tests.utils.ConfigItem; +@ConfigItem(name = "qpid.tests.mms.messagestore.persistence", value = "false", jvm = true) public class FilterTest extends BrokerAdminUsingTestBase { public static final String TEST_MESSAGE_CONTENT = "testContent"; private InetSocketAddress _brokerAddress; - private String _originalMmsMessageStorePersistence; @Before public void setUp() { - _originalMmsMessageStorePersistence = System.getProperty("qpid.tests.mms.messagestore.persistence"); - System.setProperty("qpid.tests.mms.messagestore.persistence", "false"); - getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME); _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP); } - @After - public void tearDown() - { - if (_originalMmsMessageStorePersistence != null) - { - System.setProperty("qpid.tests.mms.messagestore.persistence", _originalMmsMessageStorePersistence); - } - else - { - System.clearProperty("qpid.tests.mms.messagestore.persistence"); - } - } - @Test @BrokerSpecific(kind = KIND_BROKER_J) @SpecificationTest(section = "3.5.1", description = "A source can restrict the messages transferred from a source by specifying a filter.") diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java index 3b421c7..a5f7e7c 100644 --- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java +++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/MultiTransferTest.java @@ -22,7 +22,6 @@ package org.apache.qpid.tests.protocol.v1_0.messaging; import static java.nio.charset.StandardCharsets.UTF_8; import static org.hamcrest.CoreMatchers.instanceOf; -import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; @@ -32,7 +31,6 @@ import java.net.InetSocketAddress; import java.util.HashMap; import java.util.Map; -import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -54,38 +52,22 @@ import org.apache.qpid.tests.protocol.v1_0.FrameTransport; import org.apache.qpid.tests.protocol.v1_0.Interaction; import org.apache.qpid.tests.protocol.SpecificationTest; import org.apache.qpid.tests.protocol.v1_0.Utils; -import org.apache.qpid.tests.protocol.Response; import org.apache.qpid.tests.utils.BrokerAdmin; import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase; +import org.apache.qpid.tests.utils.ConfigItem; +@ConfigItem(name = "qpid.tests.mms.messagestore.persistence", value = "false", jvm = true) public class MultiTransferTest extends BrokerAdminUsingTestBase { private InetSocketAddress _brokerAddress; - private String _originalMmsMessageStorePersistence; @Before public void setUp() { - _originalMmsMessageStorePersistence = System.getProperty("qpid.tests.mms.messagestore.persistence"); - System.setProperty("qpid.tests.mms.messagestore.persistence", "false"); - getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME); _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP); } - @After - public void tearDown() - { - if (_originalMmsMessageStorePersistence != null) - { - System.setProperty("qpid.tests.mms.messagestore.persistence", _originalMmsMessageStorePersistence); - } - else - { - System.clearProperty("qpid.tests.mms.messagestore.persistence"); - } - } - @Test @SpecificationTest(section = "2.6.14", description = "For messages that are too large to fit within the maximum frame size, additional data MAY" diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java index dab344e..4ef0f28 100644 --- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java +++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/messaging/TransferTest.java @@ -48,7 +48,6 @@ import java.util.stream.LongStream; import java.util.stream.Stream; import com.google.common.collect.Sets; -import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -89,36 +88,21 @@ import org.apache.qpid.tests.protocol.v1_0.Utils; import org.apache.qpid.tests.utils.BrokerAdmin; import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase; import org.apache.qpid.tests.utils.BrokerSpecific; +import org.apache.qpid.tests.utils.ConfigItem; +@ConfigItem(name = "qpid.tests.mms.messagestore.persistence", value = "false", jvm = true) public class TransferTest extends BrokerAdminUsingTestBase { private static final long MAX_MAX_MESSAGE_SIZE_WE_ARE_WILLING_TO_TEST = 200 * 1024 * 1024L; private InetSocketAddress _brokerAddress; - private String _originalMmsMessageStorePersistence; @Before public void setUp() { - _originalMmsMessageStorePersistence = System.getProperty("qpid.tests.mms.messagestore.persistence"); - System.setProperty("qpid.tests.mms.messagestore.persistence", "false"); - getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME); _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP); } - @After - public void tearDown() - { - if (_originalMmsMessageStorePersistence != null) - { - System.setProperty("qpid.tests.mms.messagestore.persistence", _originalMmsMessageStorePersistence); - } - else - { - System.clearProperty("qpid.tests.mms.messagestore.persistence"); - } - } - @Test @SpecificationTest(section = "1.3.4", description = "mandatory [...] a non null value for the field is always encoded.") diff --git a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java index 61884e3..b38d30e 100644 --- a/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java +++ b/systests/protocol-tests-amqp-1-0/src/test/java/org/apache/qpid/tests/protocol/v1_0/transport/link/ResumeDeliveriesTest.java @@ -44,7 +44,6 @@ import java.util.List; import java.util.Map; import org.hamcrest.Matchers; -import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -67,43 +66,28 @@ import org.apache.qpid.server.protocol.v1_0.type.transport.ReceiverSettleMode; import org.apache.qpid.server.protocol.v1_0.type.transport.Role; import org.apache.qpid.server.protocol.v1_0.type.transport.SenderSettleMode; import org.apache.qpid.server.protocol.v1_0.type.transport.Transfer; +import org.apache.qpid.tests.protocol.Response; +import org.apache.qpid.tests.protocol.SpecificationTest; import org.apache.qpid.tests.protocol.v1_0.FrameTransport; import org.apache.qpid.tests.protocol.v1_0.Interaction; -import org.apache.qpid.tests.protocol.SpecificationTest; import org.apache.qpid.tests.protocol.v1_0.Utils; -import org.apache.qpid.tests.protocol.Response; import org.apache.qpid.tests.utils.BrokerAdmin; import org.apache.qpid.tests.utils.BrokerAdminUsingTestBase; +import org.apache.qpid.tests.utils.ConfigItem; +@ConfigItem(name = "qpid.tests.mms.messagestore.persistence", value = "false", jvm = true) public class ResumeDeliveriesTest extends BrokerAdminUsingTestBase { private static final int MIN_MAX_FRAME_SIZE = 512; private InetSocketAddress _brokerAddress; - private String _originalMmsMessageStorePersistence; @Before public void setUp() { - _originalMmsMessageStorePersistence = System.getProperty("qpid.tests.mms.messagestore.persistence"); - System.setProperty("qpid.tests.mms.messagestore.persistence", "false"); - getBrokerAdmin().createQueue(BrokerAdmin.TEST_QUEUE_NAME); _brokerAddress = getBrokerAdmin().getBrokerAddress(BrokerAdmin.PortType.ANONYMOUS_AMQP); } - @After - public void tearDown() - { - if (_originalMmsMessageStorePersistence != null) - { - System.setProperty("qpid.tests.mms.messagestore.persistence", _originalMmsMessageStorePersistence); - } - else - { - System.clearProperty("qpid.tests.mms.messagestore.persistence"); - } - } - @Ignore("QPID-7845") @Test @SpecificationTest(section = "2.6.13", diff --git a/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java b/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java index 9f8ed5e..0ce90ac 100644 --- a/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java +++ b/systests/qpid-systests-spawn-admin/src/main/java/org/apache/qpid/systests/admin/SpawnBrokerAdmin.java @@ -742,6 +742,8 @@ public class SpawnBrokerAdmin implements BrokerAdmin, Closeable classpath = new String(Files.readAllBytes(file.toPath()), UTF_8); } + final ConfigItem[] configItems = (ConfigItem[]) testClass.getAnnotationsByType(ConfigItem.class); + List<String> jvmArguments = new ArrayList<>(); jvmArguments.add("java"); jvmArguments.add("-cp"); @@ -749,6 +751,10 @@ public class SpawnBrokerAdmin implements BrokerAdmin, Closeable jvmArguments.add("-Djava.io.tmpdir=" + escape(System.getProperty("java.io.tmpdir"))); jvmArguments.add("-Dlogback.configurationFile=default-broker-logback.xml"); jvmArguments.add("-Dqpid.tests.mms.messagestore.persistence=true"); + jvmArguments.addAll(Arrays.stream(configItems) + .filter(ConfigItem::jvm) + .map(ci -> String.format("-D%s=%s", ci.name(), ci.value())) + .collect(Collectors.toList())); jvmArguments.add("org.apache.qpid.server.Main"); jvmArguments.add("--store-type"); jvmArguments.add("JSON"); @@ -766,7 +772,8 @@ public class SpawnBrokerAdmin implements BrokerAdmin, Closeable .filter(n -> n.startsWith("qpid.")) .forEach(n -> context.put(n, System.getProperty(n))); - context.putAll(Arrays.stream((ConfigItem[]) testClass.getAnnotationsByType(ConfigItem.class)) + context.putAll(Arrays.stream(configItems) + .filter(i -> !i.jvm()) .collect(Collectors.toMap(ConfigItem::name, ConfigItem::value, (name, value) -> value))); diff --git a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ConfigItem.java b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ConfigItem.java index 493f865..a57e747 100644 --- a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ConfigItem.java +++ b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/ConfigItem.java @@ -33,4 +33,5 @@ public @interface ConfigItem { String name(); String value(); + boolean jvm() default false; } diff --git a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java index f51c970..59cf731 100644 --- a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java +++ b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/EmbeddedBrokerPerClassAdminImpl.java @@ -77,26 +77,32 @@ public class EmbeddedBrokerPerClassAdminImpl implements BrokerAdmin private VirtualHostNode<?> _currentVirtualHostNode; private String _currentWorkDirectory; private boolean _isPersistentStore; - private Map<String, String> _preservedContext; + private Map<String, String> _preservedProperties; @Override public void beforeTestClass(final Class testClass) { + _preservedProperties = new HashMap<>(); try { String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date(System.currentTimeMillis())); _currentWorkDirectory = Files.createTempDirectory(String.format("qpid-work-%s-%s-", timestamp, testClass.getSimpleName())).toString(); + ConfigItem[] configItems = (ConfigItem[]) testClass.getAnnotationsByType(ConfigItem.class); + Arrays.stream(configItems).filter(ConfigItem::jvm).forEach(i -> { + _preservedProperties.put(i.name(), System.getProperty(i.name())); + System.setProperty(i.name(), i.value()); + }); Map<String, String> context = new HashMap<>(); context.put("qpid.work_dir", _currentWorkDirectory); context.put("qpid.port.protocol_handshake_timeout", "1000000"); - context.putAll(Arrays.stream((ConfigItem[]) testClass.getAnnotationsByType(ConfigItem.class)) + context.putAll(Arrays.stream(configItems) + .filter(i -> !i.jvm()) .collect(Collectors.toMap(ConfigItem::name, ConfigItem::value, (name, value) -> value))); Map<String,Object> systemConfigAttributes = new HashMap<>(); - //systemConfigAttributes.put(SystemConfig.INITIAL_CONFIGURATION_LOCATION, "classpath:config-protocol-tests.json"); systemConfigAttributes.put(ConfiguredObject.CONTEXT, context); systemConfigAttributes.put(ConfiguredObject.TYPE, System.getProperty("broker.config-store-type", "JSON")); systemConfigAttributes.put(SystemConfig.STARTUP_LOGGED_TO_SYSTEM_OUT, Boolean.FALSE); @@ -187,6 +193,17 @@ public class EmbeddedBrokerPerClassAdminImpl implements BrokerAdmin { FileUtils.delete(new File(_currentWorkDirectory), true); } + + _preservedProperties.forEach((k,v)-> { + if (v == null) + { + System.clearProperty(k); + } + else + { + System.setProperty(k, v); + } + }); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
