QPID-7609: Address some review comments from Alex Rudyy <orudyy@apache.org>
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/JmsProvider.java b/systests/src/main/java/org/apache/qpid/test/utils/JmsProvider.java
index a4dbc49..661905d 100644
--- a/systests/src/main/java/org/apache/qpid/test/utils/JmsProvider.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/JmsProvider.java
@@ -36,8 +36,6 @@
 public interface JmsProvider
 {
 
-    InitialContext getInitialContext() throws NamingException;
-
     ConnectionFactory getConnectionFactory() throws NamingException;
 
     ConnectionFactory getConnectionFactory(Map<String, String> options) throws NamingException;
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
index e7abdba..e237b45 100755
--- a/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
@@ -217,11 +217,6 @@
         }
     }
 
-    public InitialContext getInitialContext() throws NamingException
-    {
-        return _jmsProvider.getInitialContext();
-    }
-
     /**
      * Get the default connection factory for the currently used broker
      * Default factory is "local"
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xProvider.java b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xProvider.java
index f9e865c..af4bbe6 100644
--- a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xProvider.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xProvider.java
@@ -67,12 +67,6 @@
     }
 
     @Override
-    public InitialContext getInitialContext() throws NamingException
-    {
-        return new InitialContext(_initialContextEnvironment);
-    }
-
-    @Override
     public ConnectionFactory getConnectionFactory() throws NamingException
     {
         if (Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL))
@@ -113,8 +107,7 @@
             throws NamingException
     {
 
-
-        return (ConnectionFactory) getInitialContext().lookup(factoryName);
+        return (ConnectionFactory) new InitialContext(_initialContextEnvironment).lookup(factoryName);
     }
 
     @Override
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientProvider.java b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientProvider.java
index b612739..f336e40 100644
--- a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientProvider.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientProvider.java
@@ -56,12 +56,6 @@
     }
 
     @Override
-    public InitialContext getInitialContext() throws NamingException
-    {
-        return new InitialContext(_initialContextEnvironment);
-    }
-
-    @Override
     public ConnectionFactory getConnectionFactory() throws NamingException
     {
         return getConnectionFactory(Collections.<String, String>emptyMap());
@@ -170,7 +164,7 @@
             appendOptions(options, stem);
             _initialContextEnvironment.put("connectionfactory.default.ssl", stem.toString());
         }
-        return (ConnectionFactory) getInitialContext().lookup(factoryName);
+        return (ConnectionFactory) new InitialContext(_initialContextEnvironment).lookup(factoryName);
     }
 
     @Override
diff --git a/systests/src/test/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java b/systests/src/test/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java
index d3dac04..5fa7b2d 100644
--- a/systests/src/test/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java
+++ b/systests/src/test/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java
@@ -114,7 +114,7 @@
     private JMSException _exceptionListenerException;
 
     @Override
-    protected void setUp() throws Exception
+    public void setUp() throws Exception
     {
         super.setUp();
 
diff --git a/systests/src/test/java/org/apache/qpid/test/client/failover/FailoverTest.java b/systests/src/test/java/org/apache/qpid/test/client/failover/FailoverTest.java
index fe93d83..32f62b6 100644
--- a/systests/src/test/java/org/apache/qpid/test/client/failover/FailoverTest.java
+++ b/systests/src/test/java/org/apache/qpid/test/client/failover/FailoverTest.java
@@ -60,7 +60,7 @@
     private Random rand;
 
     @Override
-    protected void setUp() throws Exception
+    public void setUp() throws Exception
     {
         super.setUp();
 
diff --git a/systests/src/test/java/org/apache/qpid/test/unit/xa/FaultTest.java b/systests/src/test/java/org/apache/qpid/test/unit/xa/FaultTest.java
index 3761803..117ba23 100644
--- a/systests/src/test/java/org/apache/qpid/test/unit/xa/FaultTest.java
+++ b/systests/src/test/java/org/apache/qpid/test/unit/xa/FaultTest.java
@@ -32,7 +32,6 @@
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
-import junit.framework.TestSuite;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,45 +65,30 @@
      */
     private static QueueSession _nonXASession = null;
 
-    /**
-     * the queue name
-     */
-    private static final String QUEUENAME = "xaQueue";
 
     /** ----------------------------------------------------------------------------------- **/
     /**
      * ----------------------------- JUnit support  ----------------------------------------- *
      */
 
-    /**
-     * Gets the test suite tests
-     *
-     * @return the test suite tests
-     */
-    public static TestSuite getSuite()
-    {
-        return new TestSuite(QueueTest.class);
-    }
-
-    /**
-     * Run the test suite.
-     *
-     * @param args Any command line arguments specified to this class.
-     */
-    public static void main(String args[])
-    {
-        junit.textui.TestRunner.run(getSuite());
-    }
-
     @Override
     public void tearDown() throws Exception
     {
-        if (!isBroker08())
+        try
         {
-            _xaqueueConnection.close();
-            _queueConnection.close();
+            if (_xaqueueConnection != null)
+            {
+                _xaqueueConnection.close();
+            }
+            if (_queueConnection != null)
+            {
+                _queueConnection.close();
+            }
         }
-        super.tearDown();
+        finally
+        {
+            super.tearDown();
+        }
     }
 
     /**
@@ -112,13 +96,13 @@
      */
     public void init() throws Exception
     {
-        if (!isBroker08())
+        if (isBroker010())
         {
-            _queue = (Queue) getInitialContext().lookup(QUEUENAME);
             _queueFactory = (XAQueueConnectionFactory) getConnectionFactory();
-            _xaqueueConnection = _queueFactory.createXAQueueConnection("guest", "guest");
+            _xaqueueConnection = _queueFactory.createXAQueueConnection(GUEST_USERNAME, GUEST_PASSWORD);
             XAQueueSession session = _xaqueueConnection.createXAQueueSession();
-            _queueConnection = _queueFactory.createQueueConnection("guest","guest");
+            _queue = session.createQueue(getTestQueueName());
+            _queueConnection = _queueFactory.createQueueConnection(GUEST_USERNAME, GUEST_PASSWORD);
             _nonXASession = _queueConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
             init(session, _queue);
         }
diff --git a/systests/src/test/java/org/apache/qpid/test/unit/xa/QueueTest.java b/systests/src/test/java/org/apache/qpid/test/unit/xa/QueueTest.java
index 307cb39..941f973 100644
--- a/systests/src/test/java/org/apache/qpid/test/unit/xa/QueueTest.java
+++ b/systests/src/test/java/org/apache/qpid/test/unit/xa/QueueTest.java
@@ -33,7 +33,6 @@
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
-import junit.framework.TestSuite;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,12 +52,12 @@
     /**
      * standard xa queue connection
      */
-    private static XAQueueConnection _xaqueueConnection= null;
+    private static XAQueueConnection _xaqueueConnection = null;
 
     /**
      * standard xa queue connection
      */
-    private static QueueConnection _queueConnection=null;
+    private static QueueConnection _queueConnection = null;
 
 
     /**
@@ -66,109 +65,45 @@
      */
     private static QueueSession _nonXASession = null;
 
-    /**
-     * the queue name
-     */
-    private static final String QUEUENAME = "xaQueue";
 
     /** ----------------------------------------------------------------------------------- **/
     /**
      * ----------------------------- JUnit support  ----------------------------------------- *
      */
 
-    /**
-     * Gets the test suite tests
-     *
-     * @return the test suite tests
-     */
-    public static TestSuite getSuite()
-    {
-        return new TestSuite(QueueTest.class);
-    }
-
-    /**
-     * Run the test suite.
-     *
-     * @param args Any command line arguments specified to this class.
-     */
-    public static void main(String args[])
-    {
-        junit.textui.TestRunner.run(getSuite());
-    }
-
+    @Override
     public void tearDown() throws Exception
     {
-        if (!isBroker08())
+        try
         {
-            try
+            if (_xaqueueConnection != null)
             {
                 _xaqueueConnection.close();
+            }
+            if (_queueConnection != null)
+            {
                 _queueConnection.close();
             }
-            catch (Exception e)
-            {
-                fail("Exception thrown when cleaning standard connection: " + e.getStackTrace());
-            }
         }
-        super.tearDown();
+        finally
+        {
+            super.tearDown();
+        }
     }
 
     /**
      * Initialize standard actors
      */
-    public void init()
+    public void init() throws Exception
     {
         if (!isBroker08())
         {
-            // lookup test queue
-            try
-            {
-                _queue = (Queue) getInitialContext().lookup(QUEUENAME);
-            }
-            catch (Exception e)
-            {
-                fail("cannot lookup test queue " + e.getMessage());
-            }
-
-            // lookup connection factory
-            try
-            {
-                _queueFactory = (XAQueueConnectionFactory) getConnectionFactory();
-            }
-            catch (Exception e)
-            {
-                fail("enable to lookup connection factory ");
-            }
-            // create standard connection
-            try
-            {
-                _xaqueueConnection= getNewQueueXAConnection();
-            }
-            catch (JMSException e)
-            {
-                fail("cannot create queue connection: " + e.getMessage());
-            }
-            // create xa session
-            XAQueueSession session = null;
-            try
-            {
-                session = _xaqueueConnection.createXAQueueSession();
-            }
-            catch (JMSException e)
-            {
-                fail("cannot create queue session: " + e.getMessage());
-            }
-            // create a standard session
-            try
-            {
-                _queueConnection = _queueFactory.createQueueConnection("guest", "guest");
-                _nonXASession = _queueConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
-            }
-            catch (JMSException e)
-            {
-                _logger.error("cannot create queue session",e);
-                fail("cannot create queue session: " + e.getMessage());
-            }
+            _queueFactory = (XAQueueConnectionFactory) getConnectionFactory();
+            _xaqueueConnection= getNewQueueXAConnection();
+            final XAQueueSession session = _xaqueueConnection.createXAQueueSession();
+            _queue = session.createQueue(getTestQueueName());
+            _queueConnection = _queueFactory.createQueueConnection(GUEST_USERNAME, GUEST_PASSWORD);
+            _nonXASession = _queueConnection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
             init(session, _queue);
         }
     }
diff --git a/systests/src/test/java/org/apache/qpid/test/unit/xa/TopicTest.java b/systests/src/test/java/org/apache/qpid/test/unit/xa/TopicTest.java
index b29267f..33a2149 100644
--- a/systests/src/test/java/org/apache/qpid/test/unit/xa/TopicTest.java
+++ b/systests/src/test/java/org/apache/qpid/test/unit/xa/TopicTest.java
@@ -26,7 +26,6 @@
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
-import junit.framework.TestSuite;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -77,26 +76,7 @@
     /** ----------------------------- JUnit support  ----------------------------------------- **/
     /** -------------------------------------------------------------------------------------- **/
 
-    /**
-     * Gets the test suite tests
-     *
-     * @return the test suite tests
-     */
-    public static TestSuite getSuite()
-    {
-        return new TestSuite(TopicTest.class);
-    }
-
-    /**
-     * Run the test suite.
-     *
-     * @param args Any command line arguments specified to this class.
-     */
-    public static void main(String args[])
-    {
-        junit.textui.TestRunner.run(getSuite());
-    }
-
+    @Override
     public void tearDown() throws Exception
     {
         if (!isBroker08())
@@ -117,56 +97,17 @@
     /**
      * Initialize standard actors
      */
-    public void init()
+    public void init() throws Exception
     {
         if (!isBroker08())
         {
             setTestClientSystemProperty(ClientProperties.MAX_PREFETCH_PROP_NAME, "1");
             // lookup test queue
-            try
-            {
-                _topic = (Topic) getInitialContext().lookup(TOPICNAME);
-            }
-            catch (Exception e)
-            {
-                fail("cannot lookup test topic " + e.getMessage());
-            }
-            // lookup connection factory
-            try
-            {
-                _topicFactory = (XATopicConnectionFactory) getConnectionFactory();
-            }
-            catch (Exception e)
-            {
-                fail("enable to lookup connection factory ");
-            }
-            // create standard connection
-            try
-            {
-                _topicConnection = getNewTopicXAConnection();
-            }
-            catch (JMSException e)
-            {
-                fail("cannot create queue connection: " + e.getMessage());
-            }
-            // create standard session
-            try
-            {
-                _session = _topicConnection.createXATopicSession();
-            }
-            catch (JMSException e)
-            {
-                fail("cannot create queue session: " + e.getMessage());
-            }
-            // create a standard session
-            try
-            {
-                _nonXASession = _topicConnection.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
-            }
-            catch (JMSException e)
-            {
-                _logger.error("Error creating topic session", e);
-            }
+            _topicFactory = (XATopicConnectionFactory) getConnectionFactory();
+            _topicConnection = getNewTopicXAConnection();
+            _session = _topicConnection.createXATopicSession();
+            _topic = _session.createTopic(getTestQueueName());
+            _nonXASession = _topicConnection.createTopicSession(true, Session.AUTO_ACKNOWLEDGE);
             init(_session, _topic);
         }
     }
diff --git a/systests/src/test/java/org/apache/qpid/test/utils/FailoverBaseCase.java b/systests/src/test/java/org/apache/qpid/test/utils/FailoverBaseCase.java
index d0c77e4..efadf55 100644
--- a/systests/src/test/java/org/apache/qpid/test/utils/FailoverBaseCase.java
+++ b/systests/src/test/java/org/apache/qpid/test/utils/FailoverBaseCase.java
@@ -20,9 +20,13 @@
  */
 package org.apache.qpid.test.utils;
 
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.CountDownLatch;
 
+import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
+import javax.jms.IllegalStateException;
 import javax.jms.JMSException;
 import javax.naming.NamingException;
 
@@ -43,9 +47,10 @@
     protected int _port;
     protected int _alternativePort;
     private ConnectionFactory _connectionFactory;
+    private final List<Connection> _connections = new ArrayList<>();
 
     @Override
-    protected void setUp() throws Exception
+    public void setUp() throws Exception
     {
         super.setUp();
         _failoverComplete = new CountDownLatch(1);
@@ -60,6 +65,28 @@
         setTestSystemProperty("test.port", String.valueOf(_port));
     }
 
+    @Override
+    protected void tearDown() throws Exception
+    {
+        try
+        {
+            for(Connection c : _connections)
+            {
+                try
+                {
+                    c.close();
+                }
+                catch (JMSException e)
+                {
+                }
+            }
+        }
+        finally
+        {
+            super.tearDown();
+        }
+    }
+
     /**
      * We are using failover factories
      *
@@ -87,7 +114,9 @@
     @Override
     public javax.jms.Connection getConnection() throws JMSException, NamingException
     {
-        return getConnectionFactory().createConnection(GUEST_USERNAME, GUEST_PASSWORD);
+        final Connection connection = getConnectionFactory().createConnection(GUEST_USERNAME, GUEST_PASSWORD);
+        _connections.add(connection);
+        return connection;
     }
 
     public void failDefaultBroker()