Skip to content

Commit c30176f

Browse files
committed
Disable ChannelAndServerBuilderTest on Java 9
1 parent 5dea35b commit c30176f

File tree

1 file changed

+18
-31
lines changed

1 file changed

+18
-31
lines changed

interop-testing/src/test/java/io/grpc/ChannelAndServerBuilderTest.java

+18-31
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import java.lang.reflect.Method;
2626
import java.lang.reflect.Modifier;
2727
import java.util.ArrayList;
28-
import java.util.Arrays;
2928
import java.util.Collection;
3029
import java.util.List;
3130
import org.junit.Assume;
@@ -37,6 +36,8 @@
3736

3837
/**
3938
* Tests that Channel and Server builders properly hide the static constructors.
39+
*
40+
* <p>This test does nothing on Java 9.
4041
*/
4142
@RunWith(Parameterized.class)
4243
public class ChannelAndServerBuilderTest {
@@ -49,39 +50,25 @@ public class ChannelAndServerBuilderTest {
4950
*/
5051
@Parameters(name = "class={0}")
5152
public static Collection<Object[]> params() throws Exception {
52-
@SuppressWarnings("unchecked")
53-
Collection<Class<?>> classesToCheck = Arrays.asList(
54-
Class.forName("io.grpc.netty.NettyServerBuilder"),
55-
Class.forName("io.grpc.netty.NettyChannelBuilder"),
56-
Class.forName("io.grpc.okhttp.OkHttpChannelBuilder"),
57-
Class.forName("io.grpc.internal.AbstractServerImplBuilder"),
58-
Class.forName("io.grpc.internal.AbstractManagedChannelImplBuilder"),
59-
Class.forName("io.grpc.inprocess.InProcessChannelBuilder"),
60-
Class.forName("io.grpc.inprocess.InProcessServerBuilder"),
61-
Class.forName("io.grpc.ForwardingChannelBuilder"));
62-
6353
ClassLoader loader = ChannelAndServerBuilderTest.class.getClassLoader();
64-
Collection<ClassInfo> infos = ClassPath.from(loader).getTopLevelClassesRecursive("io.grpc");
65-
// If infos is empty, then we can't verify our hard-coded list. Assume that's due to Java 9.
66-
if (!infos.isEmpty()) {
67-
List<Class<?>> classes = new ArrayList<Class<?>>();
68-
for (ClassInfo classInfo : infos) {
69-
Class<?> clazz = Class.forName(classInfo.getName(), false /*initialize*/, loader);
70-
if (ServerBuilder.class.isAssignableFrom(clazz) && clazz != ServerBuilder.class) {
71-
classes.add(clazz);
72-
} else if (ManagedChannelBuilder.class.isAssignableFrom(clazz)
73-
&& clazz != ManagedChannelBuilder.class) {
74-
classes.add(clazz);
75-
}
76-
}
77-
Truth.assertWithMessage("Unable to find any builder classes").that(classes).isNotEmpty();
78-
Truth.assertThat(classes).containsExactlyElementsIn(classesToCheck);
54+
Collection<ClassInfo> classInfos =
55+
ClassPath.from(loader).getTopLevelClassesRecursive("io.grpc");
56+
// Java 9 doesn't expose the URLClassLoader, which breaks searching through the classpath
57+
if (classInfos.isEmpty()) {
58+
return new ArrayList<Object[]>();
7959
}
80-
List<Object[]> params = new ArrayList<Object[]>();
81-
for (Class<?> clazz : classesToCheck) {
82-
params.add(new Object[]{clazz});
60+
List<Object[]> classes = new ArrayList<Object[]>();
61+
for (ClassInfo classInfo : classInfos) {
62+
Class<?> clazz = Class.forName(classInfo.getName(), false /*initialize*/, loader);
63+
if (ServerBuilder.class.isAssignableFrom(clazz) && clazz != ServerBuilder.class) {
64+
classes.add(new Object[]{clazz});
65+
} else if (ManagedChannelBuilder.class.isAssignableFrom(clazz)
66+
&& clazz != ManagedChannelBuilder.class) {
67+
classes.add(new Object[]{clazz});
68+
}
8369
}
84-
return params;
70+
Truth.assertWithMessage("Unable to find any builder classes").that(classes).isNotEmpty();
71+
return classes;
8572
}
8673

8774
@Test

0 commit comments

Comments
 (0)