diff options
author | Eric Anderson <ejona@google.com> | 2018-07-09 11:13:10 -0700 |
---|---|---|
committer | Eric Anderson <ejona@google.com> | 2018-07-10 09:14:49 -0700 |
commit | 32d50eb3b3ed9d0701ad352dacc7d71e2d6425f1 (patch) | |
tree | a2e8bc540b13ba4af0d14437cb93c1e2b268b43e /netty | |
parent | 9222dc5d018c1246e1298032750d445274c4b0b8 (diff) | |
download | grpc-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.java | 2 | ||||
-rw-r--r-- | netty/src/test/java/io/grpc/netty/TlsTest.java | 19 |
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: |