QPID-8349: Use jvm system property to configure broker admin type in test runner
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 22021b3..1b74bbe 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
@@ -70,6 +70,7 @@
public class EmbeddedBrokerPerClassAdminImpl implements BrokerAdmin
{
private static final Logger LOGGER = LoggerFactory.getLogger(EmbeddedBrokerPerClassAdminImpl.class);
+ public static final String TYPE = "EMBEDDED_BROKER_PER_CLASS";
private final Map<String, Integer> _ports = new HashMap<>();
private SystemLauncher _systemLauncher;
private Broker<?> _broker;
@@ -393,7 +394,7 @@
@Override
public String getType()
{
- return "EMBEDDED_BROKER_PER_CLASS";
+ return TYPE;
}
private Queue getQueue(final String queueName)
diff --git a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/QpidTestRunner.java b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/QpidTestRunner.java
index 1f7a8b6..4f92a07 100644
--- a/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/QpidTestRunner.java
+++ b/systests/systests-utils/src/main/java/org/apache/qpid/tests/utils/QpidTestRunner.java
@@ -27,6 +27,7 @@
public class QpidTestRunner extends BlockJUnit4ClassRunner
{
+ private static final String PROPERTY_BROKER_ADMIN_TYPE = "qpid.tests.brokerAdminType";
private final BrokerAdmin _brokerAdmin;
private final BrokerAdmin _original;
private final Class _testClass;
@@ -35,8 +36,16 @@
{
super(klass);
_testClass = klass;
- RunBrokerAdmin runBrokerAdmin = (RunBrokerAdmin) _testClass.getAnnotation(RunBrokerAdmin.class);
- String type = runBrokerAdmin == null ? "EMBEDDED_BROKER_PER_CLASS" : runBrokerAdmin.type();
+ final RunBrokerAdmin runBrokerAdmin = (RunBrokerAdmin) _testClass.getAnnotation(RunBrokerAdmin.class);
+ final String type;
+ if (runBrokerAdmin == null)
+ {
+ type = System.getProperty(PROPERTY_BROKER_ADMIN_TYPE, EmbeddedBrokerPerClassAdminImpl.TYPE);
+ }
+ else
+ {
+ type = runBrokerAdmin.type();
+ }
_original = new BrokerAdminFactory().createInstance(type);
_brokerAdmin = new LoggingBrokerAdminDecorator(_original);
}