This is an automated email from the ASF dual-hosted git repository.

stoty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/phoenix.git


The following commit(s) were added to refs/heads/master by this push:
     new 06f5abc5b9 PHOENIX-6769 Align mockito version with Hadoop and HBase
06f5abc5b9 is described below

commit 06f5abc5b94a94a0187c1655bfda2b1440a5a4c2
Author: Istvan Toth <st...@apache.org>
AuthorDate: Thu Feb 1 16:56:19 2024 +0100

    PHOENIX-6769 Align mockito version with Hadoop and HBase
    
    * Update mockito to 4.11.0, same as HBase branch-3
    * Remove org.hamcrest usage and direct dependency
---
 phoenix-core/pom.xml                               |  5 ----
 .../apache/phoenix/end2end/AppendOnlySchemaIT.java | 27 +++++++++++-----------
 .../end2end/OrderByWithServerMemoryLimitIT.java    |  5 ++--
 .../end2end/ParameterizedIndexUpgradeToolIT.java   |  2 +-
 .../end2end/RebuildIndexConnectionPropsIT.java     | 21 ++++++++++++-----
 .../org/apache/phoenix/end2end/SumFunctionIT.java  | 13 ++++++-----
 .../apache/phoenix/end2end/UpsertWithSCNIT.java    | 25 ++++++++++----------
 .../end2end/join/SortMergeJoinNoSpoolingIT.java    |  5 ++--
 .../phoenix/jdbc/HighAvailabilityGroupTestIT.java  | 10 ++++----
 .../monitoring/PhoenixMetricsDisabledIT.java       |  5 ++--
 .../phoenix/monitoring/PhoenixMetricsIT.java       | 23 +++++++++++-------
 .../rpc/UpdateCacheConnectionLevelPropIT.java      |  4 ++--
 .../java/org/apache/phoenix/rpc/UpdateCacheIT.java |  6 ++---
 .../coprocessor/TaskMetaDataEndpointTest.java      |  8 +++----
 .../phoenix/hbase/index/write/TestIndexWriter.java |  2 +-
 .../hbase/index/write/TestParalleIndexWriter.java  |  2 +-
 .../write/TestParalleWriterIndexCommitter.java     |  2 +-
 .../org/apache/phoenix/index/ShouldVerifyTest.java |  8 +++----
 .../phoenix/index/VerifySingleIndexRowTest.java    | 22 +++++++++---------
 .../jdbc/ClusterRoleRecordGeneratorToolTest.java   |  2 +-
 .../jdbc/FailoverPhoenixConnectionTest.java        |  2 +-
 .../phoenix/jdbc/ParallelPhoenixResultSetTest.java |  2 +-
 .../phoenix/jdbc/ParallelPhoenixUtilTest.java      |  2 +-
 .../phoenix/jdbc/PhoenixHAAdminToolTest.java       |  8 ++++---
 .../apache/phoenix/jdbc/PhoenixStatementTest.java  | 24 +++++++++++++++----
 .../apache/phoenix/monitoring/MetricUtilTest.java  |  2 +-
 .../query/ConnectionQueryServicesImplTest.java     |  7 +++---
 .../schema/stats/StatisticsScannerTest.java        | 12 +++++-----
 .../phoenix/util/AbstractUpsertExecutorTest.java   |  4 ++--
 .../java/org/apache/phoenix/util/LogUtilTest.java  |  2 +-
 phoenix-pherf/pom.xml                              |  5 ----
 .../org/apache/phoenix/pherf/ResourceTest.java     | 16 ++++---------
 pom.xml                                            | 14 ++++-------
 33 files changed, 152 insertions(+), 145 deletions(-)

diff --git a/phoenix-core/pom.xml b/phoenix-core/pom.xml
index 9a78ada110..6b0738e365 100644
--- a/phoenix-core/pom.xml
+++ b/phoenix-core/pom.xml
@@ -451,11 +451,6 @@
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-core</artifactId>
-            <scope>test</scope>
-        </dependency>
 
         <!-- logging -->
         <dependency>
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java
index 82a8e8e40f..3d25c1a932 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AppendOnlySchemaIT.java
@@ -22,14 +22,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyList;
-import static org.mockito.Matchers.anyListOf;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.anyMap;
-import static org.mockito.Matchers.anySetOf;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.isNull;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.anyMap;
+import static org.mockito.ArgumentMatchers.anySet;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.times;
@@ -112,14 +111,14 @@ public class AppendOnlySchemaIT extends 
ParallelStatsDisabledIT {
                     fail("Create Table should not fail");
                 }
             }
-            
+
             // verify getTable rpcs
             verify(connectionQueryServices, never())
                     .getTable((PName) isNull(), AdditionalMatchers.aryEq(new 
byte[0]),
-                            AdditionalMatchers.aryEq(Bytes.toBytes(viewName)), 
anyLong(), anyLong());
+                        AdditionalMatchers.aryEq(Bytes.toBytes(viewName)), 
anyLong(), anyLong());
             
             // verify no create table rpcs
-            verify(connectionQueryServices, 
never()).createTable(anyListOf(Mutation.class),
+            verify(connectionQueryServices, never()).createTable(anyList(),
                 any(byte[].class), any(PTableType.class), anyMap(), anyList(), 
any(byte[][].class),
                 eq(false), eq(false), eq(false), any(PTable.class));
             reset(connectionQueryServices);
@@ -141,9 +140,9 @@ public class AppendOnlySchemaIT extends 
ParallelStatsDisabledIT {
             // if not verify exists is true one call to add column table with 
empty mutation list (which does not make a rpc) 
             // else verify no add column calls
             verify(connectionQueryServices, notExists ? times(1) : never() )
-                    .addColumn(eq(Collections.<Mutation>emptyList()), 
any(PTable.class), any(PTable.class),
-                            any(PTable.class), anyMap(), 
anySetOf(String.class),
-                            anyListOf(PColumn.class));
+                    .addColumn(eq(Collections.<Mutation>emptyList()), any(), 
any(),
+                            any(), anyMap(), anySet(),
+                            anyList());
 
             // upsert one row
             conn2.createStatement().execute("UPSERT INTO " + viewName + 
"(hostName, metricVal) VALUES('host2', 2.0)");
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByWithServerMemoryLimitIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByWithServerMemoryLimitIT.java
index edcf8848f1..8bf0589adb 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByWithServerMemoryLimitIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/OrderByWithServerMemoryLimitIT.java
@@ -11,8 +11,7 @@
 package org.apache.phoenix.end2end;
 
 import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.sql.Connection;
@@ -75,7 +74,7 @@ public class OrderByWithServerMemoryLimitIT extends BaseTest {
                 rs.next();
                 fail("Expected PhoenixIOException due to 
IllegalStateException");
             } catch (SQLException e) {
-                assertThat(e.getMessage(), containsString(
+                assertTrue(e.getMessage().contains(
                         "ERROR 101 (08000): Unexpected IO exception. ERROR 101 
(08000): "
                                 + "Queue full. Consider increasing memory 
threshold or "
                                 + "spooling to disk"));
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParameterizedIndexUpgradeToolIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParameterizedIndexUpgradeToolIT.java
index a7c6c6ddb9..2b2d35659d 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParameterizedIndexUpgradeToolIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/ParameterizedIndexUpgradeToolIT.java
@@ -492,7 +492,7 @@ public class ParameterizedIndexUpgradeToolIT extends 
BaseTest {
                     times(11)) // for every index/view-index except index on 
transaction table
                     .run(argCapture.capture());
         } else {
-            Mockito.verifyZeroInteractions(indexToolMock);
+            Mockito.verifyNoMoreInteractions(indexToolMock);
         }
     }
 
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RebuildIndexConnectionPropsIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RebuildIndexConnectionPropsIT.java
index a7000b69ce..7fd66da08b 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/RebuildIndexConnectionPropsIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/RebuildIndexConnectionPropsIT.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import java.lang.reflect.Field;
 import java.sql.DriverManager;
 import java.util.HashMap;
 import java.util.Map;
@@ -36,8 +37,11 @@ import org.apache.phoenix.coprocessor.MetaDataRegionObserver;
 import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.apache.phoenix.jdbc.PhoenixDriver;
 import org.apache.phoenix.jdbc.PhoenixEmbeddedDriver;
+import org.apache.phoenix.jdbc.PhoenixResultSet;
 import org.apache.phoenix.query.BaseTest;
 import org.apache.phoenix.query.ConnectionQueryServices;
+import org.apache.phoenix.query.ConnectionQueryServicesImpl;
+import org.apache.phoenix.query.DelegateQueryServices;
 import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesOptions;
 import org.apache.phoenix.util.PhoenixRuntime;
@@ -46,7 +50,6 @@ import org.apache.phoenix.util.ReadOnlyProps;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
-import org.mockito.internal.util.reflection.Whitebox;
 
 @Category(NeedsOwnMiniClusterTest.class)
 public class RebuildIndexConnectionPropsIT extends BaseTest {
@@ -106,12 +109,18 @@ public class RebuildIndexConnectionPropsIT extends 
BaseTest {
                     Long.toString(NUM_RPC_RETRIES),
                     
rebuildQueryServicesConfig.get(HConstants.HBASE_CLIENT_RETRIES_NUMBER));
                 ConnectionQueryServices rebuildQueryServices = 
rebuildIndexConnection.getQueryServices();
-                Connection rebuildIndexHConnection =
-                        (Connection) 
Whitebox.getInternalState(Whitebox.getInternalState(rebuildQueryServices,
-                        "parent"), "connection");
+
+                Field parentField = 
DelegateQueryServices.class.getDeclaredField("parent");
+                parentField.setAccessible(true);
+                QueryServices parent = (QueryServices) 
parentField.get(rebuildQueryServices);
+
+                Field connectionField =
+                        
ConnectionQueryServicesImpl.class.getDeclaredField("connection");
+                connectionField.setAccessible(true);
+                Connection rebuildIndexHConnection = (Connection) 
connectionField.get(parent);
                 Connection regularHConnection =
-                        (Connection) Whitebox.getInternalState(
-                            regularConnection.getQueryServices(), 
"connection");
+                        (Connection) 
connectionField.get(regularConnection.getQueryServices());
+
                 // assert that a new HConnection was created
                 assertFalse(
                     
regularHConnection.toString().equals(rebuildIndexHConnection.toString()));
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SumFunctionIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SumFunctionIT.java
index fc54c833b6..b304e984f8 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/SumFunctionIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/SumFunctionIT.java
@@ -25,8 +25,9 @@ import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.Statement;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 @Category(ParallelStatsDisabledTest.class)
 public class SumFunctionIT extends ParallelStatsDisabledIT {
@@ -46,10 +47,10 @@ public class SumFunctionIT extends ParallelStatsDisabledIT {
               "select sum(case when col1 is null then col2 else 0 end), "
                 + "sum(case when col1 is not null then col2 else 0 end) from " 
+ tableName)) {
 
-                assertThat(rs.next(), is(true));
-                assertThat(rs.getInt(1), is(1));
-                assertThat(rs.getInt(2), is(2));
-                assertThat(rs.next(), is(false));
+                assertTrue(rs.next());
+                assertEquals(rs.getInt(1), 1);
+                assertEquals(rs.getInt(2), 2);
+                assertFalse(rs.next());
             }
         }
     }
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertWithSCNIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertWithSCNIT.java
index 16c9cfd90b..8369d2eb54 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertWithSCNIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/UpsertWithSCNIT.java
@@ -30,7 +30,6 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Properties;
 
-import static org.hamcrest.CoreMatchers.containsString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -81,10 +80,10 @@ public class UpsertWithSCNIT extends 
ParallelStatsDisabledIT {
 
         helpTestUpsertWithSCNIT(false, true, false, false, false);
         exception.expect(SQLException.class);
-        exception.expectMessage(containsString(String.valueOf(
+        exception.expectMessage(String.valueOf(
                 SQLExceptionCode
                 .CANNOT_SPECIFY_SCN_FOR_TXN_TABLE
-                .getErrorCode())));
+                .getErrorCode()));
         prep.executeUpdate();
     }
 
@@ -121,10 +120,10 @@ public class UpsertWithSCNIT extends 
ParallelStatsDisabledIT {
 
         helpTestUpsertWithSCNIT(false, false, true, true, false);
         exception.expect(SQLException.class);
-        exception.expectMessage(containsString(String.valueOf(
+        exception.expectMessage(String.valueOf(
                 SQLExceptionCode
                 .CANNOT_UPSERT_WITH_SCN_FOR_TABLE_WITH_INDEXES
-                .getErrorCode())));
+                .getErrorCode()));
         prep.executeUpdate();
     }
 
@@ -133,10 +132,10 @@ public class UpsertWithSCNIT extends 
ParallelStatsDisabledIT {
 
         helpTestUpsertWithSCNIT(false, false, false, true, false);
         exception.expect(SQLException.class);
-        exception.expectMessage(containsString(String.valueOf(
+        exception.expectMessage(String.valueOf(
                 SQLExceptionCode
                         .CANNOT_UPSERT_WITH_SCN_FOR_TABLE_WITH_INDEXES
-                        .getErrorCode())));
+                        .getErrorCode()));
         prep.executeUpdate();
     }
 
@@ -145,10 +144,10 @@ public class UpsertWithSCNIT extends 
ParallelStatsDisabledIT {
 
         helpTestUpsertWithSCNIT(false, false, true, false, true);
         exception.expect(SQLException.class);
-        exception.expectMessage(containsString(String.valueOf(
+        exception.expectMessage(String.valueOf(
                 SQLExceptionCode
                         .CANNOT_UPSERT_WITH_SCN_FOR_TABLE_WITH_INDEXES
-                        .getErrorCode())));
+                        .getErrorCode()));
         prep.executeUpdate();
     }
 
@@ -157,10 +156,10 @@ public class UpsertWithSCNIT extends 
ParallelStatsDisabledIT {
 
         helpTestUpsertWithSCNIT(false, false, false, false, true);
         exception.expect(SQLException.class);
-        exception.expectMessage(containsString(String.valueOf(
+        exception.expectMessage(String.valueOf(
                 SQLExceptionCode
                         .CANNOT_UPSERT_WITH_SCN_FOR_TABLE_WITH_INDEXES
-                        .getErrorCode())));
+                        .getErrorCode()));
         prep.executeUpdate();
     }
 
@@ -169,10 +168,10 @@ public class UpsertWithSCNIT extends 
ParallelStatsDisabledIT {
 
         helpTestUpsertWithSCNIT(true, false, false, false, false);
         exception.expect(SQLException.class);
-        exception.expectMessage(containsString(String.valueOf(
+        exception.expectMessage(String.valueOf(
                 SQLExceptionCode
                         .CANNOT_UPSERT_WITH_SCN_FOR_ROW_TIMESTAMP_COLUMN
-                        .getErrorCode())));
+                        .getErrorCode()));
         prep.executeUpdate();
     }
 }
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoSpoolingIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoSpoolingIT.java
index 67af82be32..0273b66bf6 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoSpoolingIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/end2end/join/SortMergeJoinNoSpoolingIT.java
@@ -11,8 +11,7 @@
 package org.apache.phoenix.end2end.join;
 
 import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.sql.Connection;
@@ -76,7 +75,7 @@ public class SortMergeJoinNoSpoolingIT extends 
SortMergeJoinNoIndexIT {
                 rs.next();
                 fail("Expected PhoenixIOException due to 
IllegalStateException");
             } catch (PhoenixIOException e) {
-                assertThat(e.getMessage(), containsString(
+                assertTrue(e.getMessage().contains(
                     "Queue full. Consider increasing memory threshold or 
spooling to disk"));
             }
 
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/jdbc/HighAvailabilityGroupTestIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/jdbc/HighAvailabilityGroupTestIT.java
index cc9b703005..304b048e49 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/jdbc/HighAvailabilityGroupTestIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/jdbc/HighAvailabilityGroupTestIT.java
@@ -26,11 +26,11 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.startsWith;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.startsWith;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsDisabledIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsDisabledIT.java
index 6c51509b24..d540fffae8 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsDisabledIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsDisabledIT.java
@@ -28,7 +28,6 @@ import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.util.InstanceResolver;
 import org.apache.phoenix.util.PhoenixRuntime;
 import org.apache.phoenix.util.ReadOnlyProps;
-import org.hamcrest.CoreMatchers;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
@@ -39,7 +38,7 @@ import java.util.Map;
 import static org.apache.phoenix.monitoring.NoOpGlobalMetricImpl.NO_SAMPLES;
 import static org.apache.phoenix.monitoring.NoOpGlobalMetricImpl.NO_VALUE;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 @Category(NeedsOwnMiniClusterTest.class)
 public class PhoenixMetricsDisabledIT extends BaseTest {
@@ -74,7 +73,7 @@ public class PhoenixMetricsDisabledIT extends BaseTest {
     @Test
     public void testResetGlobalPhoenixMetrics() {
         for (GlobalMetric m : PhoenixRuntime.getGlobalPhoenixClientMetrics()) {
-            assertThat(m, 
CoreMatchers.<GlobalMetric>instanceOf(NoOpGlobalMetricImpl.class));
+            assertTrue(m instanceof NoOpGlobalMetricImpl);
             assertEquals(NO_VALUE, m.getValue());
             assertEquals(NO_SAMPLES, m.getNumberOfSamples());
         }
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsIT.java
index 09f400070f..8c007df082 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsIT.java
@@ -51,10 +51,10 @@ import static 
org.apache.phoenix.monitoring.MetricType.UPSERT_COMMIT_TIME;
 import static org.apache.phoenix.util.PhoenixRuntime.TENANT_ID_ATTRIB;
 import static org.apache.phoenix.util.PhoenixRuntime.UPSERT_BATCH_SIZE_ATTRIB;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.lang.reflect.Field;
 import java.sql.Connection;
 import java.sql.Date;
 import java.sql.DriverManager;
@@ -93,10 +93,8 @@ import org.apache.phoenix.query.QueryServicesOptions;
 import org.apache.phoenix.util.EnvironmentEdge;
 import org.apache.phoenix.util.EnvironmentEdgeManager;
 import org.apache.phoenix.util.PhoenixRuntime;
-import org.hamcrest.CoreMatchers;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -167,7 +165,7 @@ public class PhoenixMetricsIT extends BasePhoenixMetricsIT {
     public void testResetGlobalPhoenixMetrics() throws Exception {
         resetGlobalMetrics();
         for (GlobalMetric m : PhoenixRuntime.getGlobalPhoenixClientMetrics()) {
-            assertThat(m, 
CoreMatchers.<GlobalMetric>instanceOf(GlobalMetricImpl.class));
+            assertTrue(m instanceof GlobalMetricImpl);
             assertEquals(0, m.getValue());
             assertEquals(0, m.getNumberOfSamples());
         }
@@ -928,12 +926,21 @@ public class PhoenixMetricsIT extends 
BasePhoenixMetricsIT {
         }
     }
 
-    private void changeInternalStateForTesting(PhoenixResultSet rs) {
+    private void changeInternalStateForTesting(PhoenixResultSet rs) throws 
NoSuchFieldException,
+            SecurityException, IllegalArgumentException, 
IllegalAccessException {
         // get and set the internal state for testing purposes.
+        // TODO use a spy ?
         ReadMetricQueue testMetricsQueue = new 
TestReadMetricsQueue(LogLevel.OFF,true);
-        StatementContext ctx = (StatementContext)Whitebox.getInternalState(rs, 
"context");
-        Whitebox.setInternalState(ctx, "readMetricsQueue", testMetricsQueue);
-        Whitebox.setInternalState(rs, "readMetricsQueue", testMetricsQueue);
+
+        Field rsQueueField = 
PhoenixResultSet.class.getDeclaredField("readMetricsQueue");
+        rsQueueField.setAccessible(true);
+        rsQueueField.set(rs, testMetricsQueue);
+
+        StatementContext ctx = rs.getContext();
+        Field ctxQueueField = 
StatementContext.class.getDeclaredField("readMetricsQueue");
+        ctxQueueField.setAccessible(true);
+        // Default realm for MiniKDC
+        ctxQueueField.set(ctx, testMetricsQueue);
     }
 
     private void assertReadMetricValuesForSelectSql(ArrayList<Long> numRows, 
ArrayList<Long> numExpectedTasks,
diff --git 
a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheConnectionLevelPropIT.java
 
b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheConnectionLevelPropIT.java
index 47026c3cf7..b1f063f57b 100644
--- 
a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheConnectionLevelPropIT.java
+++ 
b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheConnectionLevelPropIT.java
@@ -41,8 +41,8 @@ import java.sql.Statement;
 import java.util.Properties;
 
 import org.mockito.Mockito;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.isNull;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.times;
diff --git a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java 
b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
index 93cd74947a..70a9ff759a 100644
--- a/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
+++ b/phoenix-core/src/it/java/org/apache/phoenix/rpc/UpdateCacheIT.java
@@ -22,9 +22,9 @@ import static 
org.apache.phoenix.util.TestUtil.TEST_PROPERTIES;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.anyLong;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.isNull;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/coprocessor/TaskMetaDataEndpointTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/coprocessor/TaskMetaDataEndpointTest.java
index d64622e62a..b3df1f8846 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/coprocessor/TaskMetaDataEndpointTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/coprocessor/TaskMetaDataEndpointTest.java
@@ -171,11 +171,11 @@ public class TaskMetaDataEndpointTest {
         
CoprocessorRpcUtils.BlockingRpcCallback<MetaDataProtos.MetaDataResponse> 
rpcCallback =
             new CoprocessorRpcUtils.BlockingRpcCallback<>();
         Mockito.doNothing().when(region).mutateRowsWithLocks(
-            Mockito.anyCollectionOf(Mutation.class), Mockito.any(), 
Mockito.anyLong(),
+            Mockito.anyCollection(), Mockito.any(), Mockito.anyLong(),
             Mockito.anyLong());
         taskMetaDataEndpoint.upsertTaskDetails(controller, request, 
rpcCallback);
         Mockito.verify(region, Mockito.times(1)).mutateRowsWithLocks(
-            Mockito.anyCollectionOf(Mutation.class), Mockito.any(), 
Mockito.anyLong(),
+            Mockito.anyCollection(), Mockito.any(), Mockito.anyLong(),
             Mockito.anyLong());
     }
 
@@ -190,11 +190,11 @@ public class TaskMetaDataEndpointTest {
         
CoprocessorRpcUtils.BlockingRpcCallback<MetaDataProtos.MetaDataResponse> 
rpcCallback =
             new CoprocessorRpcUtils.BlockingRpcCallback<>();
         Mockito.doThrow(IOException.class).when(region).mutateRowsWithLocks(
-            Mockito.anyCollectionOf(Mutation.class), Mockito.any(), 
Mockito.anyLong(),
+            Mockito.anyCollection(), Mockito.any(), Mockito.anyLong(),
             Mockito.anyLong());
         taskMetaDataEndpoint.upsertTaskDetails(controller, request, 
rpcCallback);
         Mockito.verify(region, Mockito.times(1)).mutateRowsWithLocks(
-            Mockito.anyCollectionOf(Mutation.class), Mockito.any(), 
Mockito.anyLong(),
+            Mockito.anyCollection(), Mockito.any(), Mockito.anyLong(),
             Mockito.anyLong());
         assertEquals(MetaDataProtos.MutationCode.UNABLE_TO_UPSERT_TASK,
             rpcCallback.get().getReturnCode());
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
index 9db29c0e30..d94c7f8b17 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestIndexWriter.java
@@ -193,7 +193,7 @@ public class TestIndexWriter {
                 }
                 return null;
             }
-        }).when(table).batch(Mockito.anyListOf(Row.class), Mockito.any());
+        }).when(table).batch(Mockito.anyList(), Mockito.any());
     // add the tables to the set of tables, so its returned to the writer
     tables.put(new ImmutableBytesPtr(tableName), table);
 
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
index d249223807..30ea9ce291 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleIndexWriter.java
@@ -80,7 +80,7 @@ public class TestParalleIndexWriter {
     writer.stop(this.test.getTableNameString() + " finished");
     assertTrue("Factory didn't get shutdown after writer#stop!", 
factory.shutdown);
     assertTrue("ExectorService isn't terminated after writer#stop!", 
exec.isShutdown());
-    Mockito.verifyZeroInteractions(mockStop);
+    Mockito.verifyNoMoreInteractions(mockStop);
   }
 
   @SuppressWarnings({ "unchecked", "deprecation" })
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
index af204ed67c..e169ce13ab 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/hbase/index/write/TestParalleWriterIndexCommitter.java
@@ -77,7 +77,7 @@ public class TestParalleWriterIndexCommitter {
     writer.stop(this.test.getTableNameString() + " finished");
     assertTrue("Factory didn't get shutdown after writer#stop!", 
factory.shutdown);
     assertTrue("ExectorService isn't terminated after writer#stop!", 
exec.isShutdown());
-    Mockito.verifyZeroInteractions(mockStop);
+    Mockito.verifyNoMoreInteractions(mockStop);
   }
 
   @SuppressWarnings({ "unchecked"})
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/index/ShouldVerifyTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/index/ShouldVerifyTest.java
index a5e2a5c949..903503f7ef 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/index/ShouldVerifyTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/index/ShouldVerifyTest.java
@@ -28,14 +28,14 @@ import 
org.apache.phoenix.mapreduce.index.IndexVerificationResultRepository;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.Matchers;
+import org.mockito.ArgumentMatchers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
 import java.io.IOException;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.Mockito.when;
 
 public class ShouldVerifyTest {
@@ -53,7 +53,7 @@ public class ShouldVerifyTest {
         MockitoAnnotations.initMocks(this);
         indexRowKey = null;
         when(im.getIndexTableName()).thenReturn(Bytes.toBytes("indexName"));
-        when(scanner.shouldVerify(any(IndexTool.IndexVerifyType.class), 
Matchers.<byte[]>any(), any(Scan.class),
+        when(scanner.shouldVerify(any(IndexTool.IndexVerifyType.class), 
ArgumentMatchers.<byte[]>any(), any(Scan.class),
                 any(Region.class), any(IndexMaintainer.class),
                 any(IndexVerificationResultRepository.class), 
anyBoolean())).thenCallRealMethod();
         when(scanner.shouldVerify()).thenCallRealMethod();
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/index/VerifySingleIndexRowTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/index/VerifySingleIndexRowTest.java
index e42055ae93..2cdfc1a8f8 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/index/VerifySingleIndexRowTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/index/VerifySingleIndexRowTest.java
@@ -46,7 +46,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.mockito.Matchers;
+import org.mockito.ArgumentMatchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
@@ -63,7 +63,7 @@ import static 
org.apache.phoenix.query.QueryConstants.UNVERIFIED_BYTES;
 import static org.apache.phoenix.query.QueryConstants.VERIFIED_BYTES;
 import static org.apache.phoenix.query.QueryConstants.EMPTY_COLUMN_BYTES;
 import static org.junit.Assert.*;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.when;
 
@@ -272,9 +272,9 @@ public class VerifySingleIndexRowTest extends 
BaseConnectionlessQueryTest {
     }
 
     private void initializeRebuildScannerAttributes() throws SQLException {
-        
when(rebuildScanner.setIndexTableTTL(Matchers.anyInt())).thenCallRealMethod();
-        
when(rebuildScanner.setIndexMaintainer(Matchers.<IndexMaintainer>any())).thenCallRealMethod();
-        
when(rebuildScanner.setMaxLookBackInMills(Matchers.anyLong())).thenCallRealMethod();
+        
when(rebuildScanner.setIndexTableTTL(ArgumentMatchers.anyInt())).thenCallRealMethod();
+        
when(rebuildScanner.setIndexMaintainer(ArgumentMatchers.<IndexMaintainer>any())).thenCallRealMethod();
+        
when(rebuildScanner.setMaxLookBackInMills(ArgumentMatchers.anyLong())).thenCallRealMethod();
         rebuildScanner.setIndexTableTTL(HConstants.FOREVER);
         indexMaintainer = pIndexTable.getIndexMaintainer(pDataTable, pconn);
         rebuildScanner.setIndexMaintainer(indexMaintainer);
@@ -286,17 +286,17 @@ public class VerifySingleIndexRowTest extends 
BaseConnectionlessQueryTest {
         //setup
         when(indexMaintainer.getIndexRowKey(put)).thenCallRealMethod();
         when(rebuildScanner.prepareIndexMutations(put, delete, 
indexKeyToMutationMap, mostRecentIndexRowKeys)).thenCallRealMethod();
-        when(rebuildScanner.verifySingleIndexRow(Matchers.<byte[]>any(), 
Matchers.<List>any(),Matchers.<List>any(), Matchers.<Set>any(), 
Matchers.<List>any(),
-                Matchers.<IndexToolVerificationResult.PhaseResult>any(), 
Matchers.anyBoolean())).thenCallRealMethod();
+        
when(rebuildScanner.verifySingleIndexRow(ArgumentMatchers.<byte[]>any(), 
ArgumentMatchers.<List>any(),ArgumentMatchers.<List>any(), 
ArgumentMatchers.<Set>any(), ArgumentMatchers.<List>any(),
+                
ArgumentMatchers.<IndexToolVerificationResult.PhaseResult>any(), 
ArgumentMatchers.anyBoolean())).thenCallRealMethod();
         doNothing().when(rebuildScanner)
-                
.logToIndexToolOutputTable(Matchers.<byte[]>any(),Matchers.<byte[]>any(),
+                
.logToIndexToolOutputTable(ArgumentMatchers.<byte[]>any(),ArgumentMatchers.<byte[]>any(),
                         Mockito.anyLong(),Mockito.anyLong(), 
Mockito.anyString(),
-                        Matchers.<byte[]>any(), Matchers.<byte[]>any(), 
Matchers.anyBoolean(),
+                        ArgumentMatchers.<byte[]>any(), 
ArgumentMatchers.<byte[]>any(), ArgumentMatchers.anyBoolean(),
                     
Mockito.<IndexVerificationOutputRepository.IndexVerificationErrorType>any());
         doNothing().when(rebuildScanner)
-                
.logToIndexToolOutputTable(Matchers.<byte[]>any(),Matchers.<byte[]>any(),
+                
.logToIndexToolOutputTable(ArgumentMatchers.<byte[]>any(),ArgumentMatchers.<byte[]>any(),
                         Mockito.anyLong(),Mockito.anyLong(), 
Mockito.anyString(),
-                    Matchers.anyBoolean(),
+                    ArgumentMatchers.anyBoolean(),
                     
Mockito.<IndexVerificationOutputRepository.IndexVerificationErrorType>any());
 
         //populate the local map to use to create actual mutations
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ClusterRoleRecordGeneratorToolTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ClusterRoleRecordGeneratorToolTest.java
index 8680bad2a1..f05467cb4f 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ClusterRoleRecordGeneratorToolTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ClusterRoleRecordGeneratorToolTest.java
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/FailoverPhoenixConnectionTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/FailoverPhoenixConnectionTest.java
index 7609cfd4a7..8ee3d028bd 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/FailoverPhoenixConnectionTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/FailoverPhoenixConnectionTest.java
@@ -23,7 +23,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixResultSetTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixResultSetTest.java
index e353e3dbf3..3e9a7e0f25 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixResultSetTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixResultSetTest.java
@@ -35,7 +35,7 @@ import java.util.concurrent.TimeUnit;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doAnswer;
 
 public class ParallelPhoenixResultSetTest {
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixUtilTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixUtilTest.java
index 0432e1ab7c..29d672a4e2 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixUtilTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/ParallelPhoenixUtilTest.java
@@ -37,7 +37,7 @@ import java.util.concurrent.TimeUnit;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doAnswer;
 
 public class ParallelPhoenixUtilTest {
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixHAAdminToolTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixHAAdminToolTest.java
index feb732759f..9b46355171 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixHAAdminToolTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixHAAdminToolTest.java
@@ -23,8 +23,9 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.contains;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.contains;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
@@ -34,6 +35,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.List;
+import java.util.Properties;
 
 import org.apache.phoenix.thirdparty.org.apache.commons.cli.Option;
 import org.apache.commons.lang3.RandomStringUtils;
@@ -83,7 +85,7 @@ public class PhoenixHAAdminToolTest {
 
     @Before
     public void setup() throws Exception {
-        
when(mockHighAvailibilityCuratorProvider.getCurator(Mockito.anyString(),Mockito.anyObject())).thenReturn(curator);
+        
when(mockHighAvailibilityCuratorProvider.getCurator(Mockito.anyString(), 
any(Properties.class))).thenReturn(curator);
         haGroupName = testName.getMethodName();
         recordV1 = new ClusterRoleRecord(
                 haGroupName, HighAvailabilityPolicy.FAILOVER,
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixStatementTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixStatementTest.java
index 882221354c..026c46b9e9 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixStatementTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/jdbc/PhoenixStatementTest.java
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import java.lang.reflect.Field;
 import java.sql.*;
 import java.util.List;
 import java.util.Properties;
@@ -39,10 +40,23 @@ import org.apache.phoenix.query.QueryServices;
 import org.apache.phoenix.query.QueryServicesOptions;
 import org.apache.phoenix.thirdparty.com.google.common.collect.Lists;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 public class PhoenixStatementTest extends BaseConnectionlessQueryTest {
 
+    private static Field connectionField;
+    private static Field batchField;
+
+    static {
+        try {
+            connectionField = 
PhoenixStatement.class.getDeclaredField("connection");
+            connectionField.setAccessible(true);
+            batchField = PhoenixStatement.class.getDeclaredField("batch");
+            batchField.setAccessible(true);
+        } catch (NoSuchFieldException | SecurityException e) {
+            //Test would fail
+        }
+    }
+
     @Test
     public void testMutationUsingExecuteQueryShouldFail() throws Exception {
         Properties connectionProperties = new Properties();
@@ -169,12 +183,12 @@ public class PhoenixStatementTest extends 
BaseConnectionlessQueryTest {
         Connection connection = DriverManager.getConnection(getUrl(), 
connectionProperties);
         Statement stmt = connection.createStatement();
         PhoenixConnection connSpy = 
spy(connection.unwrap(PhoenixConnection.class));
-        Whitebox.setInternalState(stmt, "connection", connSpy);
+        connectionField.set(stmt, connSpy);
         List<PhoenixPreparedStatement> batch = Lists.newArrayList(
                 mock(PhoenixPreparedStatement.class),
                 mock(PhoenixPreparedStatement.class),
                 mock(PhoenixPreparedStatement.class));
-        Whitebox.setInternalState(stmt, "batch", batch);
+        batchField.set(stmt, batch);
         final String exMsg = "TEST";
         when(batch.get(0).getUpdateCount()).thenReturn(1);
         doThrow(new SQLException(exMsg)).when(batch.get(1)).executeForBatch();
@@ -200,10 +214,10 @@ public class PhoenixStatementTest extends 
BaseConnectionlessQueryTest {
         Connection connection = DriverManager.getConnection(getUrl(), 
connectionProperties);
         Statement stmt = connection.createStatement();
         PhoenixConnection connSpy = 
spy(connection.unwrap(PhoenixConnection.class));
-        Whitebox.setInternalState(stmt, "connection", connSpy);
+        connectionField.set(stmt, connSpy);
         List<PhoenixPreparedStatement> batch = Lists.newArrayList(
                 mock(PhoenixPreparedStatement.class));
-        Whitebox.setInternalState(stmt, "batch", batch);
+        batchField.set(stmt, batch);
         final String exMsg = "TEST";
         doThrow(new SQLException(exMsg)).when(connSpy).commit();
         when(connSpy.getAutoCommit()).thenReturn(true);
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/monitoring/MetricUtilTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/monitoring/MetricUtilTest.java
index 3e44ecfceb..28e85dfa90 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/monitoring/MetricUtilTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/monitoring/MetricUtilTest.java
@@ -22,7 +22,7 @@ import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
 import org.apache.phoenix.log.LogLevel;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import static org.apache.phoenix.monitoring.MetricType.RESULT_SET_TIME_MS;
 import static org.apache.phoenix.monitoring.MetricType.WALL_CLOCK_TIME_MS;
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/query/ConnectionQueryServicesImplTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/query/ConnectionQueryServicesImplTest.java
index 7726fe7026..d8f1e9eb28 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/query/ConnectionQueryServicesImplTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/query/ConnectionQueryServicesImplTest.java
@@ -26,8 +26,9 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.doCallRealMethod;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doThrow;
@@ -150,7 +151,7 @@ public class ConnectionQueryServicesImplTest {
 
         // Should be called after upgradeSystemTables()
         // Proves that execution proceeded
-        
verify(mockCqs).getSystemTableNamesInDefaultNamespace(any(Admin.class));
+        verify(mockCqs).getSystemTableNamesInDefaultNamespace(any());
 
         try {
             // Verifies that the exception is propagated back to the caller
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/schema/stats/StatisticsScannerTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/schema/stats/StatisticsScannerTest.java
index 7ccaa8e70a..fa1523749d 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/schema/stats/StatisticsScannerTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/schema/stats/StatisticsScannerTest.java
@@ -16,7 +16,7 @@
  */
 package org.apache.phoenix.schema.stats;
 
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doCallRealMethod;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
@@ -79,7 +79,7 @@ public class StatisticsScannerTest {
         // Wire up the mocks to the mock StatisticsScanner
         when(mockScanner.getStatisticsWriter()).thenReturn(statsWriter);
         when(mockScanner.createCallable()).thenReturn(callable);
-        
when(mockScanner.getStatsCollectionRunTracker(any(Configuration.class))).thenReturn(runTracker);
+        
when(mockScanner.getStatsCollectionRunTracker(any())).thenReturn(runTracker);
         when(mockScanner.getRegion()).thenReturn(region);
         when(mockScanner.getConfig()).thenReturn(config);
         when(mockScanner.getTracker()).thenReturn(tracker);
@@ -123,8 +123,8 @@ public class StatisticsScannerTest {
     @Test
     public void testCheckRegionServerStoppingOnException() throws Exception {
         StatisticsScannerCallable realCallable = mockScanner.new 
StatisticsScannerCallable();
-        doThrow(new 
IOException()).when(statsWriter).deleteStatsForRegion(any(Region.class), 
any(StatisticsCollector.class),
-                any(ImmutableBytesPtr.class), any(List.class));
+        doThrow(new 
IOException()).when(statsWriter).deleteStatsForRegion(any(), any(),
+                any(), any());
         when(conn.isClosed()).thenReturn(true);
         when(conn.isAborted()).thenReturn(false);
 
@@ -138,8 +138,8 @@ public class StatisticsScannerTest {
     @Test
     public void testCheckRegionServerStoppedOnException() throws Exception {
         StatisticsScannerCallable realCallable = mockScanner.new 
StatisticsScannerCallable();
-        doThrow(new 
IOException()).when(statsWriter).deleteStatsForRegion(any(Region.class), 
any(StatisticsCollector.class),
-                any(ImmutableBytesPtr.class), any(List.class));
+        doThrow(new 
IOException()).when(statsWriter).deleteStatsForRegion(any(), any(),
+                any(), any());
         when(conn.isClosed()).thenReturn(false);
         when(conn.isAborted()).thenReturn(true);
 
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/util/AbstractUpsertExecutorTest.java
 
b/phoenix-core/src/test/java/org/apache/phoenix/util/AbstractUpsertExecutorTest.java
index 217e479aa0..24ee5c90c4 100644
--- 
a/phoenix-core/src/test/java/org/apache/phoenix/util/AbstractUpsertExecutorTest.java
+++ 
b/phoenix-core/src/test/java/org/apache/phoenix/util/AbstractUpsertExecutorTest.java
@@ -17,8 +17,8 @@
  */
 package org.apache.phoenix.util;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
diff --git 
a/phoenix-core/src/test/java/org/apache/phoenix/util/LogUtilTest.java 
b/phoenix-core/src/test/java/org/apache/phoenix/util/LogUtilTest.java
index b8cd802feb..ee913d1aa0 100644
--- a/phoenix-core/src/test/java/org/apache/phoenix/util/LogUtilTest.java
+++ b/phoenix-core/src/test/java/org/apache/phoenix/util/LogUtilTest.java
@@ -25,7 +25,7 @@ import org.apache.phoenix.jdbc.PhoenixConnection;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import org.apache.phoenix.thirdparty.com.google.common.collect.ImmutableMap;
 
diff --git a/phoenix-pherf/pom.xml b/phoenix-pherf/pom.xml
index 2b3a22b6f6..06c5f0b8d7 100644
--- a/phoenix-pherf/pom.xml
+++ b/phoenix-pherf/pom.xml
@@ -220,11 +220,6 @@
       <artifactId>system-rules</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-core</artifactId>
-      <scope>test</scope>
-    </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
diff --git 
a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ResourceTest.java 
b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ResourceTest.java
index 59200255a7..5f5a53bab6 100644
--- a/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ResourceTest.java
+++ b/phoenix-pherf/src/test/java/org/apache/phoenix/pherf/ResourceTest.java
@@ -18,20 +18,14 @@
 
 package org.apache.phoenix.pherf;
 
-import org.apache.phoenix.pherf.util.ResourceList;
-import org.apache.phoenix.pherf.PherfConstants;
-import org.junit.Test;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 import java.nio.file.Path;
 import java.util.Collection;
-import java.util.Properties;
 
-import static org.hamcrest.CoreMatchers.hasItem;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.hasItem;
-import static org.junit.Assert.assertTrue;
+import org.apache.phoenix.pherf.util.ResourceList;
+import org.junit.Test;
 
 public class ResourceTest {
     @Test
@@ -60,7 +54,7 @@ public class ResourceTest {
                 list.getResourceList(pattern);
         assertTrue("Resource file list was empty", paths.size() > 0);
         for (Path path : paths) {
-            assertThat(path.toString(), containsString(assertStr));
+            assertTrue(path.toString().contains(assertStr));
         }
         return paths;
     }
diff --git a/pom.xml b/pom.xml
index 10e2bba01d..38858826d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -135,9 +135,8 @@
     <jetty.version>9.4.53.v20231009</jetty.version>
     <javax.servlet-api.version>3.1.0</javax.servlet-api.version>
     <!-- Test Dependencies -->
-    <mockito.version>1.10.19</mockito.version>
+    <mockito.version>4.11.0</mockito.version>
     <junit.version>4.13.1</junit.version>
-    <hamcrest.version>1.3</hamcrest.version>
     <hdrhistogram.version>2.1.12</hdrhistogram.version>
 
     <!-- Plugin versions -->
@@ -1699,15 +1698,10 @@
       </dependency>
       <dependency>
         <groupId>org.mockito</groupId>
-        <artifactId>mockito-core</artifactId>
+        <artifactId>mockito-bom</artifactId>
         <version>${mockito.version}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.hamcrest</groupId>
-        <artifactId>hamcrest-core</artifactId>
-        <version>${hamcrest.version}</version>
-        <scope>test</scope>
+        <type>pom</type>
+        <scope>import</scope>
       </dependency>
 
        <!-- Runtime dependencies -->

Reply via email to