You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by xv...@apache.org on 2019/05/06 19:29:06 UTC
[incubator-druid] branch master updated: Update mocking libraries
for Java 11 support (#7596)
This is an automated email from the ASF dual-hosted git repository.
xvrl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new f7bfe8f Update mocking libraries for Java 11 support (#7596)
f7bfe8f is described below
commit f7bfe8f2697277f4216d90607d01bfd26e813ab3
Author: Xavier Léauté <xv...@apache.org>
AuthorDate: Mon May 6 12:28:56 2019 -0700
Update mocking libraries for Java 11 support (#7596)
* update easymock / powermock for to 4.0.2 / 2.0.2 for JDK11 support
* update tests to use new easymock interfaces
* fix tests failing due to easymock fixes
* remove dependency on jmockit
* fix race condition in ResourcePoolTest
---
.../util/http/client/pool/ResourcePoolTest.java | 8 ++-
extensions-contrib/moving-average-query/pom.xml | 14 +----
.../movingaverage/MovingAverageQueryTest.java | 72 +++++++++-------------
.../kafka/supervisor/KafkaSupervisorTest.java | 4 +-
.../indexing/kinesis/KinesisIndexTaskTest.java | 13 +++-
.../kinesis/supervisor/KinesisSupervisorTest.java | 6 +-
pom.xml | 4 +-
.../query/ChainedExecutionQueryRunnerTest.java | 2 +-
.../druid/client/CachingClusteredClientTest.java | 8 +--
9 files changed, 61 insertions(+), 70 deletions(-)
diff --git a/core/src/test/java/org/apache/druid/java/util/http/client/pool/ResourcePoolTest.java b/core/src/test/java/org/apache/druid/java/util/http/client/pool/ResourcePoolTest.java
index 2a0b4a5..b7e074c 100644
--- a/core/src/test/java/org/apache/druid/java/util/http/client/pool/ResourcePoolTest.java
+++ b/core/src/test/java/org/apache/druid/java/util/http/client/pool/ResourcePoolTest.java
@@ -209,13 +209,19 @@ public class ResourcePoolTest
blockedThread.waitForValueToBeGotten(1, TimeUnit.SECONDS);
pool.close();
-
EasyMock.verify(resourceFactory);
EasyMock.reset(resourceFactory);
+ // billy0Thread calling ResourceContainer.returnResource() will result
+ // in a call to resourceFactory.close() when latch2 is triggered
+ resourceFactory.close("billy0");
+ EasyMock.expectLastCall().once();
EasyMock.replay(resourceFactory);
latch2.countDown();
blockedThread.waitForValueToBeGotten(1, TimeUnit.SECONDS);
+ // wait for billy0Thread to have called resourceFactory.close() to avoid race
+ // between billy0Thread calling it and verify() checking for the call
+ billy0Thread.join();
EasyMock.verify(resourceFactory);
EasyMock.reset(resourceFactory);
diff --git a/extensions-contrib/moving-average-query/pom.xml b/extensions-contrib/moving-average-query/pom.xml
index ae6f68a..92b3f01 100644
--- a/extensions-contrib/moving-average-query/pom.xml
+++ b/extensions-contrib/moving-average-query/pom.xml
@@ -39,26 +39,14 @@
<dependencies>
<dependency>
- <groupId>org.jmockit</groupId>
- <artifactId>jmockit</artifactId>
- <version>1.25</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-library</artifactId>
- <version>1.3</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
- <version>2.8.3</version>
+ <version>${jackson.version}</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/MovingAverageQueryTest.java b/extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/MovingAverageQueryTest.java
index a7e1eb7..e4074d7 100644
--- a/extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/MovingAverageQueryTest.java
+++ b/extensions-contrib/moving-average-query/src/test/java/org/apache/druid/query/movingaverage/MovingAverageQueryTest.java
@@ -30,8 +30,6 @@ import com.google.inject.Injector;
import com.google.inject.Module;
import com.google.inject.name.Names;
import com.google.inject.util.Providers;
-import mockit.Mock;
-import mockit.MockUp;
import org.apache.druid.client.CachingClusteredClient;
import org.apache.druid.client.DruidServer;
import org.apache.druid.client.ImmutableDruidServer;
@@ -62,6 +60,7 @@ import org.apache.druid.query.QuerySegmentWalker;
import org.apache.druid.query.QueryToolChestWarehouse;
import org.apache.druid.query.Result;
import org.apache.druid.query.RetryQueryRunnerConfig;
+import org.apache.druid.query.SegmentDescriptor;
import org.apache.druid.query.groupby.GroupByQuery;
import org.apache.druid.query.movingaverage.test.TestConfig;
import org.apache.druid.query.timeseries.TimeseriesQuery;
@@ -70,6 +69,7 @@ import org.apache.druid.server.ClientQuerySegmentWalker;
import org.apache.druid.server.initialization.ServerConfig;
import org.apache.druid.timeline.TimelineLookup;
import org.hamcrest.core.IsInstanceOf;
+import org.joda.time.Interval;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -132,7 +132,33 @@ public class MovingAverageQueryTest
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("queryTest");
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(0);
binder.bindConstant().annotatedWith(Names.named("tlsServicePort")).to(1);
- binder.bind(QuerySegmentWalker.class).toProvider(Providers.of(null));
+ binder.bind(QuerySegmentWalker.class).toProvider(Providers.of(new QuerySegmentWalker()
+ {
+ @Override
+ public <T> QueryRunner<T> getQueryRunnerForIntervals(Query<T> query, Iterable<Interval> intervals)
+ {
+ return new QueryRunner<T>()
+ {
+ @Override
+ @SuppressWarnings("unchecked")
+ public Sequence<T> run(QueryPlus queryPlus, Map responseContext)
+ {
+ if (query instanceof GroupByQuery) {
+ return (Sequence<T>) Sequences.simple(groupByResults);
+ } else if (query instanceof TimeseriesQuery) {
+ return (Sequence<T>) Sequences.simple(timeseriesResults);
+ }
+ throw new UnsupportedOperationException("unexpected query type " + query.getType());
+ }
+ };
+ }
+
+ @Override
+ public <T> QueryRunner<T> getQueryRunnerForSegments(Query<T> query, Iterable<SegmentDescriptor> specs)
+ {
+ return getQueryRunnerForIntervals(query, null);
+ }
+ }));
}
);
@@ -293,46 +319,6 @@ public class MovingAverageQueryTest
@Test
public void testQuery() throws IOException
{
-
-
- // create mocks for nested queries
- @SuppressWarnings("unused")
-
- MockUp<GroupByQuery> groupByQuery = new MockUp<GroupByQuery>()
- {
- @Mock
- public QueryRunner getRunner(QuerySegmentWalker walker)
- {
- return new QueryRunner()
- {
- @Override
- public Sequence run(QueryPlus queryPlus, Map responseContext)
- {
- return Sequences.simple(groupByResults);
- }
- };
- }
- };
-
-
- @SuppressWarnings("unused")
- MockUp<TimeseriesQuery> timeseriesQuery = new MockUp<TimeseriesQuery>()
- {
- @Mock
- public QueryRunner getRunner(QuerySegmentWalker walker)
- {
- return new QueryRunner()
- {
- @Override
- public Sequence run(QueryPlus queryPlus, Map responseContext)
- {
- return Sequences.simple(timeseriesResults);
- }
- };
- }
- };
-
-
Query<?> query = jsonMapper.readValue(getQueryString(), Query.class);
assertThat(query, IsInstanceOf.instanceOf(getExpectedQueryType()));
diff --git a/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java b/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java
index b6e7b34..8686fc9 100644
--- a/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java
+++ b/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java
@@ -1740,8 +1740,8 @@ public class KafkaSupervisorTest extends EasyMockSupport
).andReturn(Futures.immediateFailedFuture(new RuntimeException())).times(2);
taskQueue.shutdown(
EasyMock.contains("sequenceName-0"),
- EasyMock.eq("All tasks in group [%s] failed to transition to publishing state"),
- EasyMock.eq(0)
+ EasyMock.eq("Task [%s] failed to respond to [set end offsets] in a timely manner, killing task"),
+ EasyMock.contains("sequenceName-0")
);
expectLastCall().times(2);
expect(taskQueue.add(capture(captured))).andReturn(true).times(2);
diff --git a/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/KinesisIndexTaskTest.java b/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/KinesisIndexTaskTest.java
index 969cc39..a04556d 100644
--- a/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/KinesisIndexTaskTest.java
+++ b/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/KinesisIndexTaskTest.java
@@ -1204,6 +1204,9 @@ public class KinesisIndexTaskTest extends EasyMockSupport
expect(recordSupplier.poll(anyLong())).andReturn(records.subList(2, 13)).once();
+ recordSupplier.close();
+ expectLastCall().once();
+
replayAll();
final KinesisIndexTask task = createTask(
@@ -1360,6 +1363,8 @@ public class KinesisIndexTaskTest extends EasyMockSupport
expect(recordSupplier.poll(anyLong())).andReturn(records.subList(2, 13)).once();
+ recordSupplier.close();
+ expectLastCall().once();
replayAll();
@@ -1533,7 +1538,7 @@ public class KinesisIndexTaskTest extends EasyMockSupport
.once();
recordSupplier.close();
- expectLastCall().once();
+ expectLastCall().atLeastOnce();
replayAll();
@@ -1896,6 +1901,9 @@ public class KinesisIndexTaskTest extends EasyMockSupport
.andReturn(Collections.emptyList())
.anyTimes();
+ recordSupplier.close();
+ expectLastCall().once();
+
replayAll();
final KinesisIndexTask task1 = createTask(
@@ -2015,6 +2023,9 @@ public class KinesisIndexTaskTest extends EasyMockSupport
recordSupplier.seek(anyObject(), anyString());
expectLastCall().anyTimes();
+ recordSupplier.close();
+ expectLastCall().once();
+
// simulate 1 record at a time
expect(recordSupplier.poll(anyLong())).andReturn(Collections.singletonList(records.get(0)))
.once()
diff --git a/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java b/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java
index cc5ae9e..2cf6c50 100644
--- a/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java
+++ b/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java
@@ -2026,8 +2026,8 @@ public class KinesisSupervisorTest extends EasyMockSupport
).andReturn(Futures.immediateFailedFuture(new RuntimeException())).times(2);
taskQueue.shutdown(
EasyMock.contains("sequenceName-0"),
- EasyMock.eq("All tasks in group [%s] failed to transition to publishing state"),
- EasyMock.eq(0)
+ EasyMock.eq("Task [%s] failed to respond to [set end offsets] in a timely manner, killing task"),
+ EasyMock.contains("sequenceName-0")
);
EasyMock.expectLastCall().times(2);
EasyMock.expect(taskQueue.add(EasyMock.capture(captured))).andReturn(true).times(2);
@@ -3062,7 +3062,7 @@ public class KinesisSupervisorTest extends EasyMockSupport
.anyTimes();
expect(taskClient.setEndOffsetsAsync(
EasyMock.anyString(),
- EasyMock.eq(ImmutableMap.of("0", "10")),
+ EasyMock.eq(ImmutableMap.of(shardId1, "10")),
EasyMock.anyBoolean()
))
.andReturn(Futures.immediateFuture(true))
diff --git a/pom.xml b/pom.xml
index d52dd1e..304f679 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,7 +94,7 @@
<slf4j.version>1.7.12</slf4j.version>
<!-- If compiling with different hadoop version also modify default hadoop coordinates in TaskConfig.java -->
<hadoop.compile.version>2.8.3</hadoop.compile.version>
- <powermock.version>1.6.6</powermock.version>
+ <powermock.version>2.0.2</powermock.version>
<aws.sdk.version>1.11.199</aws.sdk.version>
<caffeine.version>2.5.5</caffeine.version>
<!-- When upgrading ZK, edit docs and integration tests as well (integration-tests/docker-base/setup.sh) -->
@@ -790,7 +790,7 @@
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
- <version>3.4</version>
+ <version>4.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/processing/src/test/java/org/apache/druid/query/ChainedExecutionQueryRunnerTest.java b/processing/src/test/java/org/apache/druid/query/ChainedExecutionQueryRunnerTest.java
index 97c2890..b370e4c 100644
--- a/processing/src/test/java/org/apache/druid/query/ChainedExecutionQueryRunnerTest.java
+++ b/processing/src/test/java/org/apache/druid/query/ChainedExecutionQueryRunnerTest.java
@@ -207,7 +207,7 @@ public class ChainedExecutionQueryRunnerTest
final CountDownLatch queriesInterrupted = new CountDownLatch(2);
final CountDownLatch queryIsRegistered = new CountDownLatch(1);
- Capture<ListenableFuture> capturedFuture = new Capture<>();
+ Capture<ListenableFuture> capturedFuture = Capture.newInstance();
QueryWatcher watcher = EasyMock.createStrictMock(QueryWatcher.class);
watcher.registerQuery(
EasyMock.anyObject(),
diff --git a/server/src/test/java/org/apache/druid/client/CachingClusteredClientTest.java b/server/src/test/java/org/apache/druid/client/CachingClusteredClientTest.java
index ca3a309..59367c6 100644
--- a/server/src/test/java/org/apache/druid/client/CachingClusteredClientTest.java
+++ b/server/src/test/java/org/apache/druid/client/CachingClusteredClientTest.java
@@ -1874,8 +1874,8 @@ public class CachingClusteredClientTest
.andReturn(expectations.getQueryRunner())
.times(0, 1);
- final Capture<? extends QueryPlus> capture = new Capture();
- final Capture<? extends Map> context = new Capture();
+ final Capture<? extends QueryPlus> capture = Capture.newInstance();
+ final Capture<? extends Map> context = Capture.newInstance();
QueryRunner queryable = expectations.getQueryRunner();
if (query instanceof TimeseriesQuery) {
@@ -2023,8 +2023,8 @@ public class CachingClusteredClientTest
.andReturn(expectations.getQueryRunner())
.once();
- final Capture<? extends QueryPlus> capture = new Capture();
- final Capture<? extends Map> context = new Capture();
+ final Capture<? extends QueryPlus> capture = Capture.newInstance();
+ final Capture<? extends Map> context = Capture.newInstance();
queryCaptures.add(capture);
QueryRunner queryable = expectations.getQueryRunner();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org