aboutsummaryrefslogtreecommitdiff
path: root/netty
diff options
context:
space:
mode:
authorEric Anderson <ejona@google.com>2018-07-09 11:13:10 -0700
committerEric Anderson <ejona@google.com>2018-07-10 09:14:49 -0700
commit32d50eb3b3ed9d0701ad352dacc7d71e2d6425f1 (patch)
treea2e8bc540b13ba4af0d14437cb93c1e2b268b43e /netty
parent9222dc5d018c1246e1298032750d445274c4b0b8 (diff)
downloadgrpc-grpc-java-32d50eb3b3ed9d0701ad352dacc7d71e2d6425f1.tar.gz
netty: Fix regression in Java 9 ALPN support
Enable testing on Java 9+ in TlsTest, to prevent future regressions. Fixes #4620
Diffstat (limited to 'netty')
-rw-r--r--netty/src/main/java/io/grpc/netty/GrpcSslContexts.java2
-rw-r--r--netty/src/test/java/io/grpc/netty/TlsTest.java19
2 files changed, 15 insertions, 6 deletions
diff --git a/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java b/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java
index 49351887e..b6aed29ab 100644
--- a/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java
+++ b/netty/src/main/java/io/grpc/netty/GrpcSslContexts.java
@@ -219,6 +219,8 @@ public class GrpcSslContexts {
apc = ALPN;
} else if (JettyTlsUtil.isJettyNpnConfigured()) {
apc = NPN;
+ } else if (JettyTlsUtil.isJava9AlpnAvailable()) {
+ apc = ALPN;
} else {
throw new IllegalArgumentException(
SUN_PROVIDER_NAME + " selected, but Jetty NPN/ALPN unavailable");
diff --git a/netty/src/test/java/io/grpc/netty/TlsTest.java b/netty/src/test/java/io/grpc/netty/TlsTest.java
index 24fe7e8e1..c2539c983 100644
--- a/netty/src/test/java/io/grpc/netty/TlsTest.java
+++ b/netty/src/test/java/io/grpc/netty/TlsTest.java
@@ -65,7 +65,7 @@ import org.junit.runners.Parameterized.Parameters;
public class TlsTest {
public static enum TlsImpl {
- TCNATIVE, JETTY, CONSCRYPT;
+ TCNATIVE, JDK, CONSCRYPT;
}
/**
@@ -74,7 +74,7 @@ public class TlsTest {
@Parameters(name = "{0}")
public static Iterable<Object[]> data() {
return Arrays.asList(new Object[][] {
- {TlsImpl.TCNATIVE}, {TlsImpl.JETTY}, {TlsImpl.CONSCRYPT},
+ {TlsImpl.TCNATIVE}, {TlsImpl.JDK}, {TlsImpl.CONSCRYPT},
});
}
@@ -101,7 +101,7 @@ public class TlsTest {
Assume.assumeTrue(OpenSsl.isAvailable());
sslProvider = SslProvider.OPENSSL;
break;
- case JETTY:
+ case JDK:
Assume.assumeTrue(Arrays.asList(
SSLContext.getDefault().getSupportedSSLParameters().getCipherSuites())
.contains("TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"));
@@ -109,9 +109,16 @@ public class TlsTest {
jdkProvider = Security.getProvider("SunJSSE");
Assume.assumeNotNull(jdkProvider);
try {
- GrpcSslContexts.configure(SslContextBuilder.forClient(), jdkProvider);
- } catch (IllegalArgumentException ex) {
- Assume.assumeNoException("Jetty ALPN does not seem available", ex);
+ // Check for presence of an (ironic) class added in Java 9
+ Class.forName("java.lang.Runtime$Version");
+ // Java 9+
+ } catch (ClassNotFoundException ignored) {
+ // Before Java 9
+ try {
+ GrpcSslContexts.configure(SslContextBuilder.forClient(), jdkProvider);
+ } catch (IllegalArgumentException ex) {
+ Assume.assumeNoException("Not Java 9+ and Jetty ALPN does not seem available", ex);
+ }
}
break;
case CONSCRYPT: