You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2018/04/27 20:50:14 UTC

[1/2] qpid-jms git commit: QPIDJMS-384 Extend the extension function definition to include the URI

Repository: qpid-jms
Updated Branches:
  refs/heads/master 8b2feac71 -> 9653d8b11


QPIDJMS-384 Extend the extension function definition to include the URI

Include the URI being connected to so that reconnect attempts provide
the user with the location of the remote to provide more information
that might be needed when computing tokens or other authentication data.

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/b23b6e4e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/b23b6e4e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/b23b6e4e

Branch: refs/heads/master
Commit: b23b6e4e3341a22fa45533eabf33a46a50a20f16
Parents: 8b2feac
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Apr 27 16:34:07 2018 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Fri Apr 27 16:34:07 2018 -0400

----------------------------------------------------------------------
 .../qpid/jms/JmsConnectionExtensions.java       | 21 +++++-----
 .../apache/qpid/jms/JmsConnectionFactory.java   |  8 ++--
 .../apache/qpid/jms/meta/JmsConnectionInfo.java |  6 +--
 .../qpid/jms/provider/amqp/AmqpProvider.java    | 12 ++++--
 .../jms/integration/SaslIntegrationTest.java    | 40 +++++++++++++++++---
 .../jms/integration/SslIntegrationTest.java     |  2 +-
 .../netty/NettyTcpToMockServerTest.java         | 11 +++++-
 7 files changed, 70 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b23b6e4e/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionExtensions.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionExtensions.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionExtensions.java
index eecbf54..ecade6d 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionExtensions.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionExtensions.java
@@ -16,8 +16,9 @@
  */
 package org.apache.qpid.jms;
 
+import java.net.URI;
 import java.util.Map;
-import java.util.function.Function;
+import java.util.function.BiFunction;
 
 import javax.jms.Connection;
 import javax.net.ssl.SSLContext;
@@ -31,7 +32,7 @@ import javax.net.ssl.SSLContext;
  * to connect to a remote.
  * <p>
  * The extensions take the form of a Function&lt;Connection, Object&gt; passed into the ConnectionFactory
- * using the {@link JmsConnectionFactory#setExtension(String, Function)}.
+ * using the {@link JmsConnectionFactory#setExtension(String, BiFunction)}.
  */
 public enum JmsConnectionExtensions {
 
@@ -43,10 +44,10 @@ public enum JmsConnectionExtensions {
      * to the location/credentials/type of SSL key/trust stores and whether to trust all
      * certificates or use a particular keyAlias.
      * <p>
-     * The extension function takes the form of a Function defined as the following:
+     * The extension function takes the form of a BiFunction defined as the following:
      * <ul>
      *   <li>
-     *     {@link Function}&lt;{@link Connection}, {@link SSLContext}&gt;
+     *     {@link BiFunction}&lt;{@link Connection}, {@link URI}, {@link SSLContext}&gt;
      *   </li>
      * </ul>
      */
@@ -60,10 +61,10 @@ public enum JmsConnectionExtensions {
      * to the user name provided to the remote for authentication.  This method will be invoked
      * on each connection authentication attempt in the presence of a failover configuration.
      * <p>
-     * The extension function takes the form of a Function defined as the following:
+     * The extension function takes the form of a BiFunction defined as the following:
      * <ul>
      *   <li>
-     *     {@link Function}&lt;{@link Connection}, {@link String}&gt;
+     *     {@link BiFunction}&lt;{@link Connection}, {@link URI}, {@link String}&gt;
      *   </li>
      * </ul>
      */
@@ -77,10 +78,10 @@ public enum JmsConnectionExtensions {
      * to the password provided to the remote for authentication.  This method will be invoked
      * on each connection authentication attempt in the presence of a failover configuration.
      * <p>
-     * The extension function takes the form of a Function defined as the following:
+     * The extension function takes the form of a BiFunction defined as the following:
      * <ul>
      *   <li>
-     *     {@link Function}&lt;{@link Connection}, {@link String}&gt;
+     *     {@link BiFunction}&lt;{@link Connection}, {@link URI}, {@link String}&gt;
      *   </li>
      * </ul>
      */
@@ -95,10 +96,10 @@ public enum JmsConnectionExtensions {
      * to the HTTP headers provided to the remote for authentication.  This method will be invoked
      * on each connection authentication attempt in the presence of a failover configuration.
      * <p>
-     * The extension function takes the form of a Function defined as the following:
+     * The extension function takes the form of a BiFunction defined as the following:
      * <ul>
      *   <li>
-     *     {@link Function}&lt;{@link Connection}, {@link Map}&gt;
+     *     {@link BiFunction}&lt;{@link Connection}, {@link URI}, {@link Map}&gt;
      *   </li>
      * </ul>
      */

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b23b6e4e/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
index f15b478..baecfa9 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsConnectionFactory.java
@@ -22,7 +22,7 @@ import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.EnumMap;
 import java.util.Map;
-import java.util.function.Function;
+import java.util.function.BiFunction;
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
@@ -73,7 +73,7 @@ public class JmsConnectionFactory extends JNDIStorable implements ConnectionFact
 
     private static String DEFAULT_REMOTE_URI;
 
-    private final EnumMap<JmsConnectionExtensions, Function<Connection, Object>> extensionMap = new EnumMap<>(JmsConnectionExtensions.class);
+    private final EnumMap<JmsConnectionExtensions, BiFunction<Connection, URI, Object>> extensionMap = new EnumMap<>(JmsConnectionExtensions.class);
 
     private URI remoteURI;
     private String username;
@@ -871,7 +871,7 @@ public class JmsConnectionFactory extends JNDIStorable implements ConnectionFact
      *      the sslContext to use, or null to respect the URI/System property configuration again.
      */
     public void setSslContext(SSLContext sslContext) {
-        this.extensionMap.put(JmsConnectionExtensions.SSL_CONTEXT, (connection) -> sslContext);
+        this.extensionMap.put(JmsConnectionExtensions.SSL_CONTEXT, (connection, remoteURI) -> sslContext);
     }
 
     public boolean isAwaitClientID() {
@@ -927,7 +927,7 @@ public class JmsConnectionFactory extends JNDIStorable implements ConnectionFact
      *
      * @see JmsConnectionExtensions
      */
-    public void setExtension(String extensionName, Function<Connection, Object> extension) {
+    public void setExtension(String extensionName, BiFunction<Connection, URI, Object> extension) {
         JmsConnectionExtensions extensionKey = JmsConnectionExtensions.fromString(extensionName);
         if (extension == null) {
             extensionMap.remove(extensionKey);

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b23b6e4e/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
index c624696..f40bef1 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/meta/JmsConnectionInfo.java
@@ -19,7 +19,7 @@ package org.apache.qpid.jms.meta;
 import java.net.URI;
 import java.nio.charset.Charset;
 import java.util.EnumMap;
-import java.util.function.Function;
+import java.util.function.BiFunction;
 
 import javax.jms.Connection;
 
@@ -49,7 +49,7 @@ public final class JmsConnectionInfo extends JmsAbstractResource implements Comp
     public static final long DEFAULT_REQUEST_TIMEOUT = INFINITE;
 
     private final JmsConnectionId connectionId;
-    private final EnumMap<JmsConnectionExtensions, Function<Connection, Object>> extensionMap = new EnumMap<>(JmsConnectionExtensions.class);
+    private final EnumMap<JmsConnectionExtensions, BiFunction<Connection, URI, Object>> extensionMap = new EnumMap<>(JmsConnectionExtensions.class);
 
     private JmsConnection connection;
     private URI configuredURI;
@@ -370,7 +370,7 @@ public final class JmsConnectionInfo extends JmsAbstractResource implements Comp
         this.awaitClientID = awaitClientID;
     }
 
-    public EnumMap<JmsConnectionExtensions, Function<Connection, Object>> getExtensionMap() {
+    public EnumMap<JmsConnectionExtensions, BiFunction<Connection, URI, Object>> getExtensionMap() {
         return extensionMap;
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b23b6e4e/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
index 579b202..46c95ab 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpProvider.java
@@ -201,7 +201,8 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP
                     final SSLContext sslContextOverride;
                     if (connectionInfo.getExtensionMap().containsKey(JmsConnectionExtensions.SSL_CONTEXT)) {
                         sslContextOverride =
-                            (SSLContext) connectionInfo.getExtensionMap().get(JmsConnectionExtensions.SSL_CONTEXT).apply(connectionInfo.getConnection());
+                            (SSLContext) connectionInfo.getExtensionMap().get(
+                                JmsConnectionExtensions.SSL_CONTEXT).apply(connectionInfo.getConnection(), transport.getRemoteLocation());
                     } else {
                         sslContextOverride = null;
                     }
@@ -212,7 +213,8 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP
                     if (connectionInfo.getExtensionMap().containsKey(JmsConnectionExtensions.HTTP_HEADERS_OVERRIDE)) {
                         @SuppressWarnings({ "unchecked" })
                         Map<String, String> headers = (Map<String, String>)
-                            connectionInfo.getExtensionMap().get(JmsConnectionExtensions.HTTP_HEADERS_OVERRIDE).apply(connectionInfo.getConnection());
+                            connectionInfo.getExtensionMap().get(
+                                JmsConnectionExtensions.HTTP_HEADERS_OVERRIDE).apply(connectionInfo.getConnection(), transport.getRemoteLocation());
                         if (headers != null) {
                             transport.getTransportOptions().getHttpHeaders().putAll(headers);
                         }
@@ -1446,14 +1448,16 @@ public class AmqpProvider implements Provider, TransportListener , AmqpResourceP
 
         final String username;
         if (connectionInfo.getExtensionMap().containsKey(JmsConnectionExtensions.USERNAME_OVERRIDE)) {
-            username = (String) connectionInfo.getExtensionMap().get(JmsConnectionExtensions.USERNAME_OVERRIDE).apply(connectionInfo.getConnection());
+            username = (String) connectionInfo.getExtensionMap().get(
+                JmsConnectionExtensions.USERNAME_OVERRIDE).apply(connectionInfo.getConnection(), transport.getRemoteLocation());
         } else {
             username = connectionInfo.getUsername();
         }
 
         final String password;
         if (connectionInfo.getExtensionMap().containsKey(JmsConnectionExtensions.PASSWORD_OVERRIDE)) {
-            password = (String) connectionInfo.getExtensionMap().get(JmsConnectionExtensions.PASSWORD_OVERRIDE).apply(connectionInfo.getConnection());
+            password = (String) connectionInfo.getExtensionMap().get(
+                JmsConnectionExtensions.PASSWORD_OVERRIDE).apply(connectionInfo.getConnection(), transport.getRemoteLocation());
         } else {
             password = connectionInfo.getPassword();
         }

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b23b6e4e/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
index 434a503..2463318 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SaslIntegrationTest.java
@@ -26,10 +26,12 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
 
+import java.net.URI;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.util.Base64;
+import java.util.concurrent.atomic.AtomicReference;
 
 import javax.jms.Connection;
 import javax.jms.ConnectionFactory;
@@ -454,6 +456,9 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
     public void testUserOnlyExtensionsApplied() throws Exception {
         try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
 
+            final AtomicReference<Connection> connectionRef = new AtomicReference<>();
+            final AtomicReference<URI> remoteURIRef = new AtomicReference<>();
+
             // Expect a PLAIN connection
             final String user = "user";
             final String pass = "qwerty123456";
@@ -464,9 +469,16 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
             // Each connection creates a session for managing temporary destinations etc
             testPeer.expectBegin();
 
-            JmsConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + testPeer.getServerPort());
+            final URI remoteURI = new URI("amqp://localhost:" + testPeer.getServerPort());
+
+            JmsConnectionFactory factory = new JmsConnectionFactory(remoteURI);
 
-            factory.setExtension(JmsConnectionExtensions.USERNAME_OVERRIDE.toString(), (connection) -> { return user; });
+            factory.setExtension(JmsConnectionExtensions.USERNAME_OVERRIDE.toString(), (connection, uri) -> {
+                connectionRef.set(connection);
+                remoteURIRef.set(uri);
+
+                return user;
+            });
 
             Connection connection = factory.createConnection(null, pass);
             // Set a clientID to provoke the actual AMQP connection process to occur.
@@ -475,6 +487,9 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
             testPeer.waitForAllHandlersToComplete(1000);
             assertNull(testPeer.getThrowable());
 
+            assertEquals(connection, connectionRef.get());
+            assertEquals(remoteURI, remoteURIRef.get());
+
             testPeer.expectClose();
             connection.close();
         }
@@ -484,6 +499,9 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
     public void testPasswordOnlyExtensionsApplied() throws Exception {
         try (TestAmqpPeer testPeer = new TestAmqpPeer();) {
 
+            final AtomicReference<Connection> connectionRef = new AtomicReference<>();
+            final AtomicReference<URI> remoteURIRef = new AtomicReference<>();
+
             // Expect a PLAIN connection
             final String user = "user";
             final String pass = "qwerty123456";
@@ -494,9 +512,16 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
             // Each connection creates a session for managing temporary destinations etc
             testPeer.expectBegin();
 
-            JmsConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + testPeer.getServerPort());
+            final URI remoteURI = new URI("amqp://localhost:" + testPeer.getServerPort());
+
+            JmsConnectionFactory factory = new JmsConnectionFactory(remoteURI);
 
-            factory.setExtension(JmsConnectionExtensions.PASSWORD_OVERRIDE.toString(), (connection) -> { return pass; });
+            factory.setExtension(JmsConnectionExtensions.PASSWORD_OVERRIDE.toString(), (connection, uri) -> {
+                connectionRef.set(connection);
+                remoteURIRef.set(uri);
+
+                return pass;
+            });
 
             Connection connection = factory.createConnection(user, null);
             // Set a clientID to provoke the actual AMQP connection process to occur.
@@ -505,6 +530,9 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
             testPeer.waitForAllHandlersToComplete(1000);
             assertNull(testPeer.getThrowable());
 
+            assertEquals(connection, connectionRef.get());
+            assertEquals(remoteURI, remoteURIRef.get());
+
             testPeer.expectClose();
             connection.close();
         }
@@ -526,8 +554,8 @@ public class SaslIntegrationTest extends QpidJmsTestCase {
 
             JmsConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:" + testPeer.getServerPort());
 
-            factory.setExtension(JmsConnectionExtensions.USERNAME_OVERRIDE.toString(), (connection) -> { return user; });
-            factory.setExtension(JmsConnectionExtensions.PASSWORD_OVERRIDE.toString(), (connection) -> { return pass; });
+            factory.setExtension(JmsConnectionExtensions.USERNAME_OVERRIDE.toString(), (connection, uri) -> { return user; });
+            factory.setExtension(JmsConnectionExtensions.PASSWORD_OVERRIDE.toString(), (connection, uri) -> { return pass; });
 
             Connection connection = factory.createConnection();
             // Set a clientID to provoke the actual AMQP connection process to occur.

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b23b6e4e/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SslIntegrationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SslIntegrationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SslIntegrationTest.java
index 8837c74..f79ef32 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SslIntegrationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/integration/SslIntegrationTest.java
@@ -291,7 +291,7 @@ public class SslIntegrationTest extends QpidJmsTestCase {
             JmsConnectionFactory factory = new JmsConnectionFactory("amqps://localhost:" + testPeer.getServerPort());
 
             if (useExtension) {
-                factory.setExtension(JmsConnectionExtensions.SSL_CONTEXT.toString(), (options) -> {
+                factory.setExtension(JmsConnectionExtensions.SSL_CONTEXT.toString(), (options, uri) -> {
                     try {
                         return TransportSupport.createSslContext(clientSslOptions);
                     } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/b23b6e4e/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyTcpToMockServerTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyTcpToMockServerTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyTcpToMockServerTest.java
index 8cbbad8..b9f5b07 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyTcpToMockServerTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/transports/netty/NettyTcpToMockServerTest.java
@@ -31,6 +31,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
 
 import javax.jms.Connection;
 import javax.jms.InvalidClientIDException;
@@ -305,8 +306,12 @@ public class NettyTcpToMockServerTest extends QpidJmsTestCase {
         try (NettySimpleAmqpServer server = createWSServer(createServerOptions())) {
             server.start();
 
+            AtomicReference<URI> remoteURI = new AtomicReference<URI>();
+
             JmsConnectionFactory cf = new JmsConnectionFactory(createConnectionURI(server));
-            cf.setExtension(JmsConnectionExtensions.HTTP_HEADERS_OVERRIDE.toString(), (connection) -> {
+            cf.setExtension(JmsConnectionExtensions.HTTP_HEADERS_OVERRIDE.toString(), (connection, uri) -> {
+                remoteURI.set(uri);
+
                 Map<String, String> headers = new HashMap<>();
 
                 headers.put("test-header1", "FOO");
@@ -320,7 +325,6 @@ public class NettyTcpToMockServerTest extends QpidJmsTestCase {
                 connection = cf.createConnection();
                 connection.start();
 
-
                 assertTrue("HandshakeCompletion not set within given time", server.awaitHandshakeCompletion(2000));
                 HandshakeComplete handshake = server.getHandshakeComplete();
                 assertNotNull("completion should not be null", handshake);
@@ -331,6 +335,9 @@ public class NettyTcpToMockServerTest extends QpidJmsTestCase {
 
                 assertEquals("FOO", requestHeaders.get("test-header1"));
                 assertEquals("BAR", requestHeaders.get("test-header2"));
+
+                assertNotNull(remoteURI.get());
+                assertEquals(server.getConnectionURI(), remoteURI.get());
             } catch (Exception ex) {
                 LOG.error("Caught exception while attempting to connect");
                 fail("Should be able to connect in this simple test");


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


[2/2] qpid-jms git commit: NO-JIRA Fix some warnings in the MockProvider test class

Posted by ta...@apache.org.
NO-JIRA Fix some warnings in the MockProvider test class

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/9653d8b1
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/9653d8b1
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/9653d8b1

Branch: refs/heads/master
Commit: 9653d8b11f61e3f6130413739d9ee3624b2eaaa5
Parents: b23b6e4
Author: Timothy Bish <ta...@gmail.com>
Authored: Fri Apr 27 16:49:57 2018 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Fri Apr 27 16:49:57 2018 -0400

----------------------------------------------------------------------
 .../jms/provider/mock/MockProviderStats.java    | 21 +++++++++-----------
 1 file changed, 9 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9653d8b1/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProviderStats.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProviderStats.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProviderStats.java
index 9c056d8..74a1e31 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProviderStats.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/mock/MockProviderStats.java
@@ -17,6 +17,7 @@
 package org.apache.qpid.jms.provider.mock;
 
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.qpid.jms.meta.JmsResource;
@@ -45,14 +46,10 @@ public class MockProviderStats {
     private final AtomicInteger unsubscribeCalls = new AtomicInteger();
     private final AtomicInteger pullCalls = new AtomicInteger();
 
-    private final ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger> resourceCreateCalls =
-        new ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger>();
-    private final ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger> resourceStartCalls =
-        new ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger>();
-    private final ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger> resourceStopCalls =
-        new ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger>();
-    private final ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger> resourceDestroyCalls =
-        new ConcurrentHashMap<Class<? extends JmsResource>, AtomicInteger>();
+    private final ConcurrentMap<Class<? extends JmsResource>, AtomicInteger> resourceCreateCalls = new ConcurrentHashMap<>();
+    private final ConcurrentMap<Class<? extends JmsResource>, AtomicInteger> resourceStartCalls = new ConcurrentHashMap<>();
+    private final ConcurrentMap<Class<? extends JmsResource>, AtomicInteger> resourceStopCalls = new ConcurrentHashMap<>();
+    private final ConcurrentMap<Class<? extends JmsResource>, AtomicInteger> resourceDestroyCalls = new ConcurrentHashMap<>();
 
     public MockProviderStats() {
         this(null);
@@ -117,7 +114,7 @@ public class MockProviderStats {
         }
 
         createResourceCalls.incrementAndGet();
-        AtomicInteger count = resourceCreateCalls.get(resource);
+        AtomicInteger count = resourceCreateCalls.get(resource.getClass());
         if (count != null) {
             count.incrementAndGet();
         } else {
@@ -144,7 +141,7 @@ public class MockProviderStats {
         }
 
         startResourceCalls.incrementAndGet();
-        AtomicInteger count = resourceStartCalls.get(resource);
+        AtomicInteger count = resourceStartCalls.get(resource.getClass());
         if (count != null) {
             count.incrementAndGet();
         } else {
@@ -171,7 +168,7 @@ public class MockProviderStats {
         }
 
         stopResourceCalls.incrementAndGet();
-        AtomicInteger count = resourceStopCalls.get(resource);
+        AtomicInteger count = resourceStopCalls.get(resource.getClass());
         if (count != null) {
             count.incrementAndGet();
         } else {
@@ -198,7 +195,7 @@ public class MockProviderStats {
         }
 
         destroyResourceCalls.incrementAndGet();
-        AtomicInteger count = resourceDestroyCalls.get(resource);
+        AtomicInteger count = resourceDestroyCalls.get(resource.getClass());
         if (count != null) {
             count.incrementAndGet();
         } else {


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