From 61d7b04e805f8fc814ff90e1d032714853e8d3cc Mon Sep 17 00:00:00 2001 From: Rama Date: Tue, 10 Oct 2017 12:33:22 +0530 Subject: [PATCH 01/11] added ssl related methods for ManagedChannelBuilder --- .../java/io/grpc/ManagedChannelBuilder.java | 8 ++++++ .../inprocess/InProcessChannelBuilder.java | 19 ++++++++++++++ .../AbstractManagedChannelImplBuilder.java | 25 +++++++++++-------- .../io/grpc/netty/NettyChannelBuilder.java | 1 + 4 files changed, 42 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index 9f0df8c15d5..2bbbea43f38 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -16,6 +16,9 @@ package io.grpc; +import io.netty.handler.ssl.SslContext; + +import javax.net.ssl.SSLSocketFactory; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; @@ -160,6 +163,11 @@ public static ManagedChannelBuilder forTarget(String target) { @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1772") public abstract T usePlaintext(boolean skipNegotiation); + public abstract T sslContext(SslContext sslContext); + + public abstract T sslSocketFactory(SSLSocketFactory factory); + + /** * Provides a custom {@link NameResolver.Factory} for the channel. If this method is not called, * the builder will try the providers listed by {@link NameResolverProvider#providers()} for the diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index e994304aef6..d20263594f2 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -24,6 +24,9 @@ import io.grpc.internal.ConnectionClientTransport; import io.grpc.internal.GrpcUtil; import io.grpc.internal.SharedResourceHolder; +import io.netty.handler.ssl.SslContext; + +import javax.net.ssl.SSLSocketFactory; import java.net.SocketAddress; import java.util.concurrent.ScheduledExecutorService; @@ -87,6 +90,22 @@ public InProcessChannelBuilder usePlaintext(boolean skipNegotiation) { return this; } + /** + * Does nothing. + */ + @Override + public InProcessChannelBuilder sslContext(SslContext sslContext) { + return this; + } + + /** + * Does nothing. + */ + @Override + public InProcessChannelBuilder sslSocketFactory(SSLSocketFactory factory) { + return this; + } + @Override @Internal protected ClientTransportFactory buildTransportFactory() { diff --git a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java index 2c210dd83a0..0f5e6b863ad 100644 --- a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java +++ b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java @@ -23,17 +23,8 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.instrumentation.stats.Stats; import com.google.instrumentation.stats.StatsContextFactory; -import io.grpc.Attributes; -import io.grpc.ClientInterceptor; -import io.grpc.CompressorRegistry; -import io.grpc.DecompressorRegistry; -import io.grpc.EquivalentAddressGroup; -import io.grpc.LoadBalancer; -import io.grpc.ManagedChannel; -import io.grpc.ManagedChannelBuilder; -import io.grpc.NameResolver; -import io.grpc.NameResolverProvider; -import io.grpc.PickFirstBalancerFactory; +import io.grpc.*; +import io.netty.handler.ssl.SslContext; import io.opencensus.trace.Tracing; import java.net.SocketAddress; import java.net.URI; @@ -45,6 +36,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; +import javax.net.ssl.SSLSocketFactory; /** * The base class for channel builders. @@ -128,6 +120,7 @@ public static ManagedChannelBuilder forTarget(String target) { private int maxInboundMessageSize = GrpcUtil.DEFAULT_MAX_MESSAGE_SIZE; + /** * Sets the maximum message size allowed for a single gRPC frame. If an inbound messages * larger than this limit is received it will not be processed and the RPC will fail with @@ -303,6 +296,16 @@ protected void setTracingEnabled(boolean value) { tracingEnabled = value; } + @Override + public T sslContext(SslContext sslContext) { + throw new UnsupportedOperationException("Should be implemented by NettyChannelBuilder"); + } + + @Override + public T sslSocketFactory(SSLSocketFactory factory) { + throw new UnsupportedOperationException("Should be implemented by OkHttpChannelBuilder"); + } + @VisibleForTesting final long getIdleTimeoutMillis() { return idleTimeoutMillis; diff --git a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java index 4563d5a1dfe..37a72009eab 100644 --- a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java +++ b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java @@ -185,6 +185,7 @@ public NettyChannelBuilder sslContext(SslContext sslContext) { GrpcSslContexts.ensureAlpnAndH2Enabled(sslContext.applicationProtocolNegotiator()); } this.sslContext = sslContext; + this.negotiationType = NegotiationType.TLS; return this; } From b51495b1f1291946524c170cea8c27bf4ba8379d Mon Sep 17 00:00:00 2001 From: Rama Date: Wed, 11 Oct 2017 13:04:17 +0530 Subject: [PATCH 02/11] added useTransportSecurity to ManagedChannelBuilder --- core/src/main/java/io/grpc/ManagedChannelBuilder.java | 9 +++++++++ .../java/io/grpc/inprocess/InProcessChannelBuilder.java | 7 +++++++ .../src/main/java/io/grpc/netty/NettyChannelBuilder.java | 9 +++++++++ .../main/java/io/grpc/okhttp/OkHttpChannelBuilder.java | 9 +++++++++ 4 files changed, 34 insertions(+) diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index 2bbbea43f38..e18972d61fa 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -163,6 +163,15 @@ public static ManagedChannelBuilder forTarget(String target) { @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1772") public abstract T usePlaintext(boolean skipNegotiation); + /** + * Makes the client use TLS. + * + * @return this + * @throws UnsupportedOperationException if transport security is not supported. + * @since 1.0.0 + */ + public abstract T useTransportSecurity(); + public abstract T sslContext(SslContext sslContext); public abstract T sslSocketFactory(SSLSocketFactory factory); diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index d20263594f2..4f4d924ceb7 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -90,6 +90,13 @@ public InProcessChannelBuilder usePlaintext(boolean skipNegotiation) { return this; } + /** + * Does nothing + */ + public InProcessChannelBuilder useTransportSecurity() { + return this; + } + /** * Does nothing. */ diff --git a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java index 37a72009eab..76551351f87 100644 --- a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java +++ b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java @@ -236,6 +236,15 @@ public NettyChannelBuilder usePlaintext(boolean skipNegotiation) { return this; } + /** + * Equivalent to using {@link #negotiationType(NegotiationType)} with {@code TLS} + */ + @Override + public NettyChannelBuilder useTransportSecurity() { + negotiationType(NegotiationType.TLS); + return this; + } + /** * Enable keepalive with default delay and timeout. * diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java index 0f0ae2afdc7..aa186c8b401 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java @@ -301,6 +301,15 @@ public final OkHttpChannelBuilder usePlaintext(boolean skipNegotiation) { return this; } + /** + * Equivalent to using {@link #negotiationType(NegotiationType)} with {@code TLS}. + */ + @Override + public final OkHttpChannelBuilder useTransportSecurity() { + negotiationType(NegotiationType.TLS); + return this; + } + @Override @Internal protected final ClientTransportFactory buildTransportFactory() { From 65a0661f68eacb1bf6f2378b9a0584f3089e2786 Mon Sep 17 00:00:00 2001 From: Rama Date: Thu, 12 Oct 2017 13:49:33 +0530 Subject: [PATCH 03/11] added trustStore method --- .../java/io/grpc/ManagedChannelBuilder.java | 17 ++++++++++++----- .../grpc/inprocess/InProcessChannelBuilder.java | 11 ++--------- .../AbstractManagedChannelImplBuilder.java | 12 ++---------- .../java/io/grpc/netty/NettyChannelBuilder.java | 12 ++++++++++++ .../io/grpc/okhttp/OkHttpChannelBuilder.java | 16 ++++++++++++---- 5 files changed, 40 insertions(+), 28 deletions(-) diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index e18972d61fa..624f5b91399 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -16,9 +16,10 @@ package io.grpc; -import io.netty.handler.ssl.SslContext; +import javax.net.ssl.SSLException; import javax.net.ssl.SSLSocketFactory; +import java.io.File; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; @@ -168,13 +169,19 @@ public static ManagedChannelBuilder forTarget(String target) { * * @return this * @throws UnsupportedOperationException if transport security is not supported. - * @since 1.0.0 */ public abstract T useTransportSecurity(); - public abstract T sslContext(SslContext sslContext); - - public abstract T sslSocketFactory(SSLSocketFactory factory); + /** + * + * Trusted certificates for verifying the remote endpoint's certificate. The file should + * contain an X.509 certificate collection in PEM format. {@code null} uses the system default. + * + * @param trustCertCollectionFile + * @return this + * @throws SSLException if there is an error loading the trust file + */ + public abstract T trustStore(File trustCertCollectionFile) throws SSLException; /** diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index 4f4d924ceb7..2a01250dc2b 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -27,6 +27,7 @@ import io.netty.handler.ssl.SslContext; import javax.net.ssl.SSLSocketFactory; +import java.io.File; import java.net.SocketAddress; import java.util.concurrent.ScheduledExecutorService; @@ -101,15 +102,7 @@ public InProcessChannelBuilder useTransportSecurity() { * Does nothing. */ @Override - public InProcessChannelBuilder sslContext(SslContext sslContext) { - return this; - } - - /** - * Does nothing. - */ - @Override - public InProcessChannelBuilder sslSocketFactory(SSLSocketFactory factory) { + public InProcessChannelBuilder trustStore(File trustCertCollectionFile) { return this; } diff --git a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java index 0f5e6b863ad..2d7baf94758 100644 --- a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java +++ b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java @@ -26,6 +26,8 @@ import io.grpc.*; import io.netty.handler.ssl.SslContext; import io.opencensus.trace.Tracing; + +import java.io.File; import java.net.SocketAddress; import java.net.URI; import java.net.URISyntaxException; @@ -296,16 +298,6 @@ protected void setTracingEnabled(boolean value) { tracingEnabled = value; } - @Override - public T sslContext(SslContext sslContext) { - throw new UnsupportedOperationException("Should be implemented by NettyChannelBuilder"); - } - - @Override - public T sslSocketFactory(SSLSocketFactory factory) { - throw new UnsupportedOperationException("Should be implemented by OkHttpChannelBuilder"); - } - @VisibleForTesting final long getIdleTimeoutMillis() { return idleTimeoutMillis; diff --git a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java index 76551351f87..d8a909ea7e8 100644 --- a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java +++ b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java @@ -42,6 +42,8 @@ import io.netty.channel.EventLoopGroup; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.ssl.SslContext; + +import java.io.File; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.util.HashMap; @@ -174,9 +176,19 @@ public NettyChannelBuilder eventLoopGroup(@Nullable EventLoopGroup eventLoopGrou return this; } + /** + * Trust Store to be used instead of system default. + * @throws SSLException + */ + @Override + public NettyChannelBuilder trustStore(File trustCertCollectionFile) throws SSLException { + return sslContext(GrpcSslContexts.forClient().trustManager(trustCertCollectionFile).build()); + } + /** * SSL/TLS context to use instead of the system default. It must have been configured with {@link * GrpcSslContexts}, but options could have been overridden. + * Also sets the {@link NegotiationType} to TLS. */ public NettyChannelBuilder sslContext(SslContext sslContext) { if (sslContext != null) { diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java index aa186c8b401..37468bdfc1d 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java @@ -38,6 +38,8 @@ import io.grpc.internal.SharedResourceHolder; import io.grpc.internal.SharedResourceHolder.Resource; import io.grpc.okhttp.internal.Platform; + +import java.io.File; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.GeneralSecurityException; @@ -49,10 +51,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.TrustManagerFactory; +import javax.net.ssl.*; /** Convenience class for building channels with the OkHttp transport. */ @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1785") @@ -310,6 +309,15 @@ public final OkHttpChannelBuilder useTransportSecurity() { return this; } + /** + * Trust Store to be used instead of system default. + * @throws SSLException + */ + @Override + public final OkHttpChannelBuilder trustStore(File trustCertCollectionFile) throws SSLException { + throw new UnsupportedOperationException("Use sslSocketFactory method instead"); + } + @Override @Internal protected final ClientTransportFactory buildTransportFactory() { From 92eb9751030afe8818269c17b781ce81a67be723 Mon Sep 17 00:00:00 2001 From: Rama Date: Fri, 13 Oct 2017 20:30:22 +0530 Subject: [PATCH 04/11] fixed test compilation errors and Styling issues --- .../java/io/grpc/ForwardingChannelBuilder.java | 14 ++++++++++++++ .../main/java/io/grpc/ManagedChannelBuilder.java | 10 +++++----- .../grpc/inprocess/InProcessChannelBuilder.java | 5 ++--- .../AbstractManagedChannelImplBuilder.java | 16 ++++++++++++---- .../AbstractManagedChannelImplBuilderTest.java | 12 ++++++++++++ .../internal/ManagedChannelImplIdlenessTest.java | 12 ++++++++++++ .../io/grpc/internal/ManagedChannelImplTest.java | 12 ++++++++++++ 7 files changed, 69 insertions(+), 12 deletions(-) diff --git a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java index c3afd7f5007..79e1b79fa97 100644 --- a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java +++ b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java @@ -16,9 +16,11 @@ package io.grpc; +import java.io.File; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLException; /** * A {@link ManagedChannelBuilder} that delegates all its builder method to another builder by @@ -97,6 +99,18 @@ public T usePlaintext(boolean skipNegotiation) { return thisT(); } + @Override + public T useTransportSecurity() { + delegate().useTransportSecurity(); + return thisT(); + } + + @Override + public T trustStore(File trustCertCollectionFile) throws SSLException { + delegate().trustStore(trustCertCollectionFile); + return thisT(); + } + @Override public T nameResolverFactory(NameResolver.Factory resolverFactory) { delegate().nameResolverFactory(resolverFactory); diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index 624f5b91399..fc7f309cc0b 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -16,14 +16,15 @@ package io.grpc; - -import javax.net.ssl.SSLException; -import javax.net.ssl.SSLSocketFactory; import java.io.File; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLException; + + + /** * A builder for {@link ManagedChannel} instances. * @@ -173,11 +174,10 @@ public static ManagedChannelBuilder forTarget(String target) { public abstract T useTransportSecurity(); /** - * * Trusted certificates for verifying the remote endpoint's certificate. The file should * contain an X.509 certificate collection in PEM format. {@code null} uses the system default. * - * @param trustCertCollectionFile + * @param trustCertCollectionFile Path to file containing trust cert chain * @return this * @throws SSLException if there is an error loading the trust file */ diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index 2a01250dc2b..de44fd57924 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -24,9 +24,7 @@ import io.grpc.internal.ConnectionClientTransport; import io.grpc.internal.GrpcUtil; import io.grpc.internal.SharedResourceHolder; -import io.netty.handler.ssl.SslContext; -import javax.net.ssl.SSLSocketFactory; import java.io.File; import java.net.SocketAddress; import java.util.concurrent.ScheduledExecutorService; @@ -92,8 +90,9 @@ public InProcessChannelBuilder usePlaintext(boolean skipNegotiation) { } /** - * Does nothing + * Does nothing. */ + @Override public InProcessChannelBuilder useTransportSecurity() { return this; } diff --git a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java index 2d7baf94758..c3a7829234f 100644 --- a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java +++ b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java @@ -23,11 +23,20 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.instrumentation.stats.Stats; import com.google.instrumentation.stats.StatsContextFactory; -import io.grpc.*; -import io.netty.handler.ssl.SslContext; + +import io.grpc.Attributes; +import io.grpc.ClientInterceptor; +import io.grpc.CompressorRegistry; +import io.grpc.DecompressorRegistry; +import io.grpc.EquivalentAddressGroup; +import io.grpc.LoadBalancer; +import io.grpc.ManagedChannel; +import io.grpc.ManagedChannelBuilder; +import io.grpc.NameResolver; +import io.grpc.NameResolverProvider; +import io.grpc.PickFirstBalancerFactory; import io.opencensus.trace.Tracing; -import java.io.File; import java.net.SocketAddress; import java.net.URI; import java.net.URISyntaxException; @@ -38,7 +47,6 @@ import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; -import javax.net.ssl.SSLSocketFactory; /** * The base class for channel builders. diff --git a/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java b/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java index a874a7b0ec3..140a045a5da 100644 --- a/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java +++ b/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java @@ -38,6 +38,7 @@ import io.grpc.LoadBalancer; import io.grpc.MethodDescriptor; import io.grpc.NameResolver; +import java.io.File; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.SocketAddress; @@ -45,6 +46,7 @@ import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -363,5 +365,15 @@ protected ClientTransportFactory buildTransportFactory() { public Builder usePlaintext(boolean value) { throw new UnsupportedOperationException(); } + + @Override + public Builder useTransportSecurity() { + throw new UnsupportedOperationException(); + } + + @Override + public Builder trustStore(File trustStorePath) throws SSLException { + throw new UnsupportedOperationException(); + } } } diff --git a/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java b/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java index 2524e345a1a..64c45da2127 100644 --- a/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java +++ b/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java @@ -52,6 +52,7 @@ import io.grpc.Status; import io.grpc.StringMarshaller; import io.grpc.internal.TestUtils.MockClientTransportInfo; +import java.io.File; import java.net.SocketAddress; import java.net.URI; import java.util.ArrayList; @@ -60,6 +61,7 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLException; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -130,6 +132,16 @@ class Builder extends AbstractManagedChannelImplBuilder { @Override public Builder usePlaintext(boolean b) { throw new UnsupportedOperationException(); } + + @Override + public Builder useTransportSecurity() { + throw new UnsupportedOperationException(); + } + + @Override + public Builder trustStore(File trustStorePath) throws SSLException { + throw new UnsupportedOperationException(); + } } Builder builder = new Builder("fake://target") diff --git a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java index daeb59c013e..429385bbfec 100644 --- a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java +++ b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java @@ -76,6 +76,7 @@ import io.grpc.StringMarshaller; import io.grpc.internal.ManagedChannelImpl.ManagedChannelReference; import io.grpc.internal.TestUtils.MockClientTransportInfo; +import java.io.File; import java.net.SocketAddress; import java.net.URI; import java.util.ArrayList; @@ -92,6 +93,7 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; +import javax.net.ssl.SSLException; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -202,6 +204,16 @@ class Builder extends AbstractManagedChannelImplBuilder { @Override public Builder usePlaintext(boolean b) { throw new UnsupportedOperationException(); } + + @Override + public Builder useTransportSecurity() { + throw new UnsupportedOperationException(); + } + + @Override + public Builder trustStore(File trustStorePath) throws SSLException { + throw new UnsupportedOperationException(); + } } Builder builder = new Builder(target) From 89d6ba2057e06411fc92c7f3ce24ba868b084747 Mon Sep 17 00:00:00 2001 From: Rama Date: Fri, 13 Oct 2017 20:35:52 +0530 Subject: [PATCH 05/11] corrected styles --- .../io/grpc/internal/AbstractManagedChannelImplBuilder.java | 1 - .../src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java index c3a7829234f..2d6cbfec154 100644 --- a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java +++ b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java @@ -130,7 +130,6 @@ public static ManagedChannelBuilder forTarget(String target) { private int maxInboundMessageSize = GrpcUtil.DEFAULT_MAX_MESSAGE_SIZE; - /** * Sets the maximum message size allowed for a single gRPC frame. If an inbound messages * larger than this limit is received it will not be processed and the RPC will fail with diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java index 37468bdfc1d..7b9279c8fb3 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java @@ -51,7 +51,10 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; -import javax.net.ssl.*; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManagerFactory; /** Convenience class for building channels with the OkHttp transport. */ @ExperimentalApi("https://github.com/grpc/grpc-java/issues/1785") From 4f93c9781435945f6710f20610cd99eba9584265 Mon Sep 17 00:00:00 2001 From: Rama Date: Thu, 9 Nov 2017 14:44:54 +0530 Subject: [PATCH 06/11] core netty added useTransportSecurity api in ManagedChannelBuilder Signed-off-by: Rama --- .../io/grpc/ForwardingChannelBuilder.java | 8 -------- .../java/io/grpc/ManagedChannelBuilder.java | 19 +++---------------- .../inprocess/InProcessChannelBuilder.java | 9 --------- ...AbstractManagedChannelImplBuilderTest.java | 7 ------- .../ManagedChannelImplIdlenessTest.java | 7 ------- .../grpc/internal/ManagedChannelImplTest.java | 7 ------- .../io/grpc/netty/NettyChannelBuilder.java | 10 ---------- .../io/grpc/okhttp/OkHttpChannelBuilder.java | 10 ---------- 8 files changed, 3 insertions(+), 74 deletions(-) diff --git a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java index 79e1b79fa97..084c3737eae 100644 --- a/core/src/main/java/io/grpc/ForwardingChannelBuilder.java +++ b/core/src/main/java/io/grpc/ForwardingChannelBuilder.java @@ -16,11 +16,9 @@ package io.grpc; -import java.io.File; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; -import javax.net.ssl.SSLException; /** * A {@link ManagedChannelBuilder} that delegates all its builder method to another builder by @@ -105,12 +103,6 @@ public T useTransportSecurity() { return thisT(); } - @Override - public T trustStore(File trustCertCollectionFile) throws SSLException { - delegate().trustStore(trustCertCollectionFile); - return thisT(); - } - @Override public T nameResolverFactory(NameResolver.Factory resolverFactory) { delegate().nameResolverFactory(resolverFactory); diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index fc7f309cc0b..fdfde6fec22 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -16,14 +16,10 @@ package io.grpc; -import java.io.File; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; -import javax.net.ssl.SSLException; - - /** * A builder for {@link ManagedChannel} instances. @@ -171,18 +167,9 @@ public static ManagedChannelBuilder forTarget(String target) { * @return this * @throws UnsupportedOperationException if transport security is not supported. */ - public abstract T useTransportSecurity(); - - /** - * Trusted certificates for verifying the remote endpoint's certificate. The file should - * contain an X.509 certificate collection in PEM format. {@code null} uses the system default. - * - * @param trustCertCollectionFile Path to file containing trust cert chain - * @return this - * @throws SSLException if there is an error loading the trust file - */ - public abstract T trustStore(File trustCertCollectionFile) throws SSLException; - + public T useTransportSecurity() { + throw new UnsupportedOperationException(); + } /** * Provides a custom {@link NameResolver.Factory} for the channel. If this method is not called, diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index de44fd57924..1af55f060fa 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -25,7 +25,6 @@ import io.grpc.internal.GrpcUtil; import io.grpc.internal.SharedResourceHolder; -import java.io.File; import java.net.SocketAddress; import java.util.concurrent.ScheduledExecutorService; @@ -97,14 +96,6 @@ public InProcessChannelBuilder useTransportSecurity() { return this; } - /** - * Does nothing. - */ - @Override - public InProcessChannelBuilder trustStore(File trustCertCollectionFile) { - return this; - } - @Override @Internal protected ClientTransportFactory buildTransportFactory() { diff --git a/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java b/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java index 140a045a5da..1ef4a8c0920 100644 --- a/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java +++ b/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java @@ -38,7 +38,6 @@ import io.grpc.LoadBalancer; import io.grpc.MethodDescriptor; import io.grpc.NameResolver; -import java.io.File; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.SocketAddress; @@ -46,7 +45,6 @@ import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; -import javax.net.ssl.SSLException; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -370,10 +368,5 @@ public Builder usePlaintext(boolean value) { public Builder useTransportSecurity() { throw new UnsupportedOperationException(); } - - @Override - public Builder trustStore(File trustStorePath) throws SSLException { - throw new UnsupportedOperationException(); - } } } diff --git a/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java b/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java index 64c45da2127..235a9ca44a3 100644 --- a/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java +++ b/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java @@ -52,7 +52,6 @@ import io.grpc.Status; import io.grpc.StringMarshaller; import io.grpc.internal.TestUtils.MockClientTransportInfo; -import java.io.File; import java.net.SocketAddress; import java.net.URI; import java.util.ArrayList; @@ -61,7 +60,6 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; -import javax.net.ssl.SSLException; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -137,11 +135,6 @@ class Builder extends AbstractManagedChannelImplBuilder { public Builder useTransportSecurity() { throw new UnsupportedOperationException(); } - - @Override - public Builder trustStore(File trustStorePath) throws SSLException { - throw new UnsupportedOperationException(); - } } Builder builder = new Builder("fake://target") diff --git a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java index 429385bbfec..f977589707d 100644 --- a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java +++ b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java @@ -76,7 +76,6 @@ import io.grpc.StringMarshaller; import io.grpc.internal.ManagedChannelImpl.ManagedChannelReference; import io.grpc.internal.TestUtils.MockClientTransportInfo; -import java.io.File; import java.net.SocketAddress; import java.net.URI; import java.util.ArrayList; @@ -93,7 +92,6 @@ import java.util.logging.Level; import java.util.logging.LogRecord; import java.util.logging.Logger; -import javax.net.ssl.SSLException; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -209,11 +207,6 @@ class Builder extends AbstractManagedChannelImplBuilder { public Builder useTransportSecurity() { throw new UnsupportedOperationException(); } - - @Override - public Builder trustStore(File trustStorePath) throws SSLException { - throw new UnsupportedOperationException(); - } } Builder builder = new Builder(target) diff --git a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java index d8a909ea7e8..1f403c87660 100644 --- a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java +++ b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java @@ -43,7 +43,6 @@ import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.ssl.SslContext; -import java.io.File; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.util.HashMap; @@ -176,15 +175,6 @@ public NettyChannelBuilder eventLoopGroup(@Nullable EventLoopGroup eventLoopGrou return this; } - /** - * Trust Store to be used instead of system default. - * @throws SSLException - */ - @Override - public NettyChannelBuilder trustStore(File trustCertCollectionFile) throws SSLException { - return sslContext(GrpcSslContexts.forClient().trustManager(trustCertCollectionFile).build()); - } - /** * SSL/TLS context to use instead of the system default. It must have been configured with {@link * GrpcSslContexts}, but options could have been overridden. diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java index 7b9279c8fb3..028882849ef 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java @@ -39,7 +39,6 @@ import io.grpc.internal.SharedResourceHolder.Resource; import io.grpc.okhttp.internal.Platform; -import java.io.File; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.GeneralSecurityException; @@ -312,15 +311,6 @@ public final OkHttpChannelBuilder useTransportSecurity() { return this; } - /** - * Trust Store to be used instead of system default. - * @throws SSLException - */ - @Override - public final OkHttpChannelBuilder trustStore(File trustCertCollectionFile) throws SSLException { - throw new UnsupportedOperationException("Use sslSocketFactory method instead"); - } - @Override @Internal protected final ClientTransportFactory buildTransportFactory() { From f83e3bf4d571b592f14f9516f3b535ebcde28633 Mon Sep 17 00:00:00 2001 From: Rama Date: Fri, 10 Nov 2017 10:00:29 +0530 Subject: [PATCH 07/11] fixed imports, removed call from sslContext, removed unnecessary impl --- core/src/main/java/io/grpc/ManagedChannelBuilder.java | 1 + .../main/java/io/grpc/inprocess/InProcessChannelBuilder.java | 1 - .../grpc/internal/AbstractManagedChannelImplBuilderTest.java | 5 ----- .../test/java/io/grpc/internal/ManagedChannelImplTest.java | 5 ----- netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java | 2 -- 5 files changed, 1 insertion(+), 13 deletions(-) diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index fdfde6fec22..ca91cb720ae 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -167,6 +167,7 @@ public static ManagedChannelBuilder forTarget(String target) { * @return this * @throws UnsupportedOperationException if transport security is not supported. */ + @ExperimentalApi("https://github.com/grpc/grpc-java/issues/3713") public T useTransportSecurity() { throw new UnsupportedOperationException(); } diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index 1af55f060fa..a31a539aef4 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -24,7 +24,6 @@ import io.grpc.internal.ConnectionClientTransport; import io.grpc.internal.GrpcUtil; import io.grpc.internal.SharedResourceHolder; - import java.net.SocketAddress; import java.util.concurrent.ScheduledExecutorService; diff --git a/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java b/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java index 1ef4a8c0920..a874a7b0ec3 100644 --- a/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java +++ b/core/src/test/java/io/grpc/internal/AbstractManagedChannelImplBuilderTest.java @@ -363,10 +363,5 @@ protected ClientTransportFactory buildTransportFactory() { public Builder usePlaintext(boolean value) { throw new UnsupportedOperationException(); } - - @Override - public Builder useTransportSecurity() { - throw new UnsupportedOperationException(); - } } } diff --git a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java index f977589707d..daeb59c013e 100644 --- a/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java +++ b/core/src/test/java/io/grpc/internal/ManagedChannelImplTest.java @@ -202,11 +202,6 @@ class Builder extends AbstractManagedChannelImplBuilder { @Override public Builder usePlaintext(boolean b) { throw new UnsupportedOperationException(); } - - @Override - public Builder useTransportSecurity() { - throw new UnsupportedOperationException(); - } } Builder builder = new Builder(target) diff --git a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java index 1f403c87660..429ad4ab880 100644 --- a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java +++ b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java @@ -42,7 +42,6 @@ import io.netty.channel.EventLoopGroup; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.handler.ssl.SslContext; - import java.net.InetSocketAddress; import java.net.SocketAddress; import java.util.HashMap; @@ -187,7 +186,6 @@ public NettyChannelBuilder sslContext(SslContext sslContext) { GrpcSslContexts.ensureAlpnAndH2Enabled(sslContext.applicationProtocolNegotiator()); } this.sslContext = sslContext; - this.negotiationType = NegotiationType.TLS; return this; } From 328e584bbee2e98b8c7788de13afbdd3faf0ae22 Mon Sep 17 00:00:00 2001 From: Rama Date: Fri, 10 Nov 2017 10:05:17 +0530 Subject: [PATCH 08/11] core netty http fixed imports,javadoc --- core/src/main/java/io/grpc/ManagedChannelBuilder.java | 1 - .../io/grpc/internal/AbstractManagedChannelImplBuilder.java | 2 -- .../io/grpc/internal/ManagedChannelImplIdlenessTest.java | 5 ----- netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java | 1 - .../src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java | 1 - 5 files changed, 10 deletions(-) diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index ca91cb720ae..46ba5aa69ca 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -20,7 +20,6 @@ import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; - /** * A builder for {@link ManagedChannel} instances. * diff --git a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java index 2d6cbfec154..2c210dd83a0 100644 --- a/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java +++ b/core/src/main/java/io/grpc/internal/AbstractManagedChannelImplBuilder.java @@ -23,7 +23,6 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.instrumentation.stats.Stats; import com.google.instrumentation.stats.StatsContextFactory; - import io.grpc.Attributes; import io.grpc.ClientInterceptor; import io.grpc.CompressorRegistry; @@ -36,7 +35,6 @@ import io.grpc.NameResolverProvider; import io.grpc.PickFirstBalancerFactory; import io.opencensus.trace.Tracing; - import java.net.SocketAddress; import java.net.URI; import java.net.URISyntaxException; diff --git a/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java b/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java index 235a9ca44a3..2524e345a1a 100644 --- a/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java +++ b/core/src/test/java/io/grpc/internal/ManagedChannelImplIdlenessTest.java @@ -130,11 +130,6 @@ class Builder extends AbstractManagedChannelImplBuilder { @Override public Builder usePlaintext(boolean b) { throw new UnsupportedOperationException(); } - - @Override - public Builder useTransportSecurity() { - throw new UnsupportedOperationException(); - } } Builder builder = new Builder("fake://target") diff --git a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java index 429ad4ab880..6fe77704287 100644 --- a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java +++ b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java @@ -177,7 +177,6 @@ public NettyChannelBuilder eventLoopGroup(@Nullable EventLoopGroup eventLoopGrou /** * SSL/TLS context to use instead of the system default. It must have been configured with {@link * GrpcSslContexts}, but options could have been overridden. - * Also sets the {@link NegotiationType} to TLS. */ public NettyChannelBuilder sslContext(SslContext sslContext) { if (sslContext != null) { diff --git a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java index 028882849ef..aa186c8b401 100644 --- a/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java +++ b/okhttp/src/main/java/io/grpc/okhttp/OkHttpChannelBuilder.java @@ -38,7 +38,6 @@ import io.grpc.internal.SharedResourceHolder; import io.grpc.internal.SharedResourceHolder.Resource; import io.grpc.okhttp.internal.Platform; - import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.GeneralSecurityException; From 69685832bfae938763af110deb6867c3503363a5 Mon Sep 17 00:00:00 2001 From: Rama Date: Fri, 10 Nov 2017 10:10:28 +0530 Subject: [PATCH 09/11] core netty http changed order of method --- .../java/io/grpc/inprocess/InProcessChannelBuilder.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index a31a539aef4..f2914e79422 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -83,15 +83,15 @@ public final InProcessChannelBuilder maxInboundMessageSize(int max) { * Does nothing. */ @Override - public InProcessChannelBuilder usePlaintext(boolean skipNegotiation) { + public InProcessChannelBuilder useTransportSecurity() { return this; } - + /** * Does nothing. */ @Override - public InProcessChannelBuilder useTransportSecurity() { + public InProcessChannelBuilder usePlaintext(boolean skipNegotiation) { return this; } From 106d21f40fc0e71d872a0f66329a4609061d6704 Mon Sep 17 00:00:00 2001 From: Rama Date: Fri, 10 Nov 2017 11:54:30 +0530 Subject: [PATCH 10/11] fixed javadoc issue --- .../main/java/io/grpc/inprocess/InProcessChannelBuilder.java | 2 +- netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java index f2914e79422..f51868232b7 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessChannelBuilder.java @@ -86,7 +86,7 @@ public final InProcessChannelBuilder maxInboundMessageSize(int max) { public InProcessChannelBuilder useTransportSecurity() { return this; } - + /** * Does nothing. */ diff --git a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java index 6fe77704287..39aa1e57b4f 100644 --- a/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java +++ b/netty/src/main/java/io/grpc/netty/NettyChannelBuilder.java @@ -236,7 +236,7 @@ public NettyChannelBuilder usePlaintext(boolean skipNegotiation) { } /** - * Equivalent to using {@link #negotiationType(NegotiationType)} with {@code TLS} + * Equivalent to using {@link #negotiationType(NegotiationType)} with {@code TLS}. */ @Override public NettyChannelBuilder useTransportSecurity() { From cd3cf229dad50be262a1d477bbda264fb1c78222 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Fri, 10 Nov 2017 10:31:26 -0800 Subject: [PATCH 11/11] Added since 1.9.0 --- core/src/main/java/io/grpc/ManagedChannelBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/io/grpc/ManagedChannelBuilder.java b/core/src/main/java/io/grpc/ManagedChannelBuilder.java index 46ba5aa69ca..29976c0a376 100644 --- a/core/src/main/java/io/grpc/ManagedChannelBuilder.java +++ b/core/src/main/java/io/grpc/ManagedChannelBuilder.java @@ -165,6 +165,7 @@ public static ManagedChannelBuilder forTarget(String target) { * * @return this * @throws UnsupportedOperationException if transport security is not supported. + * @since 1.9.0 */ @ExperimentalApi("https://github.com/grpc/grpc-java/issues/3713") public T useTransportSecurity() {