diff --git a/client/src/test/java/org/apache/qpid/client/message/AbstractJMSMessageTest.java b/client/src/test/java/org/apache/qpid/client/message/AbstractJMSMessageTest.java
index 6afd593..a4d7f37 100644
--- a/client/src/test/java/org/apache/qpid/client/message/AbstractJMSMessageTest.java
+++ b/client/src/test/java/org/apache/qpid/client/message/AbstractJMSMessageTest.java
@@ -33,8 +33,6 @@
 
 import javax.jms.JMSException;
 
-import org.mockito.ArgumentMatcher;
-
 import org.apache.qpid.QpidException;
 import org.apache.qpid.client.AMQDestination;
 import org.apache.qpid.client.AMQSession;
@@ -51,7 +49,7 @@
 
     public void testIncoming08ReplyTo() throws Exception
     {
-        when(_session.isQueueBound(isNull(String.class), eq("knownQueue"), isNull(String.class))).thenReturn(true);
+        when(_session.isQueueBound(isNull(), eq("knownQueue"), isNull())).thenReturn(true);
         when(_session.isExchangeExist(isDestinationWithAddress("knownExchange"), anyBoolean())).thenReturn(true);
 
         doReplyToTest("direct://amq.direct/knownQueue?routingkey='knownQueue'", "direct://amq.direct/knownQueue/knownQueue?routingkey='knownQueue'");
@@ -109,13 +107,6 @@
 
     private AMQDestination isDestinationWithAddress(final String expectedAddress)
     {
-        return argThat( new ArgumentMatcher<AMQDestination>()
-        {
-            @Override
-            public boolean matches(AMQDestination argument)
-            {
-                return argument.getAddressName().equals(expectedAddress);
-            }
-        });
+        return argThat(argument -> argument.getAddressName().equals(expectedAddress));
     }
 }
diff --git a/pom.xml b/pom.xml
index b86e060..0570f6a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,9 +94,9 @@
 
 
     <!-- test dependency version numbers -->
-    <junit-version>4.11</junit-version>
-    <mockito-version>2.22.0</mockito-version>
-    <hamcrest-version>1.3</hamcrest-version>
+    <junit-version>4.13</junit-version>
+    <mockito-version>3.2.4</mockito-version>
+    <hamcrest-version>2.2</hamcrest-version>
     <httpclient-version>4.5.3</httpclient-version>
 
     <maven-core-version>3.5.4</maven-core-version>
@@ -218,11 +218,6 @@
         <version>${hamcrest-version}</version>
       </dependency>
       <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-integration</artifactId>
-        <version>${hamcrest-version}</version>
-      </dependency>
-      <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-core</artifactId>
         <version>${maven-core-version}</version>
diff --git a/systests/pom.xml b/systests/pom.xml
index de02637..bc359fb 100644
--- a/systests/pom.xml
+++ b/systests/pom.xml
@@ -106,12 +106,6 @@
             <artifactId>hamcrest-library</artifactId>
             <scope>test</scope>
         </dependency>
-
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-integration</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>
