This is an automated email from the ASF dual-hosted git repository.
lcwik pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new 7730b45 [BEAM-10688] Euphoria assumes that all type descriptors are
resolvable to coders (and serializable) which isn't true.
new dce1eb8 Merge pull request #12547 from lukecwik/beam10688
7730b45 is described below
commit 7730b459aca8b4d6586080b1184445ed81fd7d25
Author: Luke Cwik <[email protected]>
AuthorDate: Mon Aug 10 20:54:56 2020 -0700
[BEAM-10688] Euphoria assumes that all type descriptors are resolvable to
coders (and serializable) which isn't true.
Euphoria should be propagating forward coders and not type descriptors as a
longer term solution.
I also fixed the tests to specify @RunWith because in certain scenarios
JUnit may fail to detect the tests.
---
.../sdk/extensions/euphoria/core/client/operator/base/Operator.java | 2 +-
.../beam/sdk/extensions/euphoria/core/client/type/TypeAwareness.java | 5 ++++-
.../beam/sdk/extensions/euphoria/core/client/lib/SplitTest.java | 3 +++
.../sdk/extensions/euphoria/core/client/operator/CountByKeyTest.java | 3 +++
.../sdk/extensions/euphoria/core/client/operator/DistinctTest.java | 3 +++
.../sdk/extensions/euphoria/core/client/operator/FilterTest.java | 3 +++
.../sdk/extensions/euphoria/core/client/operator/FlatMapTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/client/operator/JoinTest.java | 3 +++
.../extensions/euphoria/core/client/operator/MapElementsTest.java | 3 +++
.../extensions/euphoria/core/client/operator/ReduceByKeyTest.java | 3 +++
.../extensions/euphoria/core/client/operator/ReduceWindowTest.java | 3 +++
.../sdk/extensions/euphoria/core/client/operator/SumByKeyTest.java | 3 +++
.../sdk/extensions/euphoria/core/client/operator/TopPerKeyTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/client/operator/UnionTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/client/util/IOUtilsTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/client/util/SumsTest.java | 3 +++
.../sdk/extensions/euphoria/core/docs/DocumentationExamplesTest.java | 3 +++
.../sdk/extensions/euphoria/core/testkit/BroadcastHashJoinTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/CountByKeyTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/DistinctTest.java | 3 +++
.../apache/beam/sdk/extensions/euphoria/core/testkit/FilterTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/FlatMapTest.java | 3 +++
.../apache/beam/sdk/extensions/euphoria/core/testkit/JoinTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/MapElementsTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/ReduceByKeyTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/ReduceWindowTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/SumByKeyTest.java | 3 +++
.../beam/sdk/extensions/euphoria/core/testkit/TopPerKeyTest.java | 3 +++
.../apache/beam/sdk/extensions/euphoria/core/testkit/UnionTest.java | 3 +++
.../euphoria/core/translate/BeamMetricsTranslationTest.java | 3 +++
.../euphoria/core/translate/BroadcastHashJoinTranslatorTest.java | 3 +++
.../euphoria/core/translate/SingleJvmAccumulatorProviderTest.java | 3 +++
.../euphoria/core/translate/TimestampExtractTransformTest.java | 3 +++
.../euphoria/core/translate/collector/SingleValueCollectorTest.java | 3 +++
34 files changed, 101 insertions(+), 2 deletions(-)
diff --git
a/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/base/Operator.java
b/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/base/Operator.java
index 8273152..d5c1220 100644
---
a/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/base/Operator.java
+++
b/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/base/Operator.java
@@ -32,7 +32,7 @@ public abstract class Operator<OutputT> implements
Serializable, TypeAware.Outpu
private final @Nullable String name;
/** The type of output elements. */
- private final @Nullable TypeDescriptor<OutputT> outputType;
+ private final transient @Nullable TypeDescriptor<OutputT> outputType;
protected Operator(@Nullable String name, @Nullable TypeDescriptor<OutputT>
outputType) {
this.name = name;
diff --git
a/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/type/TypeAwareness.java
b/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/type/TypeAwareness.java
index 2f31920..b8efec1 100644
---
a/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/type/TypeAwareness.java
+++
b/sdks/java/extensions/euphoria/src/main/java/org/apache/beam/sdk/extensions/euphoria/core/client/type/TypeAwareness.java
@@ -27,6 +27,9 @@ public class TypeAwareness {
@SuppressWarnings("unchecked")
public static <T> TypeDescriptor<T> orObjects(Optional<TypeDescriptor<T>>
maybeType) {
- return maybeType.orElse((TypeDescriptor) OBJECT_TYPE);
+ if (maybeType.isPresent() && !maybeType.get().hasUnresolvedParameters()) {
+ return maybeType.get();
+ }
+ return (TypeDescriptor) OBJECT_TYPE;
}
}
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/lib/SplitTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/lib/SplitTest.java
index d3fc52c..66ba0e0 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/lib/SplitTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/lib/SplitTest.java
@@ -28,8 +28,11 @@ import
org.apache.beam.sdk.extensions.euphoria.core.client.operator.TestUtils;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test suite for {@link Split} library. */
+@RunWith(JUnit4.class)
public class SplitTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/CountByKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/CountByKeyTest.java
index ec5cb80..5f50093 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/CountByKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/CountByKeyTest.java
@@ -33,8 +33,11 @@ import org.apache.beam.sdk.values.TypeDescriptors;
import org.apache.beam.sdk.values.WindowingStrategy.AccumulationMode;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator CountByKey. */
+@RunWith(JUnit4.class)
public class CountByKeyTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/DistinctTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/DistinctTest.java
index c9fb119..6dff9b6 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/DistinctTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/DistinctTest.java
@@ -30,8 +30,11 @@ import org.apache.beam.sdk.values.TypeDescriptors;
import org.apache.beam.sdk.values.WindowingStrategy.AccumulationMode;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator Distinct. */
+@RunWith(JUnit4.class)
public class DistinctTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FilterTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FilterTest.java
index f00c88d..cb59d75 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FilterTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FilterTest.java
@@ -25,8 +25,11 @@ import static org.junit.Assert.assertTrue;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator Filter. */
+@RunWith(JUnit4.class)
public class FilterTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FlatMapTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FlatMapTest.java
index f726eb9..cfec139 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FlatMapTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/FlatMapTest.java
@@ -28,8 +28,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator FlatMap. */
+@RunWith(JUnit4.class)
public class FlatMapTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/JoinTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/JoinTest.java
index b9c8256..a4d8760 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/JoinTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/JoinTest.java
@@ -39,8 +39,11 @@ import
org.apache.beam.sdk.values.WindowingStrategy.AccumulationMode;
import org.joda.time.Duration;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator Join. */
+@RunWith(JUnit4.class)
public class JoinTest {
@Rule public TestPipeline pipeline = TestPipeline.create();
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/MapElementsTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/MapElementsTest.java
index 409701d..3e0e971 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/MapElementsTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/MapElementsTest.java
@@ -27,8 +27,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator MapElement. */
+@RunWith(JUnit4.class)
public class MapElementsTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceByKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceByKeyTest.java
index cbf5474..4dc56e1 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceByKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceByKeyTest.java
@@ -42,8 +42,11 @@ import
org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.Iterable
import org.apache.beam.vendor.guava.v26_0_jre.com.google.common.collect.Lists;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator ReduceByKey. */
+@RunWith(JUnit4.class)
public class ReduceByKeyTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceWindowTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceWindowTest.java
index 91e98ab..151e53e 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceWindowTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/ReduceWindowTest.java
@@ -33,8 +33,11 @@ import org.apache.beam.sdk.values.TypeDescriptors;
import org.apache.beam.sdk.values.WindowingStrategy.AccumulationMode;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test behavior of operator {@code ReduceWindow}. */
+@RunWith(JUnit4.class)
public class ReduceWindowTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/SumByKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/SumByKeyTest.java
index 53cf690..377055a 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/SumByKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/SumByKeyTest.java
@@ -32,8 +32,11 @@ import org.apache.beam.sdk.values.TypeDescriptors;
import org.apache.beam.sdk.values.WindowingStrategy.AccumulationMode;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test behavior of operator {@code SumByKey}. */
+@RunWith(JUnit4.class)
public class SumByKeyTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/TopPerKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/TopPerKeyTest.java
index 1680452..b7973b1 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/TopPerKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/TopPerKeyTest.java
@@ -32,8 +32,11 @@ import org.apache.beam.sdk.values.TypeDescriptors;
import org.apache.beam.sdk.values.WindowingStrategy.AccumulationMode;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test behavior of operator {@code TopPerKey}. */
+@RunWith(JUnit4.class)
public class TopPerKeyTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/UnionTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/UnionTest.java
index db15c6a..120a29d 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/UnionTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/operator/UnionTest.java
@@ -25,8 +25,11 @@ import org.apache.beam.sdk.testing.TestPipeline;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test behavior of operator {@code Union}. */
+@RunWith(JUnit4.class)
public class UnionTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/IOUtilsTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/IOUtilsTest.java
index 5b5db4b..d881c2b 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/IOUtilsTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/IOUtilsTest.java
@@ -25,8 +25,11 @@ import java.util.Arrays;
import java.util.stream.Stream;
import org.apache.beam.sdk.extensions.euphoria.core.util.IOUtils;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test behavior of IOUtils. */
+@RunWith(JUnit4.class)
public class IOUtilsTest {
@Test(expected = IOException.class)
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/SumsTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/SumsTest.java
index 38efa7b..80480ad 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/SumsTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/client/util/SumsTest.java
@@ -22,8 +22,11 @@ import static org.junit.Assert.assertEquals;
import java.util.stream.Stream;
import
org.apache.beam.sdk.extensions.euphoria.core.client.operator.ReduceByKey;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test suite for @{link Sums}. */
+@RunWith(JUnit4.class)
public class SumsTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/docs/DocumentationExamplesTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/docs/DocumentationExamplesTest.java
index 404d6d1..147aa38 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/docs/DocumentationExamplesTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/docs/DocumentationExamplesTest.java
@@ -76,12 +76,15 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/**
* Contains all the examples from documentation page. Not all of them contains
asserts, some do, but
* the rest is often here just to confirm that they compile. Once something
break or changes, the
* documentation needs to change too.
*/
+@RunWith(JUnit4.class)
public class DocumentationExamplesTest {
private List<String> textLineByLine =
Arrays.asList(
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/BroadcastHashJoinTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/BroadcastHashJoinTest.java
index cd840a7..262e768 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/BroadcastHashJoinTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/BroadcastHashJoinTest.java
@@ -35,8 +35,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Collection of broadcast hash join tests. */
+@RunWith(JUnit4.class)
public class BroadcastHashJoinTest extends AbstractOperatorTest {
private abstract static class TestCase<LeftT, RightT, OutputT>
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/CountByKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/CountByKeyTest.java
index 7d0d5bf..d06cff8 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/CountByKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/CountByKeyTest.java
@@ -29,8 +29,11 @@ import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator {@code CountByKey}. */
+@RunWith(JUnit4.class)
public class CountByKeyTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/DistinctTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/DistinctTest.java
index a81bc77..77a25fb 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/DistinctTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/DistinctTest.java
@@ -30,8 +30,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test for the {@link Distinct} operator. */
+@RunWith(JUnit4.class)
public class DistinctTest extends AbstractOperatorTest {
/** Test simple duplicates. */
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FilterTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FilterTest.java
index 7ee64f3..ac883fb 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FilterTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FilterTest.java
@@ -24,8 +24,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator {@code Filter}. */
+@RunWith(JUnit4.class)
public class FilterTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FlatMapTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FlatMapTest.java
index 36d1519..15fe998 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FlatMapTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/FlatMapTest.java
@@ -30,8 +30,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator {@code FlatMap}. */
+@RunWith(JUnit4.class)
public class FlatMapTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/JoinTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/JoinTest.java
index 183c4f6..9a11687 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/JoinTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/JoinTest.java
@@ -48,8 +48,11 @@ import org.checkerframework.checker.nullness.qual.Nullable;
import org.joda.time.Duration;
import org.joda.time.Instant;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator {@code Join}. */
+@RunWith(JUnit4.class)
public class JoinTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/MapElementsTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/MapElementsTest.java
index 8ff8a92..3003824 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/MapElementsTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/MapElementsTest.java
@@ -30,8 +30,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Tests for operator {@code MapElements}. */
+@RunWith(JUnit4.class)
public class MapElementsTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceByKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceByKeyTest.java
index dc947ca..f7010ba 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceByKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceByKeyTest.java
@@ -58,8 +58,11 @@ import org.joda.time.Duration;
import org.joda.time.Instant;
import org.junit.Ignore;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator {@code ReduceByKey}. */
+@RunWith(JUnit4.class)
public class ReduceByKeyTest extends AbstractOperatorTest {
/** Validates the output type upon a `.reduceBy` operation on global window.
*/
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceWindowTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceWindowTest.java
index 33d08b8..91b7867 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceWindowTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/ReduceWindowTest.java
@@ -29,8 +29,11 @@ import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator {@code ReduceByKey}. */
+@RunWith(JUnit4.class)
public class ReduceWindowTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/SumByKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/SumByKeyTest.java
index cf5672e..89dabdf 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/SumByKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/SumByKeyTest.java
@@ -27,8 +27,11 @@ import org.apache.beam.sdk.values.KV;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptor;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test operator {@code SumByKey}. */
+@RunWith(JUnit4.class)
public class SumByKeyTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/TopPerKeyTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/TopPerKeyTest.java
index ac31ad5..f8d662f 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/TopPerKeyTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/TopPerKeyTest.java
@@ -32,8 +32,11 @@ import org.apache.beam.sdk.values.TypeDescriptor;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.joda.time.Duration;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Correctness tests of {@link TopPerKey}. */
+@RunWith(JUnit4.class)
public class TopPerKeyTest extends AbstractOperatorTest {
@Test
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/UnionTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/UnionTest.java
index 46189da..b8b1cb7 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/UnionTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/testkit/UnionTest.java
@@ -26,8 +26,11 @@ import org.apache.beam.sdk.transforms.Create;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test for operator {@code Union}. */
+@RunWith(JUnit4.class)
public class UnionTest extends AbstractOperatorTest {
private static PCollection<Integer> createDataset(Pipeline pipeline,
Integer... data) {
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BeamMetricsTranslationTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BeamMetricsTranslationTest.java
index 8edf349..eb15c61 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BeamMetricsTranslationTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BeamMetricsTranslationTest.java
@@ -40,8 +40,11 @@ import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Testing translation of accumulators to Beam {@link
org.apache.beam.sdk.metrics.Metrics}. */
+@RunWith(JUnit4.class)
public class BeamMetricsTranslationTest {
@Rule public TestPipeline testPipeline = TestPipeline.create();
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BroadcastHashJoinTranslatorTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BroadcastHashJoinTranslatorTest.java
index 1e4d6e8..41d0104 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BroadcastHashJoinTranslatorTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/BroadcastHashJoinTranslatorTest.java
@@ -32,8 +32,11 @@ import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Unit tests of {@link BroadcastHashJoinTranslator}. */
+@RunWith(JUnit4.class)
public class BroadcastHashJoinTranslatorTest {
@Rule public TestPipeline p = TestPipeline.create();
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/SingleJvmAccumulatorProviderTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/SingleJvmAccumulatorProviderTest.java
index 6a8f8b4..4872b8e 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/SingleJvmAccumulatorProviderTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/SingleJvmAccumulatorProviderTest.java
@@ -26,12 +26,15 @@ import
org.apache.beam.sdk.extensions.euphoria.core.testkit.accumulators.SingleJ
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/**
* Unit test of {@link SingleJvmAccumulatorProvider}. Note that this test is
placed outside of
* {@code testkit} package on purpouse. All the other tests in {@code testkit}
are not runnable by
* JUnit directly.
*/
+@RunWith(JUnit4.class)
public class SingleJvmAccumulatorProviderTest {
private static final String TEST_COUNTER_NAME = "test-counter";
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/TimestampExtractTransformTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/TimestampExtractTransformTest.java
index 2d37ae3..8acede9 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/TimestampExtractTransformTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/TimestampExtractTransformTest.java
@@ -25,8 +25,11 @@ import org.apache.beam.sdk.values.KV;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.TypeDescriptors;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** Test suite for {@link TimetampExtractTransform}. */
+@RunWith(JUnit4.class)
public class TimestampExtractTransformTest {
@SuppressWarnings("unchecked")
diff --git
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/collector/SingleValueCollectorTest.java
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/collector/SingleValueCollectorTest.java
index 1663584..ac7f4f7 100644
---
a/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/collector/SingleValueCollectorTest.java
+++
b/sdks/java/extensions/euphoria/src/test/java/org/apache/beam/sdk/extensions/euphoria/core/translate/collector/SingleValueCollectorTest.java
@@ -26,8 +26,11 @@ import
org.apache.beam.sdk.extensions.euphoria.core.testkit.accumulators.SingleJ
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
/** {@link SingleValueCollector} unit tests. */
+@RunWith(JUnit4.class)
public class SingleValueCollectorTest {
private static final String TEST_COUNTER_NAME = "test-counter";