You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2017/11/28 07:38:31 UTC

[5/7] qpid-broker-j git commit: QPID-6933: [System Tests] Remove compile time dependencies to legacy JMS client classes from JMSProvider implementations and reduce the amount of methods to create connection

QPID-6933: [System Tests] Remove compile time dependencies to legacy JMS client classes from JMSProvider implementations and reduce the amount of methods to create connection


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/9089861a
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/9089861a
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/9089861a

Branch: refs/heads/master
Commit: 9089861a47551cb6caee363c961655e94c7e97fd
Parents: 6dc3233
Author: Alex Rudyy <or...@apache.org>
Authored: Mon Nov 27 23:21:25 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Tue Nov 28 07:37:08 2017 +0000

----------------------------------------------------------------------
 .../qpid/test/utils/AmqpManagementFacade.java   |  23 +-
 .../qpid/test/utils/ConnectionBuilder.java      |  10 +-
 .../org/apache/qpid/test/utils/JmsProvider.java |  38 +--
 .../qpid/test/utils/QpidBrokerTestCase.java     |  96 +++---
 .../utils/QpidJmsClient0xConnectionBuilder.java | 128 +++++---
 .../test/utils/QpidJmsClient0xProvider.java     | 301 +++++++------------
 .../utils/QpidJmsClientConnectionBuilder.java   |  46 +--
 .../qpid/test/utils/QpidJmsClientProvider.java  | 295 +++---------------
 .../client/failover/FailoverBehaviourTest.java  |   4 +-
 .../ObjectMessageClassWhitelistingTest.java     |   4 +-
 .../org/apache/qpid/client/ssl/SSLTest.java     |   8 +-
 .../qpid/server/AbruptClientDisconnectTest.java |   2 +-
 .../message/MessageProtocolConversionTest.java  |   9 +-
 .../manager/ExternalAuthenticationTest.java     |   2 +-
 .../qpid/systest/MessageCompressionTest.java    |  16 +-
 .../management/amqp/AmqpManagementTest.java     |  10 +-
 .../AddressBasedDestinationTest.java            |   2 +-
 .../apache/qpid/test/unit/message/UTF8Test.java |  46 ++-
 .../qpid/test/utils/FailoverBaseCase.java       |  16 +-
 test-profiles/Java10UninvestigatedTestsExcludes |   3 +
 20 files changed, 416 insertions(+), 643 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/AmqpManagementFacade.java
----------------------------------------------------------------------
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/AmqpManagementFacade.java b/systests/src/main/java/org/apache/qpid/test/utils/AmqpManagementFacade.java
index fceba26..e7408ba 100644
--- a/systests/src/main/java/org/apache/qpid/test/utils/AmqpManagementFacade.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/AmqpManagementFacade.java
@@ -174,6 +174,11 @@ public class AmqpManagementFacade
         Message response = consumer.receive(5000);
         try
         {
+            int statusCode = response.getIntProperty("statusCode");
+            if (statusCode < 200 || statusCode > 299)
+            {
+                throw new OperationUnsuccessfulException(statusCode);
+            }
             if (response instanceof MapMessage)
             {
                 MapMessage bodyMap = (MapMessage) response;
@@ -339,4 +344,20 @@ public class AmqpManagementFacade
         }
         return results;
     }
-}
\ No newline at end of file
+
+    public static class OperationUnsuccessfulException extends RuntimeException
+    {
+        private final int _statusCode;
+
+        private OperationUnsuccessfulException(final int statusCode)
+        {
+            super();
+            _statusCode = statusCode;
+        }
+
+        public int getStatusCode()
+        {
+            return _statusCode;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/ConnectionBuilder.java
----------------------------------------------------------------------
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/ConnectionBuilder.java b/systests/src/main/java/org/apache/qpid/test/utils/ConnectionBuilder.java
index afbdba8..70fd7fb 100644
--- a/systests/src/main/java/org/apache/qpid/test/utils/ConnectionBuilder.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/ConnectionBuilder.java
@@ -20,13 +20,13 @@
 
 package org.apache.qpid.test.utils;
 
+import java.util.Map;
+
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
 import javax.naming.NamingException;
 
-import org.apache.qpid.url.URLSyntaxException;
-
 public interface ConnectionBuilder
 {
     ConnectionBuilder setHost(String host);
@@ -41,7 +41,9 @@ public interface ConnectionBuilder
     ConnectionBuilder setFailoverReconnectAttempts(int reconnectAttempts);
     ConnectionBuilder setTls(boolean enableTls);
     ConnectionBuilder setSyncPublish(boolean syncPublish);
+    ConnectionBuilder setOptions(Map<String, String> options);
+    ConnectionBuilder setPopulateJMSXUserID(boolean populateJMSXUserID);
 
-    Connection build() throws NamingException, JMSException, URLSyntaxException;
-    ConnectionFactory buildConnectionFactory() throws NamingException, URLSyntaxException;
+    Connection build() throws NamingException, JMSException;
+    ConnectionFactory buildConnectionFactory() throws NamingException;
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/JmsProvider.java
----------------------------------------------------------------------
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 6e21325..1dbd289 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
@@ -29,50 +29,18 @@ import javax.jms.JMSException;
 import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.Topic;
-import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
 
 public interface JmsProvider
 {
-
     ConnectionFactory getConnectionFactory() throws NamingException;
 
     ConnectionFactory getConnectionFactory(Map<String, String> options) throws NamingException;
 
-    ConnectionFactory getConnectionFactory(String factoryName) throws NamingException;
-
-    ConnectionFactory getConnectionFactory(String factoryName, String vhost, String clientId) throws NamingException;
-
-    ConnectionFactory getConnectionFactory(String factoryName,
-                                           String vhost,
-                                           String clientId,
-                                           Map<String, String> options)
-                            throws NamingException;
-
-    Connection getConnection() throws JMSException, NamingException;
-
-    Connection getConnectionWithPrefetch(int prefetch) throws Exception;
-
-    Connection getConnectionWithOptions(Map<String, String> options) throws Exception;
-
-    Connection getConnectionWithOptions(String vhost, Map<String, String> options) throws Exception;
-
-    Connection getConnectionForVHost(String vhost)
-                                    throws Exception;
-
-    Connection getConnectionForVHost(String vhost, String username, String password)
-                                            throws Exception;
-
     Connection getConnection(String urlString) throws Exception;
 
-    Connection getConnection(String username, String password) throws JMSException, NamingException;
-
-    Connection getConnectionWithSyncPublishing() throws Exception;
-
-    Connection getClientConnection(String username, String password, String id) throws Exception;
-
-    Queue getTestQueue(String testQueueName);
+    Queue getTestQueue(String testQueueName) throws NamingException;
 
     Queue getQueueFromName(Session session, String name) throws JMSException;
 
@@ -86,9 +54,9 @@ public interface JmsProvider
 
     Topic createTopicOnFanout(Connection con, String topicName) throws JMSException, URISyntaxException;
 
-    long getQueueDepth(Connection con, Queue destination) throws Exception;
+    long getQueueDepth(Queue destination) throws Exception;
 
-    boolean isQueueExist(Connection con, Queue destination) throws Exception;
+    boolean isQueueExist(Queue destination) throws Exception;
 
     String getBrokerDetailsFromDefaultConnectionUrl();
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
----------------------------------------------------------------------
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 cda5895..6a9b6a0 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
@@ -19,6 +19,9 @@ package org.apache.qpid.test.utils;
 
 import java.io.File;
 import java.io.UnsupportedEncodingException;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
 import java.net.URISyntaxException;
 import java.net.URLEncoder;
 import java.util.ArrayList;
@@ -224,7 +227,16 @@ public class QpidBrokerTestCase extends QpidTestCase
 
     public ConnectionBuilder getConnectionBuilder()
     {
-        return _jmsProvider.getConnectionBuilder().setVirtualHost("test");
+        final ConnectionBuilder connectionBuilder = _jmsProvider.getConnectionBuilder()
+                                                                .setVirtualHost("test")
+                                                                .setTls(Boolean.getBoolean(PROFILE_USE_SSL))
+                                                                .setPopulateJMSXUserID(true)
+                                                                .setUsername(GUEST_USERNAME)
+                                                                .setPassword(GUEST_PASSWORD);
+
+        return (ConnectionBuilder) Proxy.newProxyInstance(getClass().getClassLoader(),
+                                                          new Class<?>[]{ConnectionBuilder.class},
+                                                          new ConectionBuilderHandler(connectionBuilder, _connections));
     }
 
     /**
@@ -244,59 +256,36 @@ public class QpidBrokerTestCase extends QpidTestCase
         return _jmsProvider.getConnectionFactory(options);
     }
 
-    public ConnectionFactory getConnectionFactory(String factoryName)
-            throws NamingException
-    {
-        return _jmsProvider.getConnectionFactory(factoryName);
-    }
-
-    public ConnectionFactory getConnectionFactory(String factoryName, String vhost, String clientId)
-            throws NamingException
-    {
-        return _jmsProvider.getConnectionFactory(factoryName, vhost, clientId);
-    }
-
     public Connection getConnection() throws JMSException, NamingException
     {
-        Connection connection = _jmsProvider.getConnection();
-        _connections.add(connection);
-        return connection;
+        return getConnection(GUEST_USERNAME, GUEST_PASSWORD);
     }
 
     public Connection getConnection(String username, String password) throws JMSException, NamingException
     {
-        Connection connection = _jmsProvider.getConnection(username, password);
-        _connections.add(connection);
-        return connection;
+        return getConnectionBuilder().setUsername(username).setPassword(password).build();
     }
 
     public Connection getConnectionWithPrefetch(int prefetch) throws Exception
     {
-        Connection connection = _jmsProvider.getConnectionWithPrefetch(prefetch);
-        _connections.add(connection);
-        return connection;
+        return getConnectionBuilder().setPrefetch(prefetch).build();
     }
 
     public Connection getConnectionWithOptions(Map<String, String> options) throws Exception
     {
-        Connection connection = _jmsProvider.getConnectionWithOptions(options);
-        _connections.add(connection);
-        return connection;
+        return getConnectionBuilder().setOptions(options).build();
     }
 
     public Connection getConnectionWithOptions(String vhost, Map<String, String> options) throws Exception
     {
-
-        Connection connection = _jmsProvider.getConnectionWithOptions(vhost, options);
-        _connections.add(connection);
-        return connection;
+        return getConnectionBuilder().setOptions(options)
+                                     .setVirtualHost(vhost)
+                                     .build();
     }
 
     public Connection getConnectionForVHost(String vhost) throws Exception
     {
-        Connection connection = _jmsProvider.getConnectionForVHost(vhost);
-        _connections.add(connection);
-        return connection;
+        return getConnectionBuilder().setVirtualHost(vhost).build();
     }
 
     public Connection getConnection(String urlString) throws Exception
@@ -306,7 +295,7 @@ public class QpidBrokerTestCase extends QpidTestCase
         return connection;
     }
 
-    public Queue getTestQueue()
+    public Queue getTestQueue() throws NamingException
     {
         return _jmsProvider.getTestQueue(getTestQueueName());
     }
@@ -395,12 +384,12 @@ public class QpidBrokerTestCase extends QpidTestCase
 
     public long getQueueDepth(final Connection con, final Queue destination) throws Exception
     {
-        return _jmsProvider.getQueueDepth(con, destination);
+        return _jmsProvider.getQueueDepth(destination);
     }
 
     public boolean isQueueExist(final Connection con, final Queue destination) throws Exception
     {
-        return _jmsProvider.isQueueExist(con, destination);
+        return _jmsProvider.isQueueExist(destination);
     }
 
     /**
@@ -742,14 +731,13 @@ public class QpidBrokerTestCase extends QpidTestCase
 
     protected Connection getConnectionWithSyncPublishing() throws Exception
     {
-        return _jmsProvider.getConnectionWithSyncPublishing();
+        return getConnectionBuilder().setSyncPublish(true).build();
     }
 
     protected Connection getClientConnection(String username, String password, String id)
             throws Exception
     {
-        //add the connection in the list of connections
-        return _jmsProvider.getClientConnection(username, password, id);
+        return getConnectionBuilder().setClientId(id).setUsername(username).setPassword(password).build();
     }
 
     /**
@@ -912,4 +900,36 @@ public class QpidBrokerTestCase extends QpidTestCase
         }
     }
 
+    private static class ConectionBuilderHandler implements InvocationHandler
+    {
+        private final ConnectionBuilder _connectionBuilder;
+        private final List<Connection> _connections;
+
+        public ConectionBuilderHandler(final ConnectionBuilder connectionBuilder,
+                                       final List<Connection> connections)
+        {
+            _connectionBuilder = connectionBuilder;
+            _connections = connections;
+        }
+
+        @Override
+        public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable
+        {
+            if (method.getName().equals("build"))
+            {
+                Connection connection = _connectionBuilder.build();
+                _connections.add(connection);
+                return connection;
+            }
+            else if (method.getName().equals("buildConnectionFactory"))
+            {
+                return _connectionBuilder.buildConnectionFactory();
+            }
+            else
+            {
+                method.invoke(_connectionBuilder, args);
+                return proxy;
+            }
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xConnectionBuilder.java
----------------------------------------------------------------------
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xConnectionBuilder.java b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xConnectionBuilder.java
index 0c56f01..2962c19 100644
--- a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xConnectionBuilder.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xConnectionBuilder.java
@@ -20,8 +20,8 @@
 
 package org.apache.qpid.test.utils;
 
+import java.util.Hashtable;
 import java.util.Map;
-import java.util.Properties;
 import java.util.TreeMap;
 
 import javax.jms.Connection;
@@ -31,11 +31,6 @@ import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
-import org.apache.qpid.client.AMQConnectionFactory;
-import org.apache.qpid.client.AMQConnectionURL;
-import org.apache.qpid.jms.ConnectionURL;
-import org.apache.qpid.url.URLSyntaxException;
-
 public class QpidJmsClient0xConnectionBuilder implements ConnectionBuilder
 {
     private String _clientId = "clientid";
@@ -46,9 +41,9 @@ public class QpidJmsClient0xConnectionBuilder implements ConnectionBuilder
     private boolean _enableFailover;
     private final Map<String, Object> _options = new TreeMap<>();
     private int _reconnectAttempts = 20;
-    private String _host;
-    private int _port;
-    private int _sslPort;
+    private String _host = "localhost";
+    private int _port = Integer.getInteger("test.port");
+    private int _sslPort = Integer.getInteger("test.port.ssl");
 
     @Override
     public ConnectionBuilder setHost(final String host)
@@ -132,74 +127,117 @@ public class QpidJmsClient0xConnectionBuilder implements ConnectionBuilder
     {
         if (syncPublish)
         {
-            _options.put(ConnectionURL.OPTIONS_SYNC_PUBLISH, "all");
+            _options.put("sync_publish", "all");
         }
         else
         {
-            _options.remove(ConnectionURL.OPTIONS_SYNC_PUBLISH);
+            _options.remove("sync_publish");
         }
         return this;
     }
 
     @Override
-    public Connection build() throws JMSException, NamingException, URLSyntaxException
+    public ConnectionBuilder setOptions(final Map<String, String> options)
+    {
+        _options.putAll(options);
+        return this;
+    }
+
+    @Override
+    public ConnectionBuilder setPopulateJMSXUserID(final boolean populateJMSXUserID)
+    {
+        _options.put("populateJMSXUserID", String.valueOf(populateJMSXUserID));
+        return this;
+    }
+
+    @Override
+    public Connection build() throws JMSException, NamingException
     {
         return buildConnectionFactory().createConnection(_username, _password);
     }
 
     @Override
-    public ConnectionFactory buildConnectionFactory() throws NamingException, URLSyntaxException
+    public ConnectionFactory buildConnectionFactory() throws NamingException
     {
-        Properties contextProperties = new Properties();
-        contextProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.jndi.PropertiesFileInitialContextFactory");
-        contextProperties.put(Context.PROVIDER_URL, System.getProperty(Context.PROVIDER_URL));
-        InitialContext initialContext = null;
-        ConnectionFactory connectionFactory;
-        try
+        StringBuilder cUrlBuilder = new StringBuilder("amqp://");
+        if (_username != null)
         {
-            initialContext = new InitialContext(contextProperties);
-            String jndiName = "default";
-            if (_enableFailover)
-            {
-                jndiName = "failover";
-            }
+            cUrlBuilder.append(_username);
+        }
 
-            if (_enableTls)
-            {
-                jndiName += ".ssl";
-            }
-            connectionFactory = (ConnectionFactory) initialContext.lookup(jndiName);
+        if (_username != null || _password != null)
+        {
+            cUrlBuilder.append(":");
         }
 
-        finally
+        if (_password != null)
         {
-            if (initialContext != null)
-            {
-                initialContext.close();
-            }
+            cUrlBuilder.append(_password);
         }
-        AMQConnectionURL curl =
-                new AMQConnectionURL(((AMQConnectionFactory) connectionFactory).getConnectionURLString());
+
+        if (_username != null || _password != null)
+        {
+            cUrlBuilder.append("@");
+        }
+
+        if (_clientId != null)
+        {
+            cUrlBuilder.append(_clientId);
+        }
+
+        cUrlBuilder.append("/");
 
         if (_virtualHost != null)
         {
-            curl.setVirtualHost("/" + _virtualHost);
+            cUrlBuilder.append(_virtualHost);
         }
 
-        for (Map.Entry<String, Object> entry: _options.entrySet())
+        cUrlBuilder.append("?brokerlist='tcp://").append(_host).append(":");
+        if (_enableTls)
         {
-            curl.setOption(entry.getKey(), String.valueOf(entry.getValue()));
+            cUrlBuilder.append(_sslPort).append("?ssl='true'");
+        }
+        else
+        {
+            cUrlBuilder.append(_port);
         }
 
         if (_enableFailover)
         {
-            curl.setFailoverOption("cyclecount", String.valueOf(_reconnectAttempts));
+            cUrlBuilder.append(";tcp://").append(_host).append(":");
+            if (_enableTls)
+            {
+                cUrlBuilder.append(System.getProperty("test.port.alt.ssl")).append("?ssl='true'");
+            }
+            else
+            {
+                cUrlBuilder.append(System.getProperty("test.port.alt"));
+            }
+            cUrlBuilder.append("'")
+                       .append("&sync_ack='true'&sync_publish='all'&failover='roundrobin?cyclecount='")
+                       .append(_reconnectAttempts)
+                       .append("''");
+        }
+        else
+        {
+            cUrlBuilder.append("'");
         }
 
-        curl.setClientName(_clientId);
+        for (Map.Entry<String, Object> entry : _options.entrySet())
+        {
+            cUrlBuilder.append("&").append(entry.getKey()).append("='").append(entry.getValue()).append("'");
+        }
 
-        curl = new AMQConnectionURL(curl.toString());
-        connectionFactory = new AMQConnectionFactory(curl);
-        return connectionFactory;
+        final Hashtable<Object, Object> initialContextEnvironment = new Hashtable<>();
+        initialContextEnvironment.put(Context.INITIAL_CONTEXT_FACTORY,
+                                      "org.apache.qpid.jndi.PropertiesFileInitialContextFactory");
+        final String factoryName = "connectionFactory";
+        initialContextEnvironment.put("connectionfactory." + factoryName, cUrlBuilder.toString());
+        return (ConnectionFactory) new InitialContext(initialContextEnvironment).lookup(factoryName);
+    }
+
+    String getBrokerDetails()
+    {
+        return "tcp://" + _host + ":" + _port;
     }
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClient0xProvider.java
----------------------------------------------------------------------
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 452940d..f582321 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
@@ -20,9 +20,11 @@
 
 package org.apache.qpid.test.utils;
 
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
 import java.net.URISyntaxException;
+import java.security.AccessControlException;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Map;
 
@@ -36,29 +38,9 @@ import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
-import org.apache.qpid.client.AMQConnectionFactory;
-import org.apache.qpid.client.AMQConnectionURL;
-import org.apache.qpid.client.AMQDestination;
-import org.apache.qpid.client.AMQQueue;
-import org.apache.qpid.client.AMQSession;
-import org.apache.qpid.client.AMQTopic;
-import org.apache.qpid.exchange.ExchangeDefaults;
-import org.apache.qpid.jms.ConnectionURL;
 
 public class QpidJmsClient0xProvider implements JmsProvider
 {
-    private static final String DEFAULT_INITIAL_CONTEXT = "org.apache.qpid.jndi.PropertiesFileInitialContextFactory";
-    static
-    {
-        String initialContext = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
-
-        if (initialContext == null || initialContext.length() == 0)
-        {
-            System.setProperty(Context.INITIAL_CONTEXT_FACTORY, DEFAULT_INITIAL_CONTEXT);
-        }
-    }
-
-    private final Hashtable<Object, Object> _initialContextEnvironment = new Hashtable<>();
     private final AmqpManagementFacade _managementFacade;
 
     public QpidJmsClient0xProvider(AmqpManagementFacade managementFacade)
@@ -69,14 +51,8 @@ public class QpidJmsClient0xProvider implements JmsProvider
     @Override
     public ConnectionFactory getConnectionFactory() throws NamingException
     {
-        if (Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL))
-        {
-            return getConnectionFactory("default.ssl");
-        }
-        else
-        {
-            return getConnectionFactory("default");
-        }
+        return getConnectionBuilder().setTls(Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL))
+                                     .buildConnectionFactory();
     }
 
     @Override
@@ -85,142 +61,54 @@ public class QpidJmsClient0xProvider implements JmsProvider
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public ConnectionFactory getConnectionFactory(String factoryName)
-            throws NamingException
-    {
-        return getConnectionFactory(factoryName, "test", "clientid");
-    }
-
-    @Override
-    public ConnectionFactory getConnectionFactory(String factoryName, String vhost, String clientId)
-            throws NamingException
-    {
-        return getConnectionFactory(factoryName, vhost, clientId, Collections.<String, String>emptyMap());
-    }
-
-    @Override
-    public ConnectionFactory getConnectionFactory(String factoryName,
-                                                  String vhost,
-                                                  String clientId,
-                                                  Map<String, String> options)
-            throws NamingException
-    {
-
-        return (ConnectionFactory) new InitialContext(_initialContextEnvironment).lookup(factoryName);
-    }
-
-    @Override
-    public Connection getConnection() throws JMSException, NamingException
+    private Connection getConnection() throws JMSException, NamingException
     {
         return getConnection(QpidBrokerTestCase.GUEST_USERNAME, QpidBrokerTestCase.GUEST_PASSWORD);
     }
 
-    @Override
-    public Connection getConnection(String username, String password) throws JMSException, NamingException
-    {
-        Connection con = getConnectionFactory().createConnection(username, password);
-        return con;
-    }
-
-    @Override
-    public Connection getClientConnection(String username, String password, String id)
-            throws Exception
-    {
-        Connection con = ((AMQConnectionFactory) getConnectionFactory()).createConnection(username,
-                                                                                          password,
-                                                                                          id);
-        return con;
-    }
-
-    @Override
-    public Connection getConnectionWithPrefetch(int prefetch) throws Exception
+    private Connection getConnection(String username, String password) throws JMSException, NamingException
     {
-        return getConnectionWithOptions(Collections.singletonMap("maxprefetch", String.valueOf(prefetch)));
-    }
-
-    @Override
-    public Connection getConnectionWithOptions(Map<String, String> options) throws Exception
-    {
-        return getConnectionWithOptions("test", options);
-    }
-
-    @Override
-    public Connection getConnectionWithOptions(String vhost, Map<String, String> options) throws Exception
-    {
-        ConnectionURL curl =
-                new AMQConnectionURL(((AMQConnectionFactory) getConnectionFactory()).getConnectionURLString());
-        for (Map.Entry<String, String> entry : options.entrySet())
-        {
-            curl.setOption(entry.getKey(), entry.getValue());
-        }
-
-        curl = new AMQConnectionURL(curl.toString());
-        curl.setUsername(QpidBrokerTestCase.GUEST_USERNAME);
-        curl.setPassword(QpidBrokerTestCase.GUEST_PASSWORD);
-        curl.setVirtualHost(vhost);
-        Connection connection = new AMQConnectionFactory(curl).createConnection(curl.getUsername(), curl.getPassword());
-
-        return connection;
-    }
-
-    @Override
-    public Connection getConnectionForVHost(String vhost)
-            throws Exception
-    {
-        return getConnectionForVHost(vhost, QpidBrokerTestCase.GUEST_USERNAME, QpidBrokerTestCase.GUEST_PASSWORD);
-    }
-    @Override
-    public Connection getConnectionForVHost(String vhost, String username, String password)
-            throws Exception
-    {
-        ConnectionURL curl =
-                new AMQConnectionURL(((AMQConnectionFactory) getConnectionFactory()).getConnectionURLString());
-        curl.setVirtualHost("/" + vhost);
-        curl = new AMQConnectionURL(curl.toString());
-
-        curl.setUsername(username);
-        curl.setPassword(password);
-        Connection connection =
-                new AMQConnectionFactory(curl).createConnection(curl.getUsername(), curl.getPassword());
-
-        return connection;
+        return getConnectionBuilder().setUsername(username).setPassword(password).build();
     }
 
     @Override
     public Connection getConnection(String urlString) throws Exception
     {
-        ConnectionURL url = new AMQConnectionURL(urlString);
-        Connection connection = new AMQConnectionFactory(url).createConnection(url.getUsername(), url.getPassword());
-        return connection;
-    }
-
-    @Override
-    public Connection getConnectionWithSyncPublishing() throws Exception
-    {
-        Map<String, String> options = new HashMap<>();
-        options.put(ConnectionURL.OPTIONS_SYNC_PUBLISH, "all");
-        return getConnectionWithOptions(options);
+        final Hashtable<Object, Object> initialContextEnvironment = new Hashtable<>();
+        initialContextEnvironment.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.jndi.PropertiesFileInitialContextFactory");
+        final String factoryName = "connectionFactory";
+        initialContextEnvironment.put("connectionfactory." + factoryName, urlString);
+        ConnectionFactory connectionFactory =
+                (ConnectionFactory) new InitialContext(initialContextEnvironment).lookup(factoryName);
+        return connectionFactory.createConnection();
     }
 
 
     @Override
-    public Queue getTestQueue(final String testQueueName)
+    public Queue getTestQueue(final String testQueueName) throws NamingException
     {
-        return new AMQQueue(ExchangeDefaults.DIRECT_EXCHANGE_NAME, testQueueName);
+        return createReflectively("org.apache.qpid.client.AMQQueue", "amq.direct", testQueueName);
     }
 
     @Override
     public Queue getQueueFromName(Session session, String name) throws JMSException
     {
-        return new AMQQueue("", name);
+        return createReflectively("org.apache.qpid.client.AMQQueue", "", name);
     }
 
     @Override
     public Queue createTestQueue(Session session, String queueName) throws JMSException
     {
 
-        Queue amqQueue = getTestQueue(queueName);
+        Queue amqQueue = null;
+        try
+        {
+            amqQueue = getTestQueue(queueName);
+        }
+        catch (NamingException e)
+        {
+            throw new RuntimeException(e);
+        }
         session.createConsumer(amqQueue).close();
         return amqQueue;
     }
@@ -228,7 +116,7 @@ public class QpidJmsClient0xProvider implements JmsProvider
     @Override
     public Topic getTestTopic(final String testQueueName)
     {
-        return new AMQTopic(ExchangeDefaults.TOPIC_EXCHANGE_NAME, testQueueName);
+        return createReflectively("org.apache.qpid.client.AMQTopic", "amq.topic", testQueueName);
     }
 
     @Override
@@ -240,84 +128,129 @@ public class QpidJmsClient0xProvider implements JmsProvider
     @Override
     public Topic createTopicOnDirect(final Connection con, String topicName) throws JMSException, URISyntaxException
     {
-        return new AMQTopic(
-                "direct://amq.direct/"
-                + topicName
-                + "/"
-                + topicName
-                + "?routingkey='"
-                + topicName
-                + "',exclusive='true',autodelete='true'");
+        return createReflectively("org.apache.qpid.client.AMQTopic",
+                                  "direct://amq.direct/"
+                                  + topicName
+                                  + "/"
+                                  + topicName
+                                  + "?routingkey='"
+                                  + topicName
+                                  + "',exclusive='true',autodelete='true'");
     }
 
-    @Override
-    public Topic createTopicOnFanout(final Connection con, String topicName) throws JMSException, URISyntaxException
-    {
-        return new AMQTopic(
-                "fanout://amq.fanout/"
-                + topicName
-                + "/"
-                + topicName
-                + "?routingkey='"
-                + topicName
-                + "',exclusive='true',autodelete='true'");
-    }
-
-    @Override
-    public long getQueueDepth(final Connection con, final Queue destination) throws Exception
+    private <T> T createReflectively(String className, Object ...args)
     {
-        Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
         try
         {
-            return ((AMQSession<?, ?>) session).getQueueDepth((AMQDestination) destination);
+            Class<?> topicClass = Class.forName(className);
+            Class[] classes = new Class[args.length];
+            for (int i = 0; i < args.length; ++i)
+            {
+                classes[i] = args[i].getClass();
+            }
+            Constructor<?> constructor = topicClass.getConstructor(classes);
+            return (T) constructor.newInstance(args);
         }
-        finally
+        catch (IllegalAccessException | AccessControlException | InvocationTargetException | InstantiationException | NoSuchMethodException | ClassNotFoundException e)
         {
-            session.close();
+            throw new RuntimeException(e);
         }
+
+    }
+
+    @Override
+    public Topic createTopicOnFanout(final Connection con, String topicName) throws JMSException, URISyntaxException
+    {
+        return createReflectively("org.apache.qpid.client.AMQTopic", "fanout://amq.fanout/"
+                                                                     + topicName
+                                                                     + "/"
+                                                                     + topicName
+                                                                     + "?routingkey='"
+                                                                     + topicName
+                                                                     + "',exclusive='true',autodelete='true'");
     }
 
     @Override
-    public boolean isQueueExist(final Connection con, final Queue destination) throws Exception
+    public long getQueueDepth(final Queue destination) throws Exception
     {
-        Queue queue = new AMQQueue("", destination.getQueueName());
-        Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final String escapedName = destination.getQueueName().replaceAll("([/\\\\])", "\\\\$1");
+        Connection connection = getConnection();
         try
         {
-            return ((AMQSession<?, ?>) session).isQueueBound((AMQDestination) queue);
+            connection.start();
+            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            try
+            {
+                Map<String, Object> arguments = Collections.singletonMap("statistics",
+                                                                         Collections.singletonList("queueDepthMessages"));
+                Object statistics = _managementFacade.performOperationUsingAmqpManagement(escapedName,
+                                                                                             "getStatistics",
+                                                                                             session,
+                                                                                             "org.apache.qpid.Queue",
+                                                                                             arguments);
+
+                Map<String, Object> statisticsMap = (Map<String, Object>) statistics;
+                return ((Number) statisticsMap.get("queueDepthMessages")).intValue();
+            }
+            finally
+            {
+                session.close();
+            }
         }
         finally
         {
-            session.close();
+            connection.close();
         }
     }
 
     @Override
-    public String getBrokerDetailsFromDefaultConnectionUrl()
+    public boolean isQueueExist(final Queue destination) throws Exception
     {
+        final String escapedName = destination.getQueueName().replaceAll("([/\\\\])", "\\\\$1");
+        Connection connection = getConnection();
         try
         {
-            AMQConnectionFactory factory = (AMQConnectionFactory) getConnectionFactory();
-            ConnectionURL connectionURL = factory.getConnectionURL();
-            if (connectionURL.getBrokerCount() > 0)
+            connection.start();
+            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+            try
+            {
+                _managementFacade.performOperationUsingAmqpManagement(escapedName,
+                                                                      "READ",
+                                                                      session,
+                                                                      "org.apache.qpid.Queue",
+                                                                      Collections.emptyMap());
+                return true;
+            }
+            catch (AmqpManagementFacade.OperationUnsuccessfulException e)
             {
-                return connectionURL
-                              .getBrokerDetails(0)
-                              .toString();
+                if (e.getStatusCode() == 404)
+                {
+                    return false;
+                }
+                else
+                {
+                    throw e;
+                }
             }
-            else
+            finally
             {
-                throw new RuntimeException("No broker details are available.");
+                session.close();
             }
         }
-        catch (NamingException e)
+        finally
         {
-            throw new RuntimeException("No broker details are available.", e);
+            connection.close();
         }
     }
 
     @Override
-    public ConnectionBuilder getConnectionBuilder()
+    public String getBrokerDetailsFromDefaultConnectionUrl()
+    {
+        return getConnectionBuilder().getBrokerDetails();
+    }
+
+    @Override
+    public QpidJmsClient0xConnectionBuilder getConnectionBuilder()
     {
         return new QpidJmsClient0xConnectionBuilder();
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientConnectionBuilder.java
----------------------------------------------------------------------
diff --git a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientConnectionBuilder.java b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientConnectionBuilder.java
index 459c497..096b854 100644
--- a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientConnectionBuilder.java
+++ b/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientConnectionBuilder.java
@@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger;
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
+import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
@@ -161,6 +162,20 @@ public class QpidJmsClientConnectionBuilder implements ConnectionBuilder
     }
 
     @Override
+    public ConnectionBuilder setOptions(final Map<String, String> options)
+    {
+        _options.putAll(options);
+        return this;
+    }
+
+    @Override
+    public ConnectionBuilder setPopulateJMSXUserID(final boolean populateJMSXUserID)
+    {
+        _options.put("jms.populateJMSXUserID", String.valueOf(populateJMSXUserID));
+        return this;
+    }
+
+    @Override
     public Connection build() throws NamingException, JMSException
     {
         return buildConnectionFactory().createConnection();
@@ -170,7 +185,10 @@ public class QpidJmsClientConnectionBuilder implements ConnectionBuilder
     public ConnectionFactory buildConnectionFactory() throws NamingException
     {
         final Hashtable<Object, Object> initialContextEnvironment = new Hashtable<>();
-        final String factoryName;
+        initialContextEnvironment.put(Context.INITIAL_CONTEXT_FACTORY,
+                                      "org.apache.qpid.jms.jndi.JmsInitialContextFactory");
+
+        final StringBuilder connectionUrlBuilder = new StringBuilder();
 
         final Map<String, Object> options = new TreeMap<>();
         options.putAll(_options);
@@ -180,36 +198,30 @@ public class QpidJmsClientConnectionBuilder implements ConnectionBuilder
             {
                 options.put("failover.maxReconnectAttempts", "2");
             }
-            final StringBuilder stem = new StringBuilder("failover:(amqp://")
+            connectionUrlBuilder.append("failover:(amqp://")
                     .append(_host)
                     .append(":")
                     .append(_port)
                     .append(",amqp://localhost:")
                     .append(System.getProperty("test.port.alt"))
                     .append(")");
-            appendOptions(options, stem);
-
-            initialContextEnvironment.put("property.connectionfactory.failover.remoteURI",
-                                           stem.toString());
-            factoryName = "failover";
+            appendOptions(options, connectionUrlBuilder);
         }
         else if (!_enableTls)
         {
-            final StringBuilder stem =
-                    new StringBuilder("amqp://").append(_host).append(":").append(_port);
+            connectionUrlBuilder.append("amqp://").append(_host).append(":").append(_port);
 
-            appendOptions(options, stem);
-
-            initialContextEnvironment.put("property.connectionfactory.default.remoteURI", stem.toString());
-            factoryName = "default";
+            appendOptions(options, connectionUrlBuilder);
         }
         else
         {
-            final StringBuilder stem = new StringBuilder("amqps://").append(_host).append(":").append(_sslPort);
-            appendOptions(options, stem);
-            initialContextEnvironment.put("connectionfactory.default.ssl", stem.toString());
-            factoryName = "default.ssl";
+            connectionUrlBuilder.append("amqps://").append(_host).append(":").append(_sslPort);
+            appendOptions(options, connectionUrlBuilder);
         }
+
+        final String factoryName = "connection";
+        initialContextEnvironment.put("connectionfactory." + factoryName, connectionUrlBuilder.toString());
+
         return (ConnectionFactory) new InitialContext(initialContextEnvironment).lookup(factoryName);
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/main/java/org/apache/qpid/test/utils/QpidJmsClientProvider.java
----------------------------------------------------------------------
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 6d26b63..1e590be 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
@@ -20,29 +20,18 @@
 
 package org.apache.qpid.test.utils;
 
-import java.io.UnsupportedEncodingException;
 import java.net.URISyntaxException;
-import java.net.URLEncoder;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
 import javax.jms.JMSException;
-import javax.jms.MapMessage;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.ObjectMessage;
 import javax.jms.Queue;
 import javax.jms.Session;
-import javax.jms.TemporaryQueue;
 import javax.jms.Topic;
-import javax.naming.InitialContext;
 import javax.naming.NamingException;
 
 public class QpidJmsClientProvider implements JmsProvider
@@ -58,54 +47,13 @@ public class QpidJmsClientProvider implements JmsProvider
     @Override
     public ConnectionFactory getConnectionFactory() throws NamingException
     {
-        return getConnectionFactory(Collections.<String, String>emptyMap());
-    }
-
-    @Override
-    public ConnectionFactory getConnectionFactory(String factoryName) throws NamingException
-    {
-        return getConnectionFactory(factoryName, Collections.<String, String>emptyMap());
+        return getConnectionFactory(Collections.emptyMap());
     }
 
     @Override
     public ConnectionFactory getConnectionFactory(Map<String, String> options) throws NamingException
     {
-
-        if (Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL))
-        {
-            return getConnectionFactory("default.ssl", options);
-        }
-        else
-        {
-            return getConnectionFactory("default", options);
-        }
-    }
-
-    @Override
-    public ConnectionFactory getConnectionFactory(String factoryName, String vhost, String clientId) throws NamingException
-    {
-        return getConnectionFactory(factoryName, vhost, clientId, Collections.<String, String>emptyMap());
-    }
-
-    @Override
-    public ConnectionFactory getConnectionFactory(String factoryName,
-                                                  String vhost,
-                                                  String clientId,
-                                                  Map<String, String> options)
-            throws NamingException
-    {
-
-        Map<String, String> actualOptions = new LinkedHashMap<>();
-        actualOptions.put("amqp.vhost", vhost);
-        actualOptions.put("jms.clientID", clientId);
-        actualOptions.putAll(options);
-        return getConnectionFactory(factoryName, actualOptions);
-    }
-
-    private ConnectionFactory getConnectionFactory(final String factoryName, Map<String, String> options)
-            throws NamingException
-    {
-
+        boolean useSsl = Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL);
         if (!options.containsKey("amqp.vhost"))
         {
             options = new HashMap<>(options);
@@ -131,99 +79,18 @@ public class QpidJmsClientProvider implements JmsProvider
             options.put("jms.populateJMSXUserID", "true");
         }
 
-        final Hashtable<Object, Object> initialContextEnvironment = new Hashtable<>();
-        if ("failover".equals(factoryName))
-        {
-            if (!options.containsKey("failover.maxReconnectAttempts"))
-            {
-                options.put("failover.maxReconnectAttempts", "2");
-            }
-            final StringBuilder stem = new StringBuilder("failover:(amqp://localhost:")
-                    .append(System.getProperty("test.port"))
-                    .append(",amqp://localhost:")
-                    .append(System.getProperty("test.port.alt"))
-                    .append(")");
-            appendOptions(options, stem);
-
-            initialContextEnvironment.put("property.connectionfactory.failover.remoteURI",
-                                           stem.toString());
-        }
-        else if ("default".equals(factoryName))
-        {
-            final StringBuilder stem =
-                    new StringBuilder("amqp://localhost:").append(System.getProperty("test.port"));
-
-            appendOptions(options, stem);
-
-            initialContextEnvironment.put("property.connectionfactory.default.remoteURI", stem.toString());
-        }
-        else if ("default.ssl".equals(factoryName))
-        {
-
-            final StringBuilder stem = new StringBuilder("amqps://localhost:").append(String.valueOf(System.getProperty("test.port.ssl")));
-            appendOptions(options, stem);
-            initialContextEnvironment.put("connectionfactory.default.ssl", stem.toString());
-        }
-        return (ConnectionFactory) new InitialContext(initialContextEnvironment).lookup(factoryName);
+        return getConnectionBuilder().setTls(useSsl).setOptions(options).buildConnectionFactory();
     }
 
-    @Override
-    public Connection getConnection() throws JMSException, NamingException
+    private Connection getConnection() throws JMSException, NamingException
     {
         return getConnection(QpidBrokerTestCase.GUEST_USERNAME, QpidBrokerTestCase.GUEST_PASSWORD);
     }
 
-    @Override
-    public Connection getConnection(String username, String password) throws JMSException, NamingException
-    {
-        Connection con = getConnectionFactory().createConnection(username, password);
-        return con;
-    }
 
-    @Override
-    public Connection getConnectionWithPrefetch(int prefetch) throws Exception
+    private Connection getConnection(String username, String password) throws JMSException, NamingException
     {
-        String factoryName = Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL) ? "default.ssl" : "default";
-
-        final Map<String, String> options =
-                Collections.singletonMap("jms.prefetchPolicy.all", String.valueOf(prefetch));
-        final ConnectionFactory connectionFactory = getConnectionFactory(factoryName, "test", getNextClientId(), options);
-        return connectionFactory.createConnection(QpidBrokerTestCase.GUEST_USERNAME,
-                                                  QpidBrokerTestCase.GUEST_PASSWORD);
-    }
-
-    @Override
-    public Connection getConnectionWithOptions(Map<String, String> options) throws Exception
-    {
-        return getConnectionWithOptions("test", options);
-    }
-
-    @Override
-    public Connection getConnectionWithOptions(String vhost, Map<String, String> options) throws Exception
-    {
-        return getConnectionFactory(Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL)
-                                            ? "default.ssl"
-                                            : "default",
-                                    vhost,
-                                    getNextClientId(),
-                                    options).createConnection(QpidBrokerTestCase.GUEST_USERNAME,
-                                                              QpidBrokerTestCase.GUEST_PASSWORD);
-    }
-
-    @Override
-    public Connection getConnectionForVHost(String vhost)
-            throws Exception
-    {
-        return getConnectionForVHost(vhost, QpidBrokerTestCase.GUEST_USERNAME, QpidBrokerTestCase.GUEST_PASSWORD);
-    }
-
-    @Override
-    public Connection getConnectionForVHost(String vhost, String username, String password)
-            throws Exception
-    {
-        return getConnectionFactory(Boolean.getBoolean(QpidBrokerTestCase.PROFILE_USE_SSL)
-                                            ? "default.ssl"
-                                            : "default", vhost, getNextClientId()).createConnection(username, password);
+        return getConnectionFactory().createConnection(username, password);
     }
 
     @Override
@@ -328,122 +195,73 @@ public class QpidJmsClientProvider implements JmsProvider
     }
 
     @Override
-    public long getQueueDepth(final Connection con, final Queue destination) throws Exception
+    public long getQueueDepth(final Queue destination) throws Exception
     {
-        Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final String escapedName = destination.getQueueName().replaceAll("([/\\\\])", "\\\\$1");
+        Connection connection = getConnection();
         try
         {
-
-            MessageProducer producer = session.createProducer(session.createQueue("$management"));
-            final TemporaryQueue responseQ = session.createTemporaryQueue();
-            MessageConsumer consumer = session.createConsumer(responseQ);
-            MapMessage message = session.createMapMessage();
-            message.setStringProperty("index", "object-path");
-            final String escapedName = destination.getQueueName().replaceAll("([/\\\\])", "\\\\$1");
-            message.setStringProperty("key", escapedName);
-            message.setStringProperty("type", "org.apache.qpid.Queue");
-            message.setStringProperty("operation", "getStatistics");
-            message.setStringProperty("statistics", "[\"queueDepthMessages\"]");
-
-            message.setJMSReplyTo(responseQ);
-
-            producer.send(message);
-
-            Message response = consumer.receive();
+            connection.start();
+            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
             try
             {
-                if (response instanceof MapMessage)
-                {
-                    return ((MapMessage) response).getLong("queueDepthMessages");
-                }
-                else if (response instanceof ObjectMessage)
-                {
-                    Object body = ((ObjectMessage) response).getObject();
-                    if (body instanceof Map)
-                    {
-                        return Long.valueOf(((Map) body).get("queueDepthMessages").toString());
-                    }
-                    else
-                    {
-                        throw new IllegalArgumentException("Cannot parse the results from a management operation."
-                                                           + " Unexpected message object type : " + body);
-                    }
-                }
-                else
-                {
-                    throw new IllegalArgumentException("Cannot parse the results from a management operation."
-                                                       + " Unexpected response message type : " + response.getClass());
-                }
+                Map<String, Object> arguments = Collections.singletonMap("statistics",
+                                                                         Collections.singletonList("queueDepthMessages"));
+                Object statistics = _managementFacade.performOperationUsingAmqpManagement(escapedName,
+                                                                                          "getStatistics",
+                                                                                          session,
+                                                                                          "org.apache.qpid.Queue",
+                                                                                          arguments);
+
+                Map<String, Object> statisticsMap = (Map<String, Object>) statistics;
+                return ((Number) statisticsMap.get("queueDepthMessages")).intValue();
             }
             finally
             {
-                consumer.close();
-                responseQ.delete();
+                session.close();
             }
         }
         finally
         {
-            session.close();
+            connection.close();
         }
     }
 
     @Override
-    public boolean isQueueExist(final Connection con, final Queue destination) throws Exception
+    public boolean isQueueExist(final Queue destination) throws Exception
     {
-        Session session = con.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        final String escapedName = destination.getQueueName().replaceAll("([/\\\\])", "\\\\$1");
+        Connection connection = getConnection();
         try
         {
-            MessageProducer producer = session.createProducer(session.createQueue("$management"));
-            final TemporaryQueue responseQ = session.createTemporaryQueue();
-            MessageConsumer consumer = session.createConsumer(responseQ);
-            MapMessage message = session.createMapMessage();
-            message.setStringProperty("index", "object-path");
-            final String escapedName = destination.getQueueName().replaceAll("([/\\\\])", "\\\\$1");
-            message.setStringProperty("key", escapedName);
-            message.setStringProperty("type", "org.apache.qpid.Queue");
-            message.setStringProperty("operation", "READ");
-
-            message.setJMSReplyTo(responseQ);
-
-            producer.send(message);
-
-            Message response = consumer.receive();
+            connection.start();
+            Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
             try
             {
-                int statusCode = response.getIntProperty("statusCode");
-                switch(statusCode)
-                {
-                    case 200:
-                        return true;
-                    case 404:
-                        return false;
-                    default:
-                        throw new RuntimeException(String.format("Unexpected response for queue query '%s' :  %d", destination.getQueueName(), statusCode));
-                }
+                _managementFacade.performOperationUsingAmqpManagement(escapedName,
+                                                                      "READ",
+                                                                      session,
+                                                                      "org.apache.qpid.Queue",
+                                                                      Collections.emptyMap());
+                return true;
             }
-            finally
+            catch (AmqpManagementFacade.OperationUnsuccessfulException e)
             {
-                consumer.close();
-                responseQ.delete();
+                if (e.getStatusCode() == 404)
+                {
+                    return false;
+                }
+                else
+                {
+                    throw e;
+                }
             }
         }
         finally
         {
-            session.close();
+            connection.close();
         }
-    }
 
-    @Override
-    public Connection getConnectionWithSyncPublishing() throws Exception
-    {
-        return getConnection();
-    }
-
-    @Override
-    public Connection getClientConnection(String username, String password, String id)
-            throws Exception
-    {
-        return getConnectionFactory("default", "test", id).createConnection(username, password);
     }
 
     @Override
@@ -458,31 +276,6 @@ public class QpidJmsClientProvider implements JmsProvider
         return new QpidJmsClientConnectionBuilder();
     }
 
-    private void appendOptions(final Map<String, String> actualOptions, final StringBuilder stem)
-    {
-        boolean first = true;
-        for(Map.Entry<String, String> option : actualOptions.entrySet())
-        {
-            if(first)
-            {
-                stem.append('?');
-                first = false;
-            }
-            else
-            {
-                stem.append('&');
-            }
-            try
-            {
-                stem.append(option.getKey()).append('=').append(URLEncoder.encode(option.getValue(), "UTF-8"));
-            }
-            catch (UnsupportedEncodingException e)
-            {
-                throw new RuntimeException(e);
-            }
-        }
-    }
-
     private String getNextClientId()
     {
         return "clientid-" + CLIENTID_COUNTER.getAndIncrement();

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/client/failover/FailoverBehaviourTest.java
----------------------------------------------------------------------
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 e46db0e..dd04d6d 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
@@ -1162,8 +1162,6 @@ public class FailoverBehaviourTest extends FailoverBaseCase implements Exception
 
     private AMQConnection createConnectionWithFailover(Map<String,String> connectionOptions) throws NamingException, JMSException, URLSyntaxException
     {
-        BrokerDetails origBrokerDetails =  ((AMQConnectionFactory) getConnectionFactory("default")).getConnectionURL().getBrokerDetails(0);
-
         String retries = "200";
         String connectdelay = "1000";
         String cycleCount = "2";
@@ -1171,7 +1169,7 @@ public class FailoverBehaviourTest extends FailoverBaseCase implements Exception
         String newUrlFormat="amqp://username:password@clientid/test?brokerlist=" +
                             "'tcp://%s:%s?retries='%s'&connectdelay='%s''&failover='singlebroker?cyclecount='%s''";
 
-        String newUrl = String.format(newUrlFormat, origBrokerDetails.getHost(), origBrokerDetails.getPort(),
+        String newUrl = String.format(newUrlFormat, "localhost", getDefaultAmqpPort(),
                                                     retries, connectdelay, cycleCount);
 
         if (connectionOptions != null)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/client/message/ObjectMessageClassWhitelistingTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/client/message/ObjectMessageClassWhitelistingTest.java b/systests/src/test/java/org/apache/qpid/client/message/ObjectMessageClassWhitelistingTest.java
index d1ebb2e..391f165 100644
--- a/systests/src/test/java/org/apache/qpid/client/message/ObjectMessageClassWhitelistingTest.java
+++ b/systests/src/test/java/org/apache/qpid/client/message/ObjectMessageClassWhitelistingTest.java
@@ -205,7 +205,7 @@ public class ObjectMessageClassWhitelistingTest extends QpidBrokerTestCase
         doTestBlackListedEnclosedClassTest(c, new NestedClass(TEST_VALUE));
     }
 
-    private void doTestWhiteListedEnclosedClassTest(Connection c, Serializable content) throws JMSException
+    private void doTestWhiteListedEnclosedClassTest(Connection c, Serializable content) throws Exception
     {
         c.start();
         Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -225,7 +225,7 @@ public class ObjectMessageClassWhitelistingTest extends QpidBrokerTestCase
         assertEquals("Received object has unexpected content", content, receivedObject);
     }
 
-    private void doTestBlackListedEnclosedClassTest(final Connection c, final Serializable content) throws JMSException
+    private void doTestBlackListedEnclosedClassTest(final Connection c, final Serializable content) throws Exception
     {
         c.start();
         Session s = c.createSession(false, Session.AUTO_ACKNOWLEDGE);

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java b/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java
index 5703473..edd96b9 100644
--- a/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java
+++ b/systests/src/test/java/org/apache/qpid/client/ssl/SSLTest.java
@@ -107,7 +107,7 @@ public class SSLTest extends QpidBrokerTestCase
                 options.put("transport.trustStoreLocation", TRUSTSTORE);
                 options.put("transport.trustStorePassword", TRUSTSTORE_PASSWORD);
 
-                con = getConnectionWithOptions(options);
+                con = getConnectionBuilder().setTls(true).setOptions(options).build();
             }
             else
             {
@@ -432,7 +432,7 @@ public class SSLTest extends QpidBrokerTestCase
                 final Map<String, String> options = new HashMap<>();
                 options.put("transport.trustStoreLocation", TRUSTSTORE);
                 options.put("transport.trustStorePassword", TRUSTSTORE_PASSWORD);
-                con = getConnectionWithOptions(options);
+                con = getConnectionBuilder().setTls(true).setOptions(options).build();
             }
             else
             {
@@ -499,7 +499,7 @@ public class SSLTest extends QpidBrokerTestCase
                     options.put("transport.trustStoreLocation", TRUSTSTORE);
                     options.put("transport.trustStorePassword", TRUSTSTORE_PASSWORD);
 
-                    con = getConnectionWithOptions(options);
+                    con = getConnectionBuilder().setTls(true).setOptions(options).build();
 
 
                 }
@@ -562,7 +562,7 @@ public class SSLTest extends QpidBrokerTestCase
                 options.put("transport.trustStoreLocation", TRUSTSTORE);
                 options.put("transport.trustStorePassword", TRUSTSTORE_PASSWORD);
 
-                con = getConnectionWithOptions(options);
+                con = getConnectionBuilder().setTls(true).setOptions(options).build();
             }
             else
             {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/server/AbruptClientDisconnectTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/server/AbruptClientDisconnectTest.java b/systests/src/test/java/org/apache/qpid/server/AbruptClientDisconnectTest.java
index b3a3f9f..0cf5492 100644
--- a/systests/src/test/java/org/apache/qpid/server/AbruptClientDisconnectTest.java
+++ b/systests/src/test/java/org/apache/qpid/server/AbruptClientDisconnectTest.java
@@ -223,7 +223,7 @@ public class AbruptClientDisconnectTest extends QpidBrokerTestCase
         setSystemProperty("test.port", String.valueOf(localPort));
         setSystemProperty("test.port.alt", String.valueOf(localPort));
 
-        Connection tunneledConnection = getConnectionFactory("default").createConnection(GUEST_USERNAME, GUEST_PASSWORD);
+        Connection tunneledConnection = getConnection();
         _tcpTunneler.addClientListener(clientMonitor);
         final AtomicReference<JMSException> _exception = new AtomicReference<>();
         tunneledConnection.setExceptionListener(new ExceptionListener()

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/server/message/MessageProtocolConversionTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/server/message/MessageProtocolConversionTest.java b/systests/src/test/java/org/apache/qpid/server/message/MessageProtocolConversionTest.java
index 3e2144d..a796852 100644
--- a/systests/src/test/java/org/apache/qpid/server/message/MessageProtocolConversionTest.java
+++ b/systests/src/test/java/org/apache/qpid/server/message/MessageProtocolConversionTest.java
@@ -25,6 +25,8 @@ import org.apache.qpid.configuration.ClientProperties;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
 
 import javax.jms.*;
+import javax.naming.NamingException;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -58,18 +60,19 @@ public class MessageProtocolConversionTest extends QpidBrokerTestCase
         _connection_0_9_1 = getConnection();
     }
 
-    public void test0_9_1_to_0_10_conversion() throws JMSException, QpidException
+    public void test0_9_1_to_0_10_conversion() throws JMSException, QpidException, NamingException
     {
         doConversionTests(_connection_0_9_1, _connection_0_10);
     }
 
-    public void test_0_10_to_0_9_1_conversion() throws JMSException, QpidException
+    public void test_0_10_to_0_9_1_conversion() throws JMSException, QpidException, NamingException
     {
 
         doConversionTests(_connection_0_10, _connection_0_9_1);
     }
 
-    private void doConversionTests(Connection producerConn, Connection consumerConn) throws JMSException, QpidException
+    private void doConversionTests(Connection producerConn, Connection consumerConn)
+            throws JMSException, QpidException, NamingException
     {
         Session producerSession = producerConn.createSession(false, Session.AUTO_ACKNOWLEDGE);
         Session consumerSession = consumerConn.createSession(false, Session.AUTO_ACKNOWLEDGE);

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java b/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
index 7a6a336..53c7a9a 100644
--- a/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
+++ b/systests/src/test/java/org/apache/qpid/server/security/auth/manager/ExternalAuthenticationTest.java
@@ -373,7 +373,7 @@ public class ExternalAuthenticationTest extends QpidBrokerTestCase
     {
         if(isBroker10())
         {
-            System.setProperty("test.port.ssl", ""+getDefaultBroker().getAmqpTlsPort());
+            System.setProperty("test.port.ssl", "" + getDefaultBroker().getAmqpTlsPort());
 
             Map<String, String> options = new HashMap<>();
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java b/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
index 1d048ae..f128aad 100644
--- a/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
+++ b/systests/src/test/java/org/apache/qpid/systest/MessageCompressionTest.java
@@ -53,6 +53,7 @@ import org.apache.qpid.test.utils.TestBrokerConfiguration;
 
 public class MessageCompressionTest extends QpidBrokerTestCase
 {
+    private static String VIRTUAL_HOST = "test";
     private RestTestHelper _restTestHelper;
 
     @Override
@@ -189,13 +190,12 @@ public class MessageCompressionTest extends QpidBrokerTestCase
 
         String messageText = createMessageText();
         Connection senderConnection = getConnection(true);
-        String virtualPath = ((AMQConnectionFactory) getConnectionFactory()).getVirtualPath();
         Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
         Queue testQueue = createTestQueue(session);
 
         publishMessage(senderConnection, messageText, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -218,13 +218,12 @@ public class MessageCompressionTest extends QpidBrokerTestCase
 
         String messageText = createMessageText();
         Connection senderConnection = getConnection(true);
-        String virtualPath = ((AMQConnectionFactory) getConnectionFactory()).getVirtualPath();
         Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
         Queue testQueue = createTestQueue(session);
 
         publishMessage(senderConnection, messageText, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -246,13 +245,12 @@ public class MessageCompressionTest extends QpidBrokerTestCase
 
         String messageText = createMessageText();
         Connection senderConnection = getConnection(true);
-        String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
         Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
         Queue testQueue = createTestQueue(session);
 
         publishMessage(senderConnection, messageText, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
+        String queueRelativePath = "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -284,14 +282,13 @@ public class MessageCompressionTest extends QpidBrokerTestCase
         doActualSetUp();
 
         Connection senderConnection = getConnection(true);
-        String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
         Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
         Queue testQueue = createTestQueue(session);
 
         Map<String, Object> mapToSend = createMapToSend();
         publishMapMessage(senderConnection, mapToSend, testQueue);
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());
@@ -311,7 +308,6 @@ public class MessageCompressionTest extends QpidBrokerTestCase
         doActualSetUp();
 
         Connection senderConnection = getConnection(true);
-        String virtualPath = ((AMQConnectionFactory)getConnectionFactory()).getVirtualPath();
         Session session = senderConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
         Queue testQueue = createTestQueue(session);
 
@@ -319,7 +315,7 @@ public class MessageCompressionTest extends QpidBrokerTestCase
         publishMapMessage(senderConnection, mapToSend, testQueue);
 
 
-        String queueRelativePath = "queue" + virtualPath + virtualPath + "/" + testQueue.getQueueName();
+        String queueRelativePath =  "queue/" + VIRTUAL_HOST  + "/" + VIRTUAL_HOST + "/" + testQueue.getQueueName();
 
         List<Map<String, Object>> messages = _restTestHelper.getJsonAsList(queueRelativePath + "/getMessageInfo");
         assertEquals("Unexpected number of messages", 1, messages.size());

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java b/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
index 50bc3c1..67f245c 100644
--- a/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
+++ b/systests/src/test/java/org/apache/qpid/systest/management/amqp/AmqpManagementTest.java
@@ -34,7 +34,6 @@ import java.util.Map;
 import java.util.UUID;
 
 import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
 import javax.jms.ConnectionMetaData;
 import javax.jms.JMSException;
 import javax.jms.MapMessage;
@@ -139,11 +138,10 @@ public class AmqpManagementTest extends QpidBrokerTestCase
 
     private void setupBrokerManagementConnection() throws Exception
     {
-        ConnectionFactory management =
-                isBroker10() ? getConnectionFactory("default", "$management", UUID.randomUUID().toString())
-                        : getConnectionFactory("management");
-
-        _connection = management.createConnection(GUEST_USERNAME, GUEST_PASSWORD);
+        _connection = getConnectionBuilder().setVirtualHost("$management")
+                                            .setTls(true)
+                                            .setClientId(UUID.randomUUID().toString())
+                                            .build();
         setupSession();
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java b/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
index f6a85fb..8d8e345 100644
--- a/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
+++ b/systests/src/test/java/org/apache/qpid/test/client/destination/AddressBasedDestinationTest.java
@@ -339,7 +339,7 @@ public class AddressBasedDestinationTest extends QpidBrokerTestCase
         Connection connection = null;
         try
         {
-            connection = getConnectionFactory("failover").createConnection(GUEST_USERNAME, GUEST_PASSWORD);
+            connection = getConnectionBuilder().setFailover(true).build();
             connection.start();
             session = connection.createSession(true, Session.SESSION_TRANSACTED);
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/test/unit/message/UTF8Test.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/test/unit/message/UTF8Test.java b/systests/src/test/java/org/apache/qpid/test/unit/message/UTF8Test.java
index 48d03ac..af460b3 100644
--- a/systests/src/test/java/org/apache/qpid/test/unit/message/UTF8Test.java
+++ b/systests/src/test/java/org/apache/qpid/test/unit/message/UTF8Test.java
@@ -25,15 +25,14 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Properties;
 
 import javax.jms.Connection;
 import javax.jms.Destination;
+import javax.jms.JMSException;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
 import javax.jms.TextMessage;
-import javax.naming.InitialContext;
 
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
 
@@ -91,43 +90,42 @@ public class UTF8Test extends QpidBrokerTestCase
 
     private Destination getReceivingDestination(String exch, String routkey, String qname, final Session session) throws Exception
     {
-        Properties props = new Properties();
+        createEntitiesUsingAmqpManagement(exch, routkey, qname, session);
         if(isBroker10())
         {
-            props.setProperty("queue.recvDest", qname);
-            createTestQueue(session, qname);
+            return session.createQueue(qname);
         }
         else
         {
-            props.setProperty("destination.recvDest",
-                              "direct://" + exch + "//" + qname + "?autodelete='false'&durable='false'"
-                              + "&routingkey='" + routkey + "'");
+            return session.createQueue("BURL:direct://" + exch + "//" + qname + "?autodelete='false'&durable='false'"
+                                       + "&routingkey='" + routkey + "'");
         }
-        // Get our connection context
-        InitialContext ctx = new InitialContext(props);
-        return (Destination) ctx.lookup("recvDest");
     }
 
     private Destination getSendingDestination(String exch, String routkey, String qname, final Session session) throws Exception
     {
-        Properties props = new Properties();
+        createEntitiesUsingAmqpManagement(exch, routkey, qname, session);
         if(isBroker10())
         {
-            props.setProperty("topic.sendDest", exch +"/" + routkey);
-            createEntityUsingAmqpManagement(exch, session, "org.apache.qpid.DirectExchange");
-            final Map<String, Object> arguments = new HashMap<>();
-            arguments.put("destination",qname);
-            arguments.put("bindingKey", routkey);
-            performOperationUsingAmqpManagement(exch, "bind", session, "org.apache.qpid.DirectExchange", arguments);
+            return session.createQueue(exch +"/" + routkey);
         }
         else
         {
-            props.setProperty("destination.sendDest",
-                              "direct://" + exch + "//" + qname + "?autodelete='false'&durable='false'"
-                              + "&routingkey='" + routkey + "'");
+            return session.createQueue("BURL:direct://" + exch + "//" + qname + "?autodelete='false'&durable='false'"
+                                       + "&routingkey='" + routkey + "'");
         }
-        // Get our connection context
-        InitialContext ctx = new InitialContext(props);
-        return (Destination) ctx.lookup("sendDest");
+    }
+
+    private void createEntitiesUsingAmqpManagement(final String exch,
+                                                   final String routkey,
+                                                   final String qname,
+                                                   final Session session) throws JMSException
+    {
+        createEntityUsingAmqpManagement(exch, session, "org.apache.qpid.DirectExchange");
+        createEntityUsingAmqpManagement(qname, session, "org.apache.qpid.Queue");
+        final Map<String, Object> arguments = new HashMap<>();
+        arguments.put("destination",qname);
+        arguments.put("bindingKey", routkey);
+        performOperationUsingAmqpManagement(exch, "bind", session, "org.apache.qpid.DirectExchange", arguments);
     }
 }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/systests/src/test/java/org/apache/qpid/test/utils/FailoverBaseCase.java
----------------------------------------------------------------------
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 3d93892..b781058 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
@@ -46,7 +46,6 @@ public class FailoverBaseCase extends QpidBrokerTestCase implements ConnectionLi
     protected BrokerHolder _alternativeBroker;
     protected int _port;
     protected int _alternativePort;
-    private ConnectionFactory _connectionFactory;
     private final List<Connection> _connections = new ArrayList<>();
 
     @Override
@@ -97,18 +96,9 @@ public class FailoverBaseCase extends QpidBrokerTestCase implements ConnectionLi
     public ConnectionFactory getConnectionFactory() throws NamingException
     {
         LOGGER.info("get ConnectionFactory");
-        if (_connectionFactory == null)
-        {
-            if (Boolean.getBoolean("profile.use_ssl"))
-            {
-                _connectionFactory = getConnectionFactory("failover.ssl");
-            }
-            else
-            {
-                _connectionFactory = getConnectionFactory("failover");
-            }
-        }
-        return _connectionFactory;
+        return getConnectionBuilder().setFailover(true)
+                                     .setTls(Boolean.getBoolean("profile.use_ssl"))
+                                     .buildConnectionFactory();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/9089861a/test-profiles/Java10UninvestigatedTestsExcludes
----------------------------------------------------------------------
diff --git a/test-profiles/Java10UninvestigatedTestsExcludes b/test-profiles/Java10UninvestigatedTestsExcludes
index 82e8a89..349fb71 100644
--- a/test-profiles/Java10UninvestigatedTestsExcludes
+++ b/test-profiles/Java10UninvestigatedTestsExcludes
@@ -22,6 +22,9 @@
 
 org.apache.qpid.client.prefetch.PrefetchBehaviourTest#*
 
+QPID-XXXX: It could be a broker bug. The issue requires further inevestigation
+org.apache.qpid.systest.AnonymousProducerTest#testPublishIntoNonExistingQueue
+org.apache.qpid.test.client.queue.QueuePolicyTest#testRejectPolicyMessageDepth
 
 
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org