STORM-2698: Upgrade Mockito and Hamcrest to latest versions

Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/3503dcea
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/3503dcea
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/3503dcea

Branch: refs/heads/master
Commit: 3503dcea62c9bb9d004388773705ad362e7cc5dd
Parents: 70d8ba9
Author: Stig Rohde Døssing <s...@apache.org>
Authored: Sun Oct 8 01:19:26 2017 +0200
Committer: Stig Rohde Døssing <s...@apache.org>
Committed: Mon Oct 9 07:21:21 2017 +0200

----------------------------------------------------------------------
 examples/storm-starter/pom.xml                  |   9 +-
 external/storm-cassandra/pom.xml                |   8 +-
 external/storm-elasticsearch/pom.xml            |  13 +-
 .../elasticsearch/bolt/EsLookupBoltTest.java    |   1 -
 .../elasticsearch/bolt/EsPercolateBoltTest.java |  13 +-
 external/storm-hbase/pom.xml                    |   7 +-
 external/storm-hdfs/pom.xml                     |   7 +-
 external/storm-hive/pom.xml                     |  10 +-
 external/storm-kafka-client/pom.xml             |   9 +-
 .../apache/storm/kafka/bolt/KafkaBoltTest.java  |   9 +-
 .../storm/kafka/spout/KafkaSpoutCommitTest.java |  10 +-
 external/storm-kafka/pom.xml                    |   8 +-
 .../org/apache/storm/kafka/bolt/KafkaBolt.java  |   2 +-
 .../apache/storm/kafka/bolt/KafkaBoltTest.java  |  15 +-
 external/storm-mongodb/pom.xml                  |   7 +-
 external/storm-opentsdb/pom.xml                 |   7 +-
 external/storm-redis/pom.xml                    |   7 +-
 pom.xml                                         |  18 +-
 sql/storm-sql-core/pom.xml                      |   7 +-
 sql/storm-sql-external/storm-sql-hdfs/pom.xml   |   7 +-
 .../sql/hdfs/TestHdfsDataSourcesProvider.java   | 140 +++++++-------
 sql/storm-sql-external/storm-sql-kafka/pom.xml  |   7 +-
 .../sql/kafka/TestKafkaDataSourcesProvider.java | 136 +++++++-------
 .../storm-sql-mongodb/pom.xml                   |   7 +-
 .../mongodb/TestMongoDataSourcesProvider.java   | 121 ++++++------
 sql/storm-sql-external/storm-sql-redis/pom.xml  |   7 +-
 .../sql/redis/TestRedisDataSourcesProvider.java | 188 ++++++++++---------
 sql/storm-sql-runtime/pom.xml                   |   7 +-
 storm-client/pom.xml                            |   8 +-
 .../storm/grouping/PartialKeyGroupingTest.java  |   2 +-
 .../PersistentWindowedBoltExecutorTest.java     |  29 ++-
 .../topology/StatefulBoltExecutorTest.java      |  39 ++--
 .../windowing/persistence/WindowStateTest.java  |  10 -
 storm-core/pom.xml                              |   8 +-
 .../test/clj/org/apache/storm/cluster_test.clj  |   2 +-
 .../test/clj/org/apache/storm/drpc_test.clj     |  14 +-
 storm-server/pom.xml                            |   6 +-
 .../storm/daemon/supervisor/BasicContainer.java |   2 +-
 .../storm/localizer/AsyncLocalizerTest.java     |  13 +-
 storm-webapp/pom.xml                            |  11 +-
 .../handler/LogviewerLogSearchHandlerTest.java  |  27 +--
 .../daemon/logviewer/utils/LogCleanerTest.java  |  20 +-
 42 files changed, 510 insertions(+), 468 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/examples/storm-starter/pom.xml
----------------------------------------------------------------------
diff --git a/examples/storm-starter/pom.xml b/examples/storm-starter/pom.xml
index e95958d..d12062d 100644
--- a/examples/storm-starter/pom.xml
+++ b/examples/storm-starter/pom.xml
@@ -51,9 +51,12 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <scope>test</scope>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>java-hamcrest</artifactId>
     </dependency>
     <dependency>
       <groupId>org.easytesting</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-cassandra/pom.xml b/external/storm-cassandra/pom.xml
index 9a7d683..d98824c 100644
--- a/external/storm-cassandra/pom.xml
+++ b/external/storm-cassandra/pom.xml
@@ -117,9 +117,11 @@
 
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.10.19</version>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
 
     </dependencies>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-elasticsearch/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-elasticsearch/pom.xml 
b/external/storm-elasticsearch/pom.xml
index 72d2639..c6371a4 100644
--- a/external/storm-elasticsearch/pom.xml
+++ b/external/storm-elasticsearch/pom.xml
@@ -86,12 +86,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-all</artifactId>
-            <version>1.3</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava-testlib</artifactId>
             <version>${guava.version}</version>
@@ -99,8 +93,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>org.elasticsearch</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsLookupBoltTest.java
----------------------------------------------------------------------
diff --git 
a/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsLookupBoltTest.java
 
b/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsLookupBoltTest.java
index c68a4da..786bab1 100644
--- 
a/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsLookupBoltTest.java
+++ 
b/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsLookupBoltTest.java
@@ -92,7 +92,6 @@ public class EsLookupBoltTest extends 
AbstractEsBoltTest<EsLookupBolt> {
         when(tupleMapper.getIndex(tuple)).thenReturn(index);
         when(tupleMapper.getType(tuple)).thenReturn(type);
         when(tupleMapper.getId(tuple)).thenReturn(documentId);
-        
when(output.toValues(any(Response.class))).thenReturn(Collections.singleton(new 
Values("")));
     }
 
     private void makeRequestAndThrow(Exception exception) throws IOException {

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsPercolateBoltTest.java
----------------------------------------------------------------------
diff --git 
a/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsPercolateBoltTest.java
 
b/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsPercolateBoltTest.java
index f994f8f..135089e 100644
--- 
a/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsPercolateBoltTest.java
+++ 
b/external/storm-elasticsearch/src/test/java/org/apache/storm/elasticsearch/bolt/EsPercolateBoltTest.java
@@ -17,20 +17,24 @@
  */
 package org.apache.storm.elasticsearch.bolt;
 
-import static org.mockito.Matchers.any;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 
 import org.apache.storm.elasticsearch.common.EsConfig;
 import org.apache.storm.elasticsearch.common.EsTestUtil;
+import org.apache.storm.elasticsearch.response.PercolateResponse;
 import org.apache.storm.testing.IntegrationTest;
 import org.apache.storm.tuple.Tuple;
 import org.apache.storm.tuple.Values;
-import org.elasticsearch.action.percolate.PercolateResponse;
 import org.elasticsearch.client.ResponseException;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
+import org.mockito.ArgumentCaptor;
 
 @Category(IntegrationTest.class)
 public class EsPercolateBoltTest extends 
AbstractEsBoltIntegrationTest<EsPercolateBolt> {
@@ -57,7 +61,10 @@ public class EsPercolateBoltTest extends 
AbstractEsBoltIntegrationTest<EsPercola
         bolt.execute(tuple);
 
         verify(outputCollector).ack(tuple);
-        verify(outputCollector).emit(new Values(source, 
any(PercolateResponse.Match.class)));
+        ArgumentCaptor<Values> emitCaptor = 
ArgumentCaptor.forClass(Values.class);
+        verify(outputCollector).emit(emitCaptor.capture());
+        assertThat(emitCaptor.getValue().get(0), is(source));
+        assertThat(emitCaptor.getValue().get(1), 
instanceOf(PercolateResponse.Match.class));
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-hbase/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-hbase/pom.xml b/external/storm-hbase/pom.xml
index b4f558a..2c97498 100644
--- a/external/storm-hbase/pom.xml
+++ b/external/storm-hbase/pom.xml
@@ -109,8 +109,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
     <build>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-hdfs/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-hdfs/pom.xml b/external/storm-hdfs/pom.xml
index 23b8ed7..03488a7 100644
--- a/external/storm-hdfs/pom.xml
+++ b/external/storm-hdfs/pom.xml
@@ -180,8 +180,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.hadoop</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-hive/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-hive/pom.xml b/external/storm-hive/pom.xml
index 24ca2cc..62979f0 100644
--- a/external/storm-hive/pom.xml
+++ b/external/storm-hive/pom.xml
@@ -135,10 +135,12 @@
       </exclusions>
     </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <version>1.9.0</version>
-      <scope>test</scope>
+        <groupId>org.mockito</groupId>
+        <artifactId>mockito-core</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.hamcrest</groupId>
+        <artifactId>java-hamcrest</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.thrift</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-kafka-client/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-kafka-client/pom.xml 
b/external/storm-kafka-client/pom.xml
index c3bd457..816f5dd 100644
--- a/external/storm-kafka-client/pom.xml
+++ b/external/storm-kafka-client/pom.xml
@@ -79,17 +79,10 @@
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-core</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-library</artifactId>
-            <scope>test</scope>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/bolt/KafkaBoltTest.java
----------------------------------------------------------------------
diff --git 
a/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/bolt/KafkaBoltTest.java
 
b/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/bolt/KafkaBoltTest.java
index 0e3d028..d84d803 100644
--- 
a/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/bolt/KafkaBoltTest.java
+++ 
b/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/bolt/KafkaBoltTest.java
@@ -17,8 +17,8 @@
  */
 package org.apache.storm.kafka.bolt;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.argThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -75,9 +75,8 @@ public class KafkaBoltTest {
         bolt.execute(testTuple);
         verify(producer).send(argThat(new 
ArgumentMatcher<ProducerRecord<String, String>>() {
             @Override
-            public boolean matches(Object argument) {
-                LOG.info("GOT {} ->", argument);
-                ProducerRecord<String, String> arg = (ProducerRecord<String, 
String>) argument;
+            public boolean matches(ProducerRecord<String, String> arg) {
+                LOG.info("GOT {} ->", arg);
                 LOG.info("  {} {} {}", arg.topic(), arg.key(), arg.value());
                 return "MY_TOPIC".equals(arg.topic()) &&
                         "KEY".equals(arg.key()) &&

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/spout/KafkaSpoutCommitTest.java
----------------------------------------------------------------------
diff --git 
a/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/spout/KafkaSpoutCommitTest.java
 
b/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/spout/KafkaSpoutCommitTest.java
index 99a7542..a356cb5 100644
--- 
a/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/spout/KafkaSpoutCommitTest.java
+++ 
b/external/storm-kafka-client/src/test/java/org/apache/storm/kafka/spout/KafkaSpoutCommitTest.java
@@ -17,8 +17,6 @@ package org.apache.storm.kafka.spout;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.*;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -42,7 +40,13 @@ import org.mockito.MockitoAnnotations;
 
 import static 
org.apache.storm.kafka.spout.config.builder.SingleTopicKafkaSpoutConfiguration.createKafkaSpoutConfigBuilder;
 
-import org.mockito.stubbing.OngoingStubbing;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.anyObject;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class KafkaSpoutCommitTest {
 

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-kafka/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-kafka/pom.xml b/external/storm-kafka/pom.xml
index 14fd609..aa0454b 100644
--- a/external/storm-kafka/pom.xml
+++ b/external/storm-kafka/pom.xml
@@ -72,9 +72,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.9.0</version>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.curator</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-kafka/src/jvm/org/apache/storm/kafka/bolt/KafkaBolt.java
----------------------------------------------------------------------
diff --git 
a/external/storm-kafka/src/jvm/org/apache/storm/kafka/bolt/KafkaBolt.java 
b/external/storm-kafka/src/jvm/org/apache/storm/kafka/bolt/KafkaBolt.java
index 5cb6129..a4c255a 100644
--- a/external/storm-kafka/src/jvm/org/apache/storm/kafka/bolt/KafkaBolt.java
+++ b/external/storm-kafka/src/jvm/org/apache/storm/kafka/bolt/KafkaBolt.java
@@ -76,7 +76,7 @@ public class KafkaBolt<K, V> extends 
BaseTickTupleAwareRichBolt {
     private boolean async = true;
 
     public KafkaBolt() {}
-
+    
     public KafkaBolt<K,V> withTupleToKafkaMapper(TupleToKafkaMapper<K,V> 
mapper) {
         this.mapper = mapper;
         return this;

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-kafka/src/test/org/apache/storm/kafka/bolt/KafkaBoltTest.java
----------------------------------------------------------------------
diff --git 
a/external/storm-kafka/src/test/org/apache/storm/kafka/bolt/KafkaBoltTest.java 
b/external/storm-kafka/src/test/org/apache/storm/kafka/bolt/KafkaBoltTest.java
index cebc261..5f3753d 100644
--- 
a/external/storm-kafka/src/test/org/apache/storm/kafka/bolt/KafkaBoltTest.java
+++ 
b/external/storm-kafka/src/test/org/apache/storm/kafka/bolt/KafkaBoltTest.java
@@ -44,7 +44,6 @@ import org.apache.kafka.clients.producer.ProducerRecord;
 import org.junit.*;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 import org.apache.storm.kafka.*;
@@ -60,6 +59,8 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.*;
 
+import java.lang.reflect.Field;
+
 public class KafkaBoltTest {
 
     private static final String TEST_TOPIC = "test-topic";
@@ -120,7 +121,7 @@ public class KafkaBoltTest {
 
     /* test synchronous sending */
     @Test
-    public void executeWithByteArrayKeyAndMessageSync() {
+    public void executeWithByteArrayKeyAndMessageSync() throws Exception {
         boolean async = false;
         boolean fireAndForget = false;
         bolt = generateDefaultSerializerBolt(async, fireAndForget, null);
@@ -136,7 +137,7 @@ public class KafkaBoltTest {
 
     /* test asynchronous sending (default) */
     @Test
-    public void executeWithByteArrayKeyAndMessageAsync() {
+    public void executeWithByteArrayKeyAndMessageAsync() throws Exception {
         boolean async = true;
         boolean fireAndForget = false;
         String keyString = "test-key";
@@ -165,7 +166,7 @@ public class KafkaBoltTest {
 
     /* test with fireAndForget option enabled */
     @Test
-    public void executeWithByteArrayKeyAndMessageFire() {
+    public void executeWithByteArrayKeyAndMessageFire() throws Exception {
         boolean async = true;
         boolean fireAndForget = true;
         bolt = generateDefaultSerializerBolt(async, fireAndForget, null);
@@ -216,7 +217,7 @@ public class KafkaBoltTest {
     }
 
     private KafkaBolt generateDefaultSerializerBolt(boolean async, boolean 
fireAndForget,
-                                                    KafkaProducer<?, ?> 
mockProducer) {
+                                                    KafkaProducer<?, ?> 
mockProducer) throws Exception {
         Properties props = new Properties();
         props.put("acks", "1");
         props.put("bootstrap.servers", broker.getBrokerConnectionString());
@@ -229,7 +230,9 @@ public class KafkaBoltTest {
         bolt.setAsync(async);
         bolt.setFireAndForget(fireAndForget);
         if (mockProducer != null) {
-            Whitebox.setInternalState(bolt, "producer", mockProducer);
+            Field producerField = bolt.getClass().getDeclaredField("producer");
+            producerField.setAccessible(true);
+            producerField.set(bolt, mockProducer);
         }
         return bolt;
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-mongodb/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-mongodb/pom.xml b/external/storm-mongodb/pom.xml
index 886d213..b374957 100644
--- a/external/storm-mongodb/pom.xml
+++ b/external/storm-mongodb/pom.xml
@@ -63,8 +63,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
 

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-opentsdb/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-opentsdb/pom.xml b/external/storm-opentsdb/pom.xml
index f99c6dc..0f9e0c8 100644
--- a/external/storm-opentsdb/pom.xml
+++ b/external/storm-opentsdb/pom.xml
@@ -90,8 +90,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
 

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/external/storm-redis/pom.xml
----------------------------------------------------------------------
diff --git a/external/storm-redis/pom.xml b/external/storm-redis/pom.xml
index 1023efd..9abf9ab 100644
--- a/external/storm-redis/pom.xml
+++ b/external/storm-redis/pom.xml
@@ -79,8 +79,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
 

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index bf6bf1c..85d575f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -270,7 +270,7 @@
         <metrics.version>3.1.0</metrics.version>
         <clojure.tools.nrepl.version>0.2.3</clojure.tools.nrepl.version>
         <clojure-complete.version>0.2.3</clojure-complete.version>
-        <mockito.version>1.9.5</mockito.version>
+        <mockito.version>2.10.0</mockito.version>
         <conjure.version>2.1.3</conjure.version>
         <zookeeper.version>3.4.6</zookeeper.version>
         <clojure-data-codec.version>0.1.0</clojure-data-codec.version>
@@ -286,7 +286,7 @@
         <junit.version>4.11</junit.version>
         <metrics-clojure.version>2.5.1</metrics-clojure.version>
         <hdrhistogram.version>2.1.7</hdrhistogram.version>
-        <hamcrest.version>1.3</hamcrest.version>
+        <hamcrest.version>2.0.0.0</hamcrest.version>
         <cassandra.version>2.1.7</cassandra.version>
         <druid.version>0.8.2</druid.version>
         <elasticsearch.version>5.2.2</elasticsearch.version>
@@ -990,23 +990,11 @@
             </dependency>
             <dependency>
                 <groupId>org.hamcrest</groupId>
-                <artifactId>hamcrest-core</artifactId>
+                <artifactId>java-hamcrest</artifactId>
                 <version>${hamcrest.version}</version>
                 <scope>test</scope>
             </dependency>
             <dependency>
-                <groupId>org.hamcrest</groupId>
-                <artifactId>hamcrest-library</artifactId>
-                <version>${hamcrest.version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.mockito</groupId>
-                <artifactId>mockito-all</artifactId>
-                <version>${mockito.version}</version>
-                <scope>test</scope>
-            </dependency>
-            <dependency>
                 <groupId>org.clojars.runa</groupId>
                 <artifactId>conjure</artifactId>
                 <version>${conjure.version}</version>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-core/pom.xml
----------------------------------------------------------------------
diff --git a/sql/storm-sql-core/pom.xml b/sql/storm-sql-core/pom.xml
index 8b3035c..1723a5f 100644
--- a/sql/storm-sql-core/pom.xml
+++ b/sql/storm-sql-core/pom.xml
@@ -93,8 +93,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-hdfs/pom.xml
----------------------------------------------------------------------
diff --git a/sql/storm-sql-external/storm-sql-hdfs/pom.xml 
b/sql/storm-sql-external/storm-sql-hdfs/pom.xml
index 1574ed2..4259951 100644
--- a/sql/storm-sql-external/storm-sql-hdfs/pom.xml
+++ b/sql/storm-sql-external/storm-sql-hdfs/pom.xml
@@ -88,8 +88,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
     <build>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-hdfs/src/test/org/apache/storm/sql/hdfs/TestHdfsDataSourcesProvider.java
----------------------------------------------------------------------
diff --git 
a/sql/storm-sql-external/storm-sql-hdfs/src/test/org/apache/storm/sql/hdfs/TestHdfsDataSourcesProvider.java
 
b/sql/storm-sql-external/storm-sql-hdfs/src/test/org/apache/storm/sql/hdfs/TestHdfsDataSourcesProvider.java
index 1473438..32e35d5 100644
--- 
a/sql/storm-sql-external/storm-sql-hdfs/src/test/org/apache/storm/sql/hdfs/TestHdfsDataSourcesProvider.java
+++ 
b/sql/storm-sql-external/storm-sql-hdfs/src/test/org/apache/storm/sql/hdfs/TestHdfsDataSourcesProvider.java
@@ -34,7 +34,6 @@ import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 import java.io.File;
 import java.io.IOException;
@@ -49,81 +48,86 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
+import java.lang.reflect.Field;
+
 public class TestHdfsDataSourcesProvider {
-  private static final List<FieldInfo> FIELDS = ImmutableList.of(
-      new FieldInfo("ID", int.class, true),
-      new FieldInfo("val", String.class, false));
-  private static final Properties TBL_PROPERTIES = new Properties();
-
-  private static String hdfsURI;
-  private static MiniDFSCluster hdfsCluster;
-
-  static {
-    TBL_PROPERTIES.put("hdfs.file.path", "/unittest");
-    TBL_PROPERTIES.put("hdfs.file.name", "test1.txt");
-    TBL_PROPERTIES.put("hdfs.rotation.time.seconds", "120");
-  }
-
-  @Before
-  public void setup() throws Exception {
-    Configuration conf = new Configuration();
-    conf.set("fs.trash.interval", "10");
-    conf.setBoolean("dfs.permissions", true);
-    File baseDir = new File("./target/hdfs/").getAbsoluteFile();
-    FileUtil.fullyDelete(baseDir);
-    conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, baseDir.getAbsolutePath());
-
-    MiniDFSCluster.Builder builder = new MiniDFSCluster.Builder(conf);
-    hdfsCluster = builder.build();
-    hdfsURI = "hdfs://localhost:" + hdfsCluster.getNameNodePort() + "/";
-  }
-
-  @After
-  public void shutDown() throws IOException {
-    hdfsCluster.shutdown();
-  }
-
-  @SuppressWarnings("unchecked")
-  @Test
-  public void testHdfsSink() {
-    ISqlTridentDataSource ds = DataSourcesRegistry.constructTridentDataSource(
+
+    private static final List<FieldInfo> FIELDS = ImmutableList.of(
+        new FieldInfo("ID", int.class, true),
+        new FieldInfo("val", String.class, false));
+    private static final Properties TBL_PROPERTIES = new Properties();
+
+    private static String hdfsURI;
+    private static MiniDFSCluster hdfsCluster;
+
+    static {
+        TBL_PROPERTIES.put("hdfs.file.path", "/unittest");
+        TBL_PROPERTIES.put("hdfs.file.name", "test1.txt");
+        TBL_PROPERTIES.put("hdfs.rotation.time.seconds", "120");
+    }
+
+    @Before
+    public void setup() throws Exception {
+        Configuration conf = new Configuration();
+        conf.set("fs.trash.interval", "10");
+        conf.setBoolean("dfs.permissions", true);
+        File baseDir = new File("./target/hdfs/").getAbsoluteFile();
+        FileUtil.fullyDelete(baseDir);
+        conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, 
baseDir.getAbsolutePath());
+
+        MiniDFSCluster.Builder builder = new MiniDFSCluster.Builder(conf);
+        hdfsCluster = builder.build();
+        hdfsURI = "hdfs://localhost:" + hdfsCluster.getNameNodePort() + "/";
+    }
+
+    @After
+    public void shutDown() throws IOException {
+        hdfsCluster.shutdown();
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testHdfsSink() throws Exception {
+        ISqlTridentDataSource ds = 
DataSourcesRegistry.constructTridentDataSource(
             URI.create(hdfsURI), null, null, TBL_PROPERTIES, FIELDS);
-    Assert.assertNotNull(ds);
+        Assert.assertNotNull(ds);
+
+        ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
 
-    ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
+        Assert.assertEquals(HdfsStateFactory.class, 
consumer.getStateFactory().getClass());
+        Assert.assertEquals(HdfsUpdater.class, 
consumer.getStateUpdater().getClass());
 
-    Assert.assertEquals(HdfsStateFactory.class, 
consumer.getStateFactory().getClass());
-    Assert.assertEquals(HdfsUpdater.class, 
consumer.getStateUpdater().getClass());
+        HdfsState state = (HdfsState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
+        StateUpdater stateUpdater = consumer.getStateUpdater();
 
-    HdfsState state = (HdfsState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
-    StateUpdater stateUpdater = consumer.getStateUpdater();
+        HdfsFileOptions options = mock(HdfsFileOptions.class);
+        Field optionsField = state.getClass().getDeclaredField("options");
+        optionsField.setAccessible(true);
+        optionsField.set(state, options);
 
-    HdfsFileOptions options = mock(HdfsFileOptions.class);
-    Whitebox.setInternalState(state, "options", options);
+        List<TridentTuple> tupleList = mockTupleList();
 
-    List<TridentTuple> tupleList = mockTupleList();
+        for (TridentTuple t : tupleList) {
+            stateUpdater.updateState(state, Collections.singletonList(t), 
null);
+            try {
+                verify(options).execute(Collections.singletonList(t));
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+    }
 
-    for (TridentTuple t : tupleList) {
-      stateUpdater.updateState(state, Collections.singletonList(t), null);
-      try {
-        verify(options).execute(Collections.singletonList(t));
-      } catch (IOException e) {
-        throw new RuntimeException(e);
-      }
+    private static List<TridentTuple> mockTupleList() {
+        List<TridentTuple> tupleList = new ArrayList<>();
+        TridentTuple t0 = mock(TridentTuple.class);
+        TridentTuple t1 = mock(TridentTuple.class);
+        doReturn(1).when(t0).get(0);
+        doReturn(2).when(t1).get(0);
+        doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
+        doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
+        tupleList.add(t0);
+        tupleList.add(t1);
+        return tupleList;
     }
-  }
-
-  private static List<TridentTuple> mockTupleList() {
-    List<TridentTuple> tupleList = new ArrayList<>();
-    TridentTuple t0 = mock(TridentTuple.class);
-    TridentTuple t1 = mock(TridentTuple.class);
-    doReturn(1).when(t0).get(0);
-    doReturn(2).when(t1).get(0);
-    doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
-    doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
-    tupleList.add(t0);
-    tupleList.add(t1);
-    return tupleList;
-  }
 
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-kafka/pom.xml
----------------------------------------------------------------------
diff --git a/sql/storm-sql-external/storm-sql-kafka/pom.xml 
b/sql/storm-sql-external/storm-sql-kafka/pom.xml
index 5645da3..97bd87c 100644
--- a/sql/storm-sql-external/storm-sql-kafka/pom.xml
+++ b/sql/storm-sql-external/storm-sql-kafka/pom.xml
@@ -77,8 +77,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
     <build>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-kafka/src/test/org/apache/storm/sql/kafka/TestKafkaDataSourcesProvider.java
----------------------------------------------------------------------
diff --git 
a/sql/storm-sql-external/storm-sql-kafka/src/test/org/apache/storm/sql/kafka/TestKafkaDataSourcesProvider.java
 
b/sql/storm-sql-external/storm-sql-kafka/src/test/org/apache/storm/sql/kafka/TestKafkaDataSourcesProvider.java
index 0cde492..c8fb768 100644
--- 
a/sql/storm-sql-external/storm-sql-kafka/src/test/org/apache/storm/sql/kafka/TestKafkaDataSourcesProvider.java
+++ 
b/sql/storm-sql-external/storm-sql-kafka/src/test/org/apache/storm/sql/kafka/TestKafkaDataSourcesProvider.java
@@ -32,7 +32,6 @@ import org.apache.storm.trident.tuple.TridentTuple;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.ArgumentMatcher;
-import org.mockito.internal.util.reflection.Whitebox;
 
 import java.net.URI;
 import java.nio.ByteBuffer;
@@ -46,80 +45,85 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 
+import java.lang.reflect.Field;
+
 public class TestKafkaDataSourcesProvider {
-  private static final List<FieldInfo> FIELDS = ImmutableList.of(
-          new FieldInfo("ID", int.class, true),
-          new FieldInfo("val", String.class, false));
-  private static final List<String> FIELD_NAMES = ImmutableList.of("ID", 
"val");
-  private static final JsonSerializer SERIALIZER = new 
JsonSerializer(FIELD_NAMES);
-  private static final Properties TBL_PROPERTIES = new Properties();
-
-  static {
-    Map<String,Object> map = new HashMap<>();
-    map.put("bootstrap.servers", "localhost:9092");
-    map.put("acks", "1");
-    map.put("key.serializer", 
"org.apache.kafka.common.serialization.StringSerializer");
-    map.put("value.serializer", 
"org.apache.kafka.common.serialization.StringSerializer");
-    TBL_PROPERTIES.put("producer", map);
-  }
-
-  @SuppressWarnings("unchecked")
-  @Test
-  public void testKafkaSink() {
-    ISqlTridentDataSource ds = DataSourcesRegistry.constructTridentDataSource(
+
+    private static final List<FieldInfo> FIELDS = ImmutableList.of(
+        new FieldInfo("ID", int.class, true),
+        new FieldInfo("val", String.class, false));
+    private static final List<String> FIELD_NAMES = ImmutableList.of("ID", 
"val");
+    private static final JsonSerializer SERIALIZER = new 
JsonSerializer(FIELD_NAMES);
+    private static final Properties TBL_PROPERTIES = new Properties();
+
+    static {
+        Map<String, Object> map = new HashMap<>();
+        map.put("bootstrap.servers", "localhost:9092");
+        map.put("acks", "1");
+        map.put("key.serializer", 
"org.apache.kafka.common.serialization.StringSerializer");
+        map.put("value.serializer", 
"org.apache.kafka.common.serialization.StringSerializer");
+        TBL_PROPERTIES.put("producer", map);
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testKafkaSink() throws Exception {
+        ISqlTridentDataSource ds = 
DataSourcesRegistry.constructTridentDataSource(
             URI.create("kafka://mock?topic=foo"), null, null, TBL_PROPERTIES, 
FIELDS);
-    Assert.assertNotNull(ds);
+        Assert.assertNotNull(ds);
 
-    ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
+        ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
 
-    Assert.assertEquals(TridentKafkaStateFactory.class, 
consumer.getStateFactory().getClass());
-    Assert.assertEquals(TridentKafkaUpdater.class, 
consumer.getStateUpdater().getClass());
+        Assert.assertEquals(TridentKafkaStateFactory.class, 
consumer.getStateFactory().getClass());
+        Assert.assertEquals(TridentKafkaUpdater.class, 
consumer.getStateUpdater().getClass());
 
-    TridentKafkaState state = (TridentKafkaState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
-    KafkaProducer producer = mock(KafkaProducer.class);
-    
doReturn(mock(Future.class)).when(producer).send(any(ProducerRecord.class));
-    Whitebox.setInternalState(state, "producer", producer);
+        TridentKafkaState state = (TridentKafkaState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
+        KafkaProducer producer = mock(KafkaProducer.class);
+        
doReturn(mock(Future.class)).when(producer).send(any(ProducerRecord.class));
+        Field producerField = state.getClass().getDeclaredField("producer");
+        producerField.setAccessible(true);
+        producerField.set(state, producer);
 
-    List<TridentTuple> tupleList = mockTupleList();
-    for (TridentTuple t : tupleList) {
-      state.updateState(Collections.singletonList(t), null);
-      verify(producer).send(argThat(new KafkaMessageMatcher(t)));
+        List<TridentTuple> tupleList = mockTupleList();
+        for (TridentTuple t : tupleList) {
+            state.updateState(Collections.singletonList(t), null);
+            verify(producer).send(argThat(new KafkaMessageMatcher(t)));
+        }
+        verifyNoMoreInteractions(producer);
     }
-    verifyNoMoreInteractions(producer);
-  }
-
-  private static List<TridentTuple> mockTupleList() {
-    List<TridentTuple> tupleList = new ArrayList<>();
-    TridentTuple t0 = mock(TridentTuple.class);
-    TridentTuple t1 = mock(TridentTuple.class);
-    doReturn(1).when(t0).get(0);
-    doReturn(2).when(t1).get(0);
-    doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
-    doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
-    tupleList.add(t0);
-    tupleList.add(t1);
-    return tupleList;
-  }
-
-  private static class KafkaMessageMatcher extends 
ArgumentMatcher<ProducerRecord> {
-    private static final int PRIMARY_INDEX = 0;
-    private final TridentTuple tuple;
-
-    private KafkaMessageMatcher(TridentTuple tuple) {
-      this.tuple = tuple;
+
+    private static List<TridentTuple> mockTupleList() {
+        List<TridentTuple> tupleList = new ArrayList<>();
+        TridentTuple t0 = mock(TridentTuple.class);
+        TridentTuple t1 = mock(TridentTuple.class);
+        doReturn(1).when(t0).get(0);
+        doReturn(2).when(t1).get(0);
+        doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
+        doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
+        tupleList.add(t0);
+        tupleList.add(t1);
+        return tupleList;
     }
 
-    @SuppressWarnings("unchecked")
-    @Override
-    public boolean matches(Object o) {
-      ProducerRecord<Object, ByteBuffer> m = 
(ProducerRecord<Object,ByteBuffer>)o;
-      if (m.key() != tuple.get(PRIMARY_INDEX)) {
-        return false;
-      }
-      ByteBuffer buf = m.value();
-      ByteBuffer b = SERIALIZER.write(tuple.getValues(), null);
-      return b.equals(buf);
+    private static class KafkaMessageMatcher implements 
ArgumentMatcher<ProducerRecord<Object, ByteBuffer>> {
+
+        private static final int PRIMARY_INDEX = 0;
+        private final TridentTuple tuple;
+
+        private KafkaMessageMatcher(TridentTuple tuple) {
+            this.tuple = tuple;
+        }
+
+        @SuppressWarnings("unchecked")
+        @Override
+        public boolean matches(ProducerRecord<Object, ByteBuffer> record) {
+            if (record.key() != tuple.get(PRIMARY_INDEX)) {
+                return false;
+            }
+            ByteBuffer buf = record.value();
+            ByteBuffer b = SERIALIZER.write(tuple.getValues(), null);
+            return b.equals(buf);
+        }
     }
-  }
 
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-mongodb/pom.xml
----------------------------------------------------------------------
diff --git a/sql/storm-sql-external/storm-sql-mongodb/pom.xml 
b/sql/storm-sql-external/storm-sql-mongodb/pom.xml
index 82a7036..8bd5651 100644
--- a/sql/storm-sql-external/storm-sql-mongodb/pom.xml
+++ b/sql/storm-sql-external/storm-sql-mongodb/pom.xml
@@ -68,8 +68,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
     <build>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-mongodb/src/test/org/apache/storm/sql/mongodb/TestMongoDataSourcesProvider.java
----------------------------------------------------------------------
diff --git 
a/sql/storm-sql-external/storm-sql-mongodb/src/test/org/apache/storm/sql/mongodb/TestMongoDataSourcesProvider.java
 
b/sql/storm-sql-external/storm-sql-mongodb/src/test/org/apache/storm/sql/mongodb/TestMongoDataSourcesProvider.java
index 429f386..4fcc6d0 100644
--- 
a/sql/storm-sql-external/storm-sql-mongodb/src/test/org/apache/storm/sql/mongodb/TestMongoDataSourcesProvider.java
+++ 
b/sql/storm-sql-external/storm-sql-mongodb/src/test/org/apache/storm/sql/mongodb/TestMongoDataSourcesProvider.java
@@ -33,7 +33,6 @@ import org.bson.Document;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.ArgumentMatcher;
-import org.mockito.internal.util.reflection.Whitebox;
 
 import java.net.URI;
 import java.nio.ByteBuffer;
@@ -49,74 +48,80 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 
+import java.lang.reflect.Field;
+
 public class TestMongoDataSourcesProvider {
-  private static final List<FieldInfo> FIELDS = ImmutableList.of(
-      new FieldInfo("ID", int.class, true),
-      new FieldInfo("val", String.class, false));
-  private static final List<String> FIELD_NAMES = ImmutableList.of("ID", 
"val");
-  private static final JsonSerializer SERIALIZER = new 
JsonSerializer(FIELD_NAMES);
-  private static final Properties TBL_PROPERTIES = new Properties();
-
-  static {
-    TBL_PROPERTIES.put("collection.name", "collection1");
-    TBL_PROPERTIES.put("trident.ser.field", "tridentSerField");
-  }
-
-  @SuppressWarnings("unchecked")
-  @Test
-  public void testMongoSink() {
-    ISqlTridentDataSource ds = DataSourcesRegistry.constructTridentDataSource(
+
+    private static final List<FieldInfo> FIELDS = ImmutableList.of(
+        new FieldInfo("ID", int.class, true),
+        new FieldInfo("val", String.class, false));
+    private static final List<String> FIELD_NAMES = ImmutableList.of("ID", 
"val");
+    private static final JsonSerializer SERIALIZER = new 
JsonSerializer(FIELD_NAMES);
+    private static final Properties TBL_PROPERTIES = new Properties();
+
+    static {
+        TBL_PROPERTIES.put("collection.name", "collection1");
+        TBL_PROPERTIES.put("trident.ser.field", "tridentSerField");
+    }
+
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testMongoSink() throws Exception {
+        ISqlTridentDataSource ds = 
DataSourcesRegistry.constructTridentDataSource(
             URI.create("mongodb://127.0.0.1:27017/test"), null, null, 
TBL_PROPERTIES, FIELDS);
-    Assert.assertNotNull(ds);
+        Assert.assertNotNull(ds);
 
-    ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
+        ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
 
-    Assert.assertEquals(MongoStateFactory.class, 
consumer.getStateFactory().getClass());
-    Assert.assertEquals(MongoStateUpdater.class, 
consumer.getStateUpdater().getClass());
+        Assert.assertEquals(MongoStateFactory.class, 
consumer.getStateFactory().getClass());
+        Assert.assertEquals(MongoStateUpdater.class, 
consumer.getStateUpdater().getClass());
 
-    MongoState state = (MongoState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
-    StateUpdater stateUpdater = consumer.getStateUpdater();
+        MongoState state = (MongoState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
+        StateUpdater stateUpdater = consumer.getStateUpdater();
 
-    MongoDbClient mongoClient = mock(MongoDbClient.class);
-    Whitebox.setInternalState(state, "mongoClient", mongoClient);
+        MongoDbClient mongoClient = mock(MongoDbClient.class);
+        Field clientField = state.getClass().getDeclaredField("mongoClient");
+        clientField.setAccessible(true);
+        clientField.set(state, mongoClient);
 
-    List<TridentTuple> tupleList = mockTupleList();
+        List<TridentTuple> tupleList = mockTupleList();
 
-    for (TridentTuple t : tupleList) {
-      stateUpdater.updateState(state, Collections.singletonList(t), null);
-      verify(mongoClient).insert(argThat(new MongoArgMatcher(t)) , eq(true));
+        for (TridentTuple t : tupleList) {
+            stateUpdater.updateState(state, Collections.singletonList(t), 
null);
+            verify(mongoClient).insert(argThat(new MongoArgMatcher(t)), 
eq(true));
+        }
+
+        verifyNoMoreInteractions(mongoClient);
     }
 
-    verifyNoMoreInteractions(mongoClient);
-  }
-
-  private static List<TridentTuple> mockTupleList() {
-    List<TridentTuple> tupleList = new ArrayList<>();
-    TridentTuple t0 = mock(TridentTuple.class);
-    TridentTuple t1 = mock(TridentTuple.class);
-    doReturn(1).when(t0).get(0);
-    doReturn(2).when(t1).get(0);
-    doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
-    doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
-    tupleList.add(t0);
-    tupleList.add(t1);
-    return tupleList;
-  }
-
-  private static class MongoArgMatcher extends ArgumentMatcher<List<Document>> 
{
-    private final TridentTuple tuple;
-
-    private MongoArgMatcher(TridentTuple tuple) {
-      this.tuple = tuple;
+    private static List<TridentTuple> mockTupleList() {
+        List<TridentTuple> tupleList = new ArrayList<>();
+        TridentTuple t0 = mock(TridentTuple.class);
+        TridentTuple t1 = mock(TridentTuple.class);
+        doReturn(1).when(t0).get(0);
+        doReturn(2).when(t1).get(0);
+        doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
+        doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
+        tupleList.add(t0);
+        tupleList.add(t1);
+        return tupleList;
     }
 
-    @SuppressWarnings("unchecked")
-    @Override
-    public boolean matches(Object o) {
-      Document doc = ((List<Document>)o).get(0);
-      ByteBuffer buf = 
ByteBuffer.wrap((byte[])doc.get(TBL_PROPERTIES.getProperty("trident.ser.field")));
-      ByteBuffer b = SERIALIZER.write(tuple.getValues(), null);
-      return b.equals(buf);
+    private static class MongoArgMatcher implements 
ArgumentMatcher<List<Document>> {
+
+        private final TridentTuple tuple;
+
+        private MongoArgMatcher(TridentTuple tuple) {
+            this.tuple = tuple;
+        }
+
+        @SuppressWarnings("unchecked")
+        @Override
+        public boolean matches(List<Document> docs) {
+            Document doc = docs.get(0);
+            ByteBuffer buf = ByteBuffer.wrap((byte[]) 
doc.get(TBL_PROPERTIES.getProperty("trident.ser.field")));
+            ByteBuffer b = SERIALIZER.write(tuple.getValues(), null);
+            return b.equals(buf);
+        }
     }
-  }
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-redis/pom.xml
----------------------------------------------------------------------
diff --git a/sql/storm-sql-external/storm-sql-redis/pom.xml 
b/sql/storm-sql-external/storm-sql-redis/pom.xml
index 82aa13b..4627450 100644
--- a/sql/storm-sql-external/storm-sql-redis/pom.xml
+++ b/sql/storm-sql-external/storm-sql-redis/pom.xml
@@ -60,8 +60,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
     <build>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-external/storm-sql-redis/src/test/org/apache/storm/sql/redis/TestRedisDataSourcesProvider.java
----------------------------------------------------------------------
diff --git 
a/sql/storm-sql-external/storm-sql-redis/src/test/org/apache/storm/sql/redis/TestRedisDataSourcesProvider.java
 
b/sql/storm-sql-external/storm-sql-redis/src/test/org/apache/storm/sql/redis/TestRedisDataSourcesProvider.java
index 94d4949..56df0e3 100644
--- 
a/sql/storm-sql-external/storm-sql-redis/src/test/org/apache/storm/sql/redis/TestRedisDataSourcesProvider.java
+++ 
b/sql/storm-sql-external/storm-sql-redis/src/test/org/apache/storm/sql/redis/TestRedisDataSourcesProvider.java
@@ -31,7 +31,6 @@ import org.apache.storm.trident.state.StateUpdater;
 import org.apache.storm.trident.tuple.TridentTuple;
 import org.junit.Assert;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 import redis.clients.jedis.Jedis;
 import redis.clients.jedis.JedisCluster;
 import redis.clients.jedis.JedisPool;
@@ -51,108 +50,115 @@ import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import java.lang.reflect.Field;
+
 public class TestRedisDataSourcesProvider {
-  private static final List<FieldInfo> FIELDS = ImmutableList.of(
-      new FieldInfo("ID", int.class, true),
-      new FieldInfo("val", String.class, false));
-  private static final List<String> FIELD_NAMES = ImmutableList.of("ID", 
"val");
-  private static final String ADDITIONAL_KEY = "hello";
-  private static final JsonSerializer SERIALIZER = new 
JsonSerializer(FIELD_NAMES);
-  private static final Properties TBL_PROPERTIES = new Properties();
-  private static final Properties CLUSTER_TBL_PROPERTIES = new Properties();
-
-  static {
-    TBL_PROPERTIES.put("data.type", "HASH");
-    TBL_PROPERTIES.put("data.additional.key", ADDITIONAL_KEY);
-    CLUSTER_TBL_PROPERTIES.put("data.type", "HASH");
-    CLUSTER_TBL_PROPERTIES.put("data.additional.key", ADDITIONAL_KEY);
-    CLUSTER_TBL_PROPERTIES.put("use.redis.cluster", "true");
-  }
-
-  @SuppressWarnings("unchecked")
-  @Test
-  public void testRedisSink() {
-    ISqlTridentDataSource ds = DataSourcesRegistry.constructTridentDataSource(
-        URI.create("redis://:foobared@localhost:6380/2"), null, null, 
TBL_PROPERTIES, FIELDS);
-    Assert.assertNotNull(ds);
-
-    ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
-
-    Assert.assertEquals(RedisState.Factory.class, 
consumer.getStateFactory().getClass());
-    Assert.assertEquals(RedisStateUpdater.class, 
consumer.getStateUpdater().getClass());
-
-    RedisState state = (RedisState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
-    StateUpdater stateUpdater = consumer.getStateUpdater();
-
-    JedisPool mockJedisPool = mock(JedisPool.class);
-    Jedis mockJedis = mock(Jedis.class);
-    Pipeline mockPipeline = mock(Pipeline.class);
-
-    Whitebox.setInternalState(state, "jedisPool", mockJedisPool);
-    when(mockJedisPool.getResource()).thenReturn(mockJedis);
-    when(mockJedis.pipelined()).thenReturn(mockPipeline);
-
-    List<TridentTuple> tupleList = mockTupleList();
-
-    stateUpdater.updateState(state, tupleList, null);
-    for (TridentTuple t : tupleList) {
-      // PK goes to the key
-      String id = String.valueOf(t.getValueByField("ID"));
-      String serializedValue = new String(SERIALIZER.write(t.getValues(), 
null).array());
-      verify(mockPipeline).hset(eq(ADDITIONAL_KEY), eq(id), 
eq(serializedValue));
+
+    private static final List<FieldInfo> FIELDS = ImmutableList.of(
+        new FieldInfo("ID", int.class, true),
+        new FieldInfo("val", String.class, false));
+    private static final List<String> FIELD_NAMES = ImmutableList.of("ID", 
"val");
+    private static final String ADDITIONAL_KEY = "hello";
+    private static final JsonSerializer SERIALIZER = new 
JsonSerializer(FIELD_NAMES);
+    private static final Properties TBL_PROPERTIES = new Properties();
+    private static final Properties CLUSTER_TBL_PROPERTIES = new Properties();
+
+    static {
+        TBL_PROPERTIES.put("data.type", "HASH");
+        TBL_PROPERTIES.put("data.additional.key", ADDITIONAL_KEY);
+        CLUSTER_TBL_PROPERTIES.put("data.type", "HASH");
+        CLUSTER_TBL_PROPERTIES.put("data.additional.key", ADDITIONAL_KEY);
+        CLUSTER_TBL_PROPERTIES.put("use.redis.cluster", "true");
     }
 
-    verify(mockPipeline).sync();
-    verify(mockJedis).close();
-  }
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testRedisSink() throws Exception {
+        ISqlTridentDataSource ds = 
DataSourcesRegistry.constructTridentDataSource(
+            URI.create("redis://:foobared@localhost:6380/2"), null, null, 
TBL_PROPERTIES, FIELDS);
+        Assert.assertNotNull(ds);
 
-  @SuppressWarnings("unchecked")
-  @Test
-  public void testRedisClusterSink() throws IOException {
-    ISqlTridentDataSource ds = DataSourcesRegistry.constructTridentDataSource(
-        URI.create("redis://localhost:6380"), null, null, 
CLUSTER_TBL_PROPERTIES, FIELDS);
-    Assert.assertNotNull(ds);
+        ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
 
-    ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
+        Assert.assertEquals(RedisState.Factory.class, 
consumer.getStateFactory().getClass());
+        Assert.assertEquals(RedisStateUpdater.class, 
consumer.getStateUpdater().getClass());
 
-    Assert.assertEquals(RedisClusterState.Factory.class, 
consumer.getStateFactory().getClass());
-    Assert.assertEquals(RedisClusterStateUpdater.class, 
consumer.getStateUpdater().getClass());
+        RedisState state = (RedisState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
+        StateUpdater stateUpdater = consumer.getStateUpdater();
 
-    RedisClusterState state = (RedisClusterState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
-    StateUpdater stateUpdater = consumer.getStateUpdater();
+        JedisPool mockJedisPool = mock(JedisPool.class);
+        Jedis mockJedis = mock(Jedis.class);
+        Pipeline mockPipeline = mock(Pipeline.class);
 
-    JedisCluster mockJedisCluster = mock(JedisCluster.class);
+        Field jedisPoolField = state.getClass().getDeclaredField("jedisPool");
+        jedisPoolField.setAccessible(true);
+        jedisPoolField.set(state, mockJedisPool);
+        when(mockJedisPool.getResource()).thenReturn(mockJedis);
+        when(mockJedis.pipelined()).thenReturn(mockPipeline);
 
-    Whitebox.setInternalState(state, "jedisCluster", mockJedisCluster);
+        List<TridentTuple> tupleList = mockTupleList();
 
-    List<TridentTuple> tupleList = mockTupleList();
+        stateUpdater.updateState(state, tupleList, null);
+        for (TridentTuple t : tupleList) {
+            // PK goes to the key
+            String id = String.valueOf(t.getValueByField("ID"));
+            String serializedValue = new 
String(SERIALIZER.write(t.getValues(), null).array());
+            verify(mockPipeline).hset(eq(ADDITIONAL_KEY), eq(id), 
eq(serializedValue));
+        }
 
-    stateUpdater.updateState(state, tupleList, null);
-    for (TridentTuple t : tupleList) {
-      // PK goes to the key
-      String id = String.valueOf(t.getValueByField("ID"));
-      String serializedValue = new String(SERIALIZER.write(t.getValues(), 
null).array());
-      verify(mockJedisCluster).hset(eq(ADDITIONAL_KEY), eq(id), 
eq(serializedValue));
+        verify(mockPipeline).sync();
+        verify(mockJedis).close();
     }
 
-    verify(mockJedisCluster, never()).close();
-  }
-
-  private static List<TridentTuple> mockTupleList() {
-    List<TridentTuple> tupleList = new ArrayList<>();
-    TridentTuple t0 = mock(TridentTuple.class);
-    TridentTuple t1 = mock(TridentTuple.class);
-    when(t0.getValueByField("ID")).thenReturn(1);
-    when(t0.getValueByField("val")).thenReturn("2");
-    doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
-
-    when(t1.getValueByField("ID")).thenReturn(2);
-    when(t1.getValueByField("val")).thenReturn("3");
-    doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
-
-    tupleList.add(t0);
-    tupleList.add(t1);
-    return tupleList;
-  }
+    @SuppressWarnings("unchecked")
+    @Test
+    public void testRedisClusterSink() throws Exception {
+        ISqlTridentDataSource ds = 
DataSourcesRegistry.constructTridentDataSource(
+            URI.create("redis://localhost:6380"), null, null, 
CLUSTER_TBL_PROPERTIES, FIELDS);
+        Assert.assertNotNull(ds);
+
+        ISqlTridentDataSource.SqlTridentConsumer consumer = ds.getConsumer();
+
+        Assert.assertEquals(RedisClusterState.Factory.class, 
consumer.getStateFactory().getClass());
+        Assert.assertEquals(RedisClusterStateUpdater.class, 
consumer.getStateUpdater().getClass());
+
+        RedisClusterState state = (RedisClusterState) 
consumer.getStateFactory().makeState(Collections.emptyMap(), null, 0, 1);
+        StateUpdater stateUpdater = consumer.getStateUpdater();
+
+        JedisCluster mockJedisCluster = mock(JedisCluster.class);
+
+        Field jedisClusterField = 
state.getClass().getDeclaredField("jedisCluster");
+        jedisClusterField.setAccessible(true);
+        jedisClusterField.set(state, mockJedisCluster);
+
+        List<TridentTuple> tupleList = mockTupleList();
+
+        stateUpdater.updateState(state, tupleList, null);
+        for (TridentTuple t : tupleList) {
+            // PK goes to the key
+            String id = String.valueOf(t.getValueByField("ID"));
+            String serializedValue = new 
String(SERIALIZER.write(t.getValues(), null).array());
+            verify(mockJedisCluster).hset(eq(ADDITIONAL_KEY), eq(id), 
eq(serializedValue));
+        }
+
+        verify(mockJedisCluster, never()).close();
+    }
+
+    private static List<TridentTuple> mockTupleList() {
+        List<TridentTuple> tupleList = new ArrayList<>();
+        TridentTuple t0 = mock(TridentTuple.class);
+        TridentTuple t1 = mock(TridentTuple.class);
+        when(t0.getValueByField("ID")).thenReturn(1);
+        when(t0.getValueByField("val")).thenReturn("2");
+        doReturn(Lists.<Object>newArrayList(1, "2")).when(t0).getValues();
+
+        when(t1.getValueByField("ID")).thenReturn(2);
+        when(t1.getValueByField("val")).thenReturn("3");
+        doReturn(Lists.<Object>newArrayList(2, "3")).when(t1).getValues();
+
+        tupleList.add(t0);
+        tupleList.add(t1);
+        return tupleList;
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/sql/storm-sql-runtime/pom.xml
----------------------------------------------------------------------
diff --git a/sql/storm-sql-runtime/pom.xml b/sql/storm-sql-runtime/pom.xml
index f9969b2..77e22a4 100644
--- a/sql/storm-sql-runtime/pom.xml
+++ b/sql/storm-sql-runtime/pom.xml
@@ -85,8 +85,11 @@
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>junit</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-client/pom.xml
----------------------------------------------------------------------
diff --git a/storm-client/pom.xml b/storm-client/pom.xml
index 538b7b9..b37f458 100644
--- a/storm-client/pom.xml
+++ b/storm-client/pom.xml
@@ -177,23 +177,17 @@
         <!-- end of transitive dependency management -->
 
         <!-- test -->
-        <!-- hamcrest-core dependency is shaded inside the mockito-all and 
junit depends on newer version of hamcrest-core.
-        To give higher precedence to classes from newer version of 
hamcrest-core, Junit has been placed above mockito.
-         -->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest-library</artifactId>
-            <scope>test</scope>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
     </dependencies>
 

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-client/test/jvm/org/apache/storm/grouping/PartialKeyGroupingTest.java
----------------------------------------------------------------------
diff --git 
a/storm-client/test/jvm/org/apache/storm/grouping/PartialKeyGroupingTest.java 
b/storm-client/test/jvm/org/apache/storm/grouping/PartialKeyGroupingTest.java
index 273a20a..0945062 100644
--- 
a/storm-client/test/jvm/org/apache/storm/grouping/PartialKeyGroupingTest.java
+++ 
b/storm-client/test/jvm/org/apache/storm/grouping/PartialKeyGroupingTest.java
@@ -53,7 +53,7 @@ public class PartialKeyGroupingTest {
         PartialKeyGrouping pkg = new PartialKeyGrouping(new Fields("test"));
         WorkerTopologyContext context = mock(WorkerTopologyContext.class);
         
when(context.getComponentOutputFields(any(GlobalStreamId.class))).thenReturn(new
 Fields("test"));
-        pkg.prepare(context, null, Lists.newArrayList(0, 1, 2, 3, 4, 5));
+        pkg.prepare(context, mock(GlobalStreamId.class), Lists.newArrayList(0, 
1, 2, 3, 4, 5));
         Values message = new Values("key1");
         List<Integer> choice1 = pkg.chooseTasks(0, message);
         assertThat(choice1.size(), is(1));

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-client/test/jvm/org/apache/storm/topology/PersistentWindowedBoltExecutorTest.java
----------------------------------------------------------------------
diff --git 
a/storm-client/test/jvm/org/apache/storm/topology/PersistentWindowedBoltExecutorTest.java
 
b/storm-client/test/jvm/org/apache/storm/topology/PersistentWindowedBoltExecutorTest.java
index d486487..db1cf9e 100644
--- 
a/storm-client/test/jvm/org/apache/storm/topology/PersistentWindowedBoltExecutorTest.java
+++ 
b/storm-client/test/jvm/org/apache/storm/topology/PersistentWindowedBoltExecutorTest.java
@@ -18,9 +18,12 @@
 
 package org.apache.storm.topology;
 
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.junit.Assert.assertThat;
+
 import com.google.common.collect.ImmutableMap;
 import org.apache.storm.Config;
-import org.apache.storm.generated.GlobalStreamId;
 import org.apache.storm.state.KeyValueState;
 import org.apache.storm.streams.Pair;
 import org.apache.storm.task.OutputCollector;
@@ -41,13 +44,11 @@ import org.mockito.ArgumentCaptor;
 import org.mockito.Captor;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.runners.MockitoJUnitRunner;
 import org.mockito.stubbing.Answer;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Deque;
@@ -106,14 +107,12 @@ public class PersistentWindowedBoltExecutorTest {
 
     @Before
     public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
         mockBolt = Mockito.mock(IStatefulWindowedBolt.class);
         mockWaterMarkEventGenerator = 
Mockito.mock(WaterMarkEventGenerator.class);
         mockTimestampExtractor = Mockito.mock(TimestampExtractor.class);
         tupleTs = System.currentTimeMillis();
         
Mockito.when(mockTimestampExtractor.extractTimestamp(Mockito.any())).thenReturn(tupleTs);
         
Mockito.when(mockBolt.getTimestampExtractor()).thenReturn(mockTimestampExtractor);
-        Mockito.when(mockBolt.isPersistent()).thenReturn(true);
         mockTopologyContext = Mockito.mock(TopologyContext.class);
         
Mockito.when(mockTopologyContext.getThisStreams()).thenReturn(Collections.singleton(LATE_STREAM));
         mockOutputCollector = Mockito.mock(OutputCollector.class);
@@ -126,7 +125,6 @@ public class PersistentWindowedBoltExecutorTest {
         testStormConf.put(Config.TOPOLOGY_STATE_CHECKPOINT_INTERVAL, 1000);
         Mockito.when(mockPartitionState.get(Mockito.any(), 
Mockito.any())).then(returnsArgAt(1));
         Mockito.when(mockWindowState.get(Mockito.any(), 
Mockito.any())).then(returnsArgAt(1));
-        Mockito.when(mockSystemState.get(Mockito.any(), 
Mockito.any())).then(returnsArgAt(1));
         Mockito.when(mockSystemState.iterator()).thenReturn(
             ImmutableMap.<String, Optional<?>>of("es", Optional.empty(), "ts", 
Optional.empty()).entrySet().iterator());
         executor.prepare(testStormConf, mockTopologyContext, 
mockOutputCollector,
@@ -135,7 +133,7 @@ public class PersistentWindowedBoltExecutorTest {
 
     @Test
     public void testExecuteTuple() throws Exception {
-        
Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(GlobalStreamId.class),
 Mockito.anyLong())).thenReturn(true);
+        Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(), 
Mockito.anyLong())).thenReturn(true);
         Tuple mockTuple = Mockito.mock(Tuple.class);
         executor.initState(null);
         executor.waterMarkEventGenerator = mockWaterMarkEventGenerator;
@@ -146,7 +144,7 @@ public class PersistentWindowedBoltExecutorTest {
 
     @Test
     public void testExecuteLatetuple() throws Exception {
-        
Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(GlobalStreamId.class),
 Mockito.anyLong())).thenReturn(false);
+        Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(), 
Mockito.anyLong())).thenReturn(false);
         Tuple mockTuple = Mockito.mock(Tuple.class);
         executor.initState(null);
         executor.waterMarkEventGenerator = mockWaterMarkEventGenerator;
@@ -164,7 +162,7 @@ public class PersistentWindowedBoltExecutorTest {
 
     @Test
     public void testActivation() throws Exception {
-        
Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(GlobalStreamId.class),
 Mockito.anyLong())).thenReturn(true);
+        Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(), 
Mockito.anyLong())).thenReturn(true);
         executor.initState(null);
         executor.waterMarkEventGenerator = mockWaterMarkEventGenerator;
 
@@ -196,7 +194,7 @@ public class PersistentWindowedBoltExecutorTest {
         Mockito.verify(mockPartitionState, 
Mockito.times(1)).put(pkCatptor.capture(), partitionValuesCaptor.capture());
         Assert.assertEquals(PARTITION_KEY, pkCatptor.getValue());
         List<Long> expectedPartitionIds = Collections.singletonList(0L);
-        Assert.assertEquals(expectedPartitionIds, 
partitionValuesCaptor.getValue());
+        assertThat(partitionValuesCaptor.getValue(), 
contains(expectedPartitionIds.toArray(new Long[0])));
 
         // window partitions
         Mockito.verify(mockWindowState, 
Mockito.times(1)).put(longCaptor.capture(), windowValuesCaptor.capture());
@@ -217,7 +215,7 @@ public class PersistentWindowedBoltExecutorTest {
 
     @Test
     public void testCacheEviction() {
-        
Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(GlobalStreamId.class),
 Mockito.anyLong())).thenReturn(true);
+        Mockito.when(mockWaterMarkEventGenerator.track(Mockito.any(), 
Mockito.anyLong())).thenReturn(true);
         executor.initState(null);
         executor.waterMarkEventGenerator = mockWaterMarkEventGenerator;
         int tupleCount = 20000;
@@ -237,14 +235,15 @@ public class PersistentWindowedBoltExecutorTest {
         ArgumentCaptor<String> stringCaptor = 
ArgumentCaptor.forClass(String.class);
         Mockito.verify(mockPartitionState, 
Mockito.times(numPartitions)).put(stringCaptor.capture(), 
partitionValuesCaptor.capture());
         // partition ids 0 .. 19
-        Assert.assertEquals(LongStream.range(0, 
numPartitions).boxed().collect(Collectors.toList()), 
partitionValuesCaptor.getAllValues().get(numPartitions-1));
+        
Assert.assertThat(partitionValuesCaptor.getAllValues().get(numPartitions - 1),
+            contains(LongStream.range(0, 
numPartitions).boxed().collect(Collectors.toList()).toArray(new Long[0])));
 
         Mockito.when(mockWindowState.get(Mockito.any(), 
Mockito.any())).then(new Answer<Object>() {
             @Override
             public Object answer(InvocationOnMock invocation) throws Throwable 
{
-                Object[] args = invocation.getArguments();
-                WindowState.WindowPartition<Tuple> evicted = 
partitionMap.get(args[0]);
-                return evicted != null ? evicted : args[1];
+                Long partition = invocation.getArgument(0);
+                WindowState.WindowPartition<Tuple> evicted = 
partitionMap.get(partition);
+                return evicted != null ? evicted : invocation.getArgument(1);
             }
         });
 

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-client/test/jvm/org/apache/storm/topology/StatefulBoltExecutorTest.java
----------------------------------------------------------------------
diff --git 
a/storm-client/test/jvm/org/apache/storm/topology/StatefulBoltExecutorTest.java 
b/storm-client/test/jvm/org/apache/storm/topology/StatefulBoltExecutorTest.java
index 26b5594..3b4a64a 100644
--- 
a/storm-client/test/jvm/org/apache/storm/topology/StatefulBoltExecutorTest.java
+++ 
b/storm-client/test/jvm/org/apache/storm/topology/StatefulBoltExecutorTest.java
@@ -21,56 +21,47 @@ import org.apache.storm.generated.GlobalStreamId;
 import org.apache.storm.generated.Grouping;
 import org.apache.storm.spout.CheckpointSpout;
 import org.apache.storm.state.KeyValueState;
-import org.apache.storm.state.State;
 import org.apache.storm.task.OutputCollector;
 import org.apache.storm.task.TopologyContext;
 import org.apache.storm.tuple.Tuple;
-import org.apache.storm.topology.IStatefulBolt;
-import org.apache.storm.topology.StatefulBoltExecutor;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
-import java.util.Set;
 
 import static org.apache.storm.spout.CheckPointState.Action.*;
 import static org.apache.storm.spout.CheckpointSpout.*;
+import static org.mockito.Mockito.mock;
 
 /**
  * Unit tests for {@link StatefulBoltExecutor}
  */
 public class StatefulBoltExecutorTest {
-    StatefulBoltExecutor<KeyValueState<String, String>> executor;
-    IStatefulBolt<KeyValueState<String, String>> mockBolt;
-    TopologyContext mockTopologyContext;
-    Tuple mockTuple;
-    Tuple mockCheckpointTuple;
-    Map<String, Object> mockStormConf = new HashMap<>();
-    OutputCollector mockOutputCollector;
-    State mockState;
-    Map<GlobalStreamId, Grouping> mockGlobalStream;
-    Set<GlobalStreamId> mockStreamIds;
+    private StatefulBoltExecutor<KeyValueState<String, String>> executor;
+    private IStatefulBolt<KeyValueState<String, String>> mockBolt;
+    private TopologyContext mockTopologyContext;
+    private Tuple mockTuple;
+    private Tuple mockCheckpointTuple;
+    private Map<String, Object> mockStormConf = new HashMap<>();
+    private OutputCollector mockOutputCollector;
+    private KeyValueState<String, String> mockState;
+    
     @Before
     public void setUp() throws Exception {
         mockBolt = Mockito.mock(IStatefulBolt.class);
         executor = new StatefulBoltExecutor<>(mockBolt);
-        GlobalStreamId mockGlobalStreamId = Mockito.mock(GlobalStreamId.class);
-        
Mockito.when(mockGlobalStreamId.get_streamId()).thenReturn(CheckpointSpout.CHECKPOINT_STREAM_ID);
-        mockStreamIds = new HashSet<>();
-        mockStreamIds.add(mockGlobalStreamId);
         mockTopologyContext = Mockito.mock(TopologyContext.class);
         mockOutputCollector = Mockito.mock(OutputCollector.class);
-        mockGlobalStream = Mockito.mock(Map.class);
-        mockState = Mockito.mock(State.class);
+        mockState = Mockito.mock(KeyValueState.class);
         
Mockito.when(mockTopologyContext.getThisComponentId()).thenReturn("test");
         Mockito.when(mockTopologyContext.getThisTaskId()).thenReturn(1);
-        
Mockito.when(mockTopologyContext.getThisSources()).thenReturn(mockGlobalStream);
-        
Mockito.when(mockTopologyContext.getComponentTasks(Mockito.anyString())).thenReturn(Collections.singletonList(1));
-        Mockito.when(mockGlobalStream.keySet()).thenReturn(mockStreamIds);
+        GlobalStreamId globalStreamId = new GlobalStreamId("test", 
CheckpointSpout.CHECKPOINT_STREAM_ID);
+        Map<GlobalStreamId, Grouping> thisSources = 
Collections.singletonMap(globalStreamId, mock(Grouping.class));
+        
Mockito.when(mockTopologyContext.getThisSources()).thenReturn(thisSources);
+        
Mockito.when(mockTopologyContext.getComponentTasks(Mockito.any())).thenReturn(Collections.singletonList(1));
         mockTuple = Mockito.mock(Tuple.class);
         mockCheckpointTuple = Mockito.mock(Tuple.class);
         executor.prepare(mockStormConf, mockTopologyContext, 
mockOutputCollector, mockState);

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-client/test/jvm/org/apache/storm/windowing/persistence/WindowStateTest.java
----------------------------------------------------------------------
diff --git 
a/storm-client/test/jvm/org/apache/storm/windowing/persistence/WindowStateTest.java
 
b/storm-client/test/jvm/org/apache/storm/windowing/persistence/WindowStateTest.java
index 587d874..1797caf 100644
--- 
a/storm-client/test/jvm/org/apache/storm/windowing/persistence/WindowStateTest.java
+++ 
b/storm-client/test/jvm/org/apache/storm/windowing/persistence/WindowStateTest.java
@@ -42,7 +42,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 import static org.mockito.AdditionalAnswers.returnsArgAt;
@@ -66,11 +65,6 @@ public class WindowStateTest {
     @Captor
     private ArgumentCaptor<WindowState.WindowPartition<Integer>> 
windowValuesCaptor;
 
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-    }
-
     @Test
     public void testAdd() throws Exception {
         Mockito.when(partitionIdsState.get(Mockito.any(), 
Mockito.any())).then(returnsArgAt(1));
@@ -125,8 +119,6 @@ public class WindowStateTest {
             }
         }).when(windowState).delete(Mockito.anyLong());
 
-        Mockito.when(supplier.get()).thenReturn(Collections.emptyMap());
-
         WindowState<Integer> ws = getWindowState(10 * 
WindowState.MAX_PARTITION_EVENTS);
 
         long partitions = 15;
@@ -186,8 +178,6 @@ public class WindowStateTest {
             }
         }).when(windowState).put(Mockito.any(), Mockito.any());
 
-        Mockito.when(supplier.get()).thenReturn(Collections.emptyMap());
-
         WindowState<Integer> ws = getWindowState(10 * 
WindowState.MAX_PARTITION_EVENTS);
 
         long partitions = 10;

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-core/pom.xml
----------------------------------------------------------------------
diff --git a/storm-core/pom.xml b/storm-core/pom.xml
index ad4972e..727631d 100644
--- a/storm-core/pom.xml
+++ b/storm-core/pom.xml
@@ -291,12 +291,14 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.zookeeper</groupId>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-core/test/clj/org/apache/storm/cluster_test.clj
----------------------------------------------------------------------
diff --git a/storm-core/test/clj/org/apache/storm/cluster_test.clj 
b/storm-core/test/clj/org/apache/storm/cluster_test.clj
index b1cdd37..c6c87c1 100644
--- a/storm-core/test/clj/org/apache/storm/cluster_test.clj
+++ b/storm-core/test/clj/org/apache/storm/cluster_test.clj
@@ -353,7 +353,7 @@
           curator-frameworke (reify CuratorFramework (^void close [this] nil))]
       ;; No need for when clauses because we just want to return nil
       (with-open [_ (MockedClientZookeeper. zk-mock)]
-        (. (Mockito/when (.mkClientImpl zk-mock (Mockito/anyMap) 
(Mockito/anyList) (Mockito/any) (Mockito/anyString) (Mockito/any) 
(Mockito/anyMap))) (thenReturn curator-frameworke))
+        (. (Mockito/when (.mkClientImpl zk-mock (Mockito/anyMap) (Mockito/any) 
(Mockito/any) (Mockito/anyString) (Mockito/any) (Mockito/any))) (thenReturn 
curator-frameworke))
         (ClusterUtils/mkStateStorage {} nil nil (ClusterStateContext.))
         (.mkdirsImpl (Mockito/verify zk-mock (Mockito/times 1)) (Mockito/any) 
(Mockito/anyString) (Mockito/eq nil))))
     (let [distributed-state-storage (reify IStateStorage

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-core/test/clj/org/apache/storm/drpc_test.clj
----------------------------------------------------------------------
diff --git a/storm-core/test/clj/org/apache/storm/drpc_test.clj 
b/storm-core/test/clj/org/apache/storm/drpc_test.clj
index 67e18c1..c9b955a 100644
--- a/storm-core/test/clj/org/apache/storm/drpc_test.clj
+++ b/storm-core/test/clj/org/apache/storm/drpc_test.clj
@@ -28,7 +28,7 @@
   (:import [org.apache.storm.generated DRPCExecutionException DRPCRequest])
   (:import [java.util.concurrent ConcurrentLinkedQueue])
   (:import [org.apache.storm Thrift])
-  (:import [org.mockito ArgumentCaptor Mockito Matchers])
+  (:import [org.mockito ArgumentCaptor Mockito ArgumentMatchers])
   (:use [org.apache.storm config])
   (:use [org.apache.storm clojure])
   (:use [conjure core]))
@@ -239,9 +239,9 @@
     ;; mock getServiceId s.t. DRPCSpout uses our handler
     (. (Mockito/when (.getServiceId handler)) thenReturn service-id)
     ;; mock fetchRequest s.t. DRPCSpout has a request to process on nextTuple
-    (. (Mockito/when (.fetchRequest handler (Matchers/anyString))) thenReturn 
(DRPCRequest. "square 2" "bar"))
+    (. (Mockito/when (.fetchRequest handler (ArgumentMatchers/anyString))) 
thenReturn (DRPCRequest. "square 2" "bar"))
     ;; mock failRequest s.t. DRPCSpout attempts retry on .fail
-    (.failRequest (.when (Mockito/doThrow (DRPCExecutionException.)) handler) 
(Matchers/anyString))
+    (.failRequest (.when (Mockito/doThrow (into-array 
[(DRPCExecutionException.)])) handler) (ArgumentMatchers/anyString))
 
     (let [spout (DRPCSpout. "test" handler)]
       ;; tell the spout to use the mock collector
@@ -253,7 +253,7 @@
       (.fail spout (.getValue captor))
       ;; attempt 2 reconnects 
       (.reconnectClient (Mockito/verify handler (Mockito/times 2)))
-      (.failRequest (Mockito/verify handler (Mockito/times 3)) 
(Matchers/anyString)))))
+      (.failRequest (Mockito/verify handler (Mockito/times 3)) 
(ArgumentMatchers/anyString)))))
 
 (deftest test-drpc-stops-retrying-after-successful-reconnect
   (let [handler (Mockito/mock DRPCInvocationsClient 
@@ -267,10 +267,10 @@
     ;; mock getServiceId s.t. DRPCSpout uses our handler
     (. (Mockito/when (.getServiceId handler)) thenReturn service-id)
     ;; mock fetchRequest s.t. DRPCSpout has a request to process on nextTuple
-    (. (Mockito/when (.fetchRequest handler (Matchers/anyString))) thenReturn 
(DRPCRequest. "square 2" "bar"))
+    (. (Mockito/when (.fetchRequest handler (ArgumentMatchers/anyString))) 
thenReturn (DRPCRequest. "square 2" "bar"))
     ;; mock failRequest s.t. DRPCSpout attempts retry on .fail the first time 
only, but succeed the second time
     (.failRequest (.when (.doNothing
-                         (Mockito/doThrow (DRPCExecutionException.))) handler) 
(Matchers/anyString))
+                         (Mockito/doThrow (into-array 
[(DRPCExecutionException.)]))) handler) (ArgumentMatchers/anyString))
 
     (let [spout (DRPCSpout. "test" handler)]
       ;; tell the spout to use the mock collector
@@ -282,4 +282,4 @@
       (.fail spout (.getValue captor))
       ;; reconnect once after a failure
       (.reconnectClient (Mockito/verify handler (Mockito/times 1)))
-      (.failRequest (Mockito/verify handler (Mockito/times 2)) 
(Matchers/anyString)))))
+      (.failRequest (Mockito/verify handler (Mockito/times 2)) 
(ArgumentMatchers/anyString)))))

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-server/pom.xml
----------------------------------------------------------------------
diff --git a/storm-server/pom.xml b/storm-server/pom.xml
index 7449257..2e803d0 100644
--- a/storm-server/pom.xml
+++ b/storm-server/pom.xml
@@ -84,7 +84,11 @@
 
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
 
     </dependencies>

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-server/src/main/java/org/apache/storm/daemon/supervisor/BasicContainer.java
----------------------------------------------------------------------
diff --git 
a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/BasicContainer.java
 
b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/BasicContainer.java
index 1e25e50..16f157d 100644
--- 
a/storm-server/src/main/java/org/apache/storm/daemon/supervisor/BasicContainer.java
+++ 
b/storm-server/src/main/java/org/apache/storm/daemon/supervisor/BasicContainer.java
@@ -269,7 +269,7 @@ public class BasicContainer extends Container {
         @SuppressWarnings("unchecked")
         Map<String, String> env = (Map<String, String>) 
_topoConf.get(Config.TOPOLOGY_ENVIRONMENT);
         if (env == null) {
-            env = new HashMap<String, String>();
+            env = new HashMap<>();
         }
 
         String str = ConfigUtils.workerArtifactsPidPath(_conf, _topologyId, 
_port);

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-server/src/test/java/org/apache/storm/localizer/AsyncLocalizerTest.java
----------------------------------------------------------------------
diff --git 
a/storm-server/src/test/java/org/apache/storm/localizer/AsyncLocalizerTest.java 
b/storm-server/src/test/java/org/apache/storm/localizer/AsyncLocalizerTest.java
index f49be63..34e9e8e 100644
--- 
a/storm-server/src/test/java/org/apache/storm/localizer/AsyncLocalizerTest.java
+++ 
b/storm-server/src/test/java/org/apache/storm/localizer/AsyncLocalizerTest.java
@@ -22,8 +22,17 @@ import static 
org.apache.storm.localizer.AsyncLocalizer.USERCACHE;
 import static org.junit.Assert.*;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.endsWith;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.startsWith;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import com.google.common.base.Joiner;
 import java.io.File;

http://git-wip-us.apache.org/repos/asf/storm/blob/3503dcea/storm-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/storm-webapp/pom.xml b/storm-webapp/pom.xml
index 7c2bcf2..2846146 100644
--- a/storm-webapp/pom.xml
+++ b/storm-webapp/pom.xml
@@ -61,18 +61,17 @@
             <groupId>io.dropwizard.metrics</groupId>
             <artifactId>metrics-core</artifactId>
         </dependency>
-        <!-- hamcrest-core dependency is shaded inside the mockito-all and 
junit depends on newer version of hamcrest-core.
-        To give higher precedence to classes from newer version of 
hamcrest-core, Junit has been placed above mockito.
-         -->
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>

Reply via email to