diff options
author | Kun Zhang <zhangkun83@users.noreply.github.com> | 2017-12-14 15:43:39 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-14 15:43:39 -0800 |
commit | aeaced1c5da637d2b43e69630b3a878448a7115b (patch) | |
tree | a1d38db490a8b36d35638a3165fbb791865ab222 /cronet | |
parent | 02f56b0218515f7c614098e889e24410d8387f7c (diff) | |
download | grpc-grpc-java-aeaced1c5da637d2b43e69630b3a878448a7115b.tar.gz |
cronet: pass TransportTracer instead of null. (#3869)
AbstractStream now requires TransportTracer to be non-null.
Diffstat (limited to 'cronet')
5 files changed, 43 insertions, 18 deletions
diff --git a/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java b/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java index 4a0dc921b..4e511c8a9 100644 --- a/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java +++ b/cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java @@ -31,6 +31,7 @@ import io.grpc.internal.ConnectionClientTransport; import io.grpc.internal.GrpcUtil; import io.grpc.internal.ProxyParameters; import io.grpc.internal.SharedResourceHolder; +import io.grpc.internal.TransportTracer; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.util.concurrent.Executor; @@ -130,7 +131,7 @@ public final class CronetChannelBuilder extends @Override protected final ClientTransportFactory buildTransportFactory() { return new CronetTransportFactory(streamFactory, MoreExecutors.directExecutor(), - maxMessageSize, alwaysUsePut); + maxMessageSize, alwaysUsePut, transportTracerFactory.create()); } @Override @@ -147,16 +148,19 @@ public final class CronetChannelBuilder extends private final int maxMessageSize; private final boolean alwaysUsePut; private final StreamBuilderFactory streamFactory; + private final TransportTracer transportTracer; private CronetTransportFactory( StreamBuilderFactory streamFactory, Executor executor, int maxMessageSize, - boolean alwaysUsePut) { + boolean alwaysUsePut, + TransportTracer transportTracer) { this.maxMessageSize = maxMessageSize; this.alwaysUsePut = alwaysUsePut; this.streamFactory = streamFactory; this.executor = Preconditions.checkNotNull(executor, "executor"); + this.transportTracer = Preconditions.checkNotNull(transportTracer, "transportTracer"); } @Override @@ -164,7 +168,7 @@ public final class CronetChannelBuilder extends @Nullable String userAgent, @Nullable ProxyParameters proxy) { InetSocketAddress inetSocketAddr = (InetSocketAddress) addr; return new CronetClientTransport(streamFactory, inetSocketAddr, authority, userAgent, - executor, maxMessageSize, alwaysUsePut); + executor, maxMessageSize, alwaysUsePut, transportTracer); } @Override diff --git a/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java b/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java index 82008d368..b37a85b2f 100644 --- a/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java +++ b/cronet/src/main/java/io/grpc/cronet/CronetClientStream.java @@ -38,6 +38,7 @@ import io.grpc.internal.Http2ClientStreamTransportState; import io.grpc.internal.ReadableBuffers; import io.grpc.internal.StatsTraceContext; import io.grpc.internal.TransportFrameUtil; +import io.grpc.internal.TransportTracer; import io.grpc.internal.WritableBuffer; import java.nio.ByteBuffer; import java.nio.charset.Charset; @@ -90,8 +91,11 @@ class CronetClientStream extends AbstractClientStream { boolean alwaysUsePut, MethodDescriptor<?, ?> method, StatsTraceContext statsTraceCtx, - CallOptions callOptions) { - super(new CronetWritableBufferAllocator(), statsTraceCtx, null, headers, method.isSafe()); + CallOptions callOptions, + TransportTracer transportTracer) { + super( + new CronetWritableBufferAllocator(), statsTraceCtx, transportTracer, headers, + method.isSafe()); this.url = Preconditions.checkNotNull(url, "url"); this.userAgent = Preconditions.checkNotNull(userAgent, "userAgent"); this.executor = Preconditions.checkNotNull(executor, "executor"); @@ -103,7 +107,7 @@ class CronetClientStream extends AbstractClientStream { this.delayRequestHeader = (method.getType() == MethodDescriptor.MethodType.UNARY); this.annotation = callOptions.getOption(CronetCallOptions.CRONET_ANNOTATION_KEY); this.annotations = callOptions.getOption(CronetCallOptions.CRONET_ANNOTATIONS_KEY); - this.state = new TransportState(maxMessageSize, statsTraceCtx, lock); + this.state = new TransportState(maxMessageSize, statsTraceCtx, lock, transportTracer); } @Override @@ -218,8 +222,10 @@ class CronetClientStream extends AbstractClientStream { @GuardedBy("lock") private boolean readClosed; - public TransportState(int maxMessageSize, StatsTraceContext statsTraceCtx, Object lock) { - super(maxMessageSize, statsTraceCtx, null); + public TransportState( + int maxMessageSize, StatsTraceContext statsTraceCtx, Object lock, + TransportTracer transportTracer) { + super(maxMessageSize, statsTraceCtx, transportTracer); this.lock = Preconditions.checkNotNull(lock, "lock"); } diff --git a/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java b/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java index 4c9c44b0b..60ea1e505 100644 --- a/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java +++ b/cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java @@ -31,6 +31,7 @@ import io.grpc.InternalTransportStats; import io.grpc.internal.ConnectionClientTransport; import io.grpc.internal.GrpcUtil; import io.grpc.internal.StatsTraceContext; +import io.grpc.internal.TransportTracer; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.HashSet; @@ -56,6 +57,7 @@ class CronetClientTransport implements ConnectionClientTransport, InternalWithLo private final Executor executor; private final int maxMessageSize; private final boolean alwaysUsePut; + private final TransportTracer transportTracer; // Indicates the transport is in go-away state: no new streams will be processed, // but existing streams may continue. @GuardedBy("lock") @@ -80,7 +82,8 @@ class CronetClientTransport implements ConnectionClientTransport, InternalWithLo @Nullable String userAgent, Executor executor, int maxMessageSize, - boolean alwaysUsePut) { + boolean alwaysUsePut, + TransportTracer transportTracer) { this.address = Preconditions.checkNotNull(address, "address"); this.authority = authority; this.userAgent = GrpcUtil.getGrpcUserAgent("cronet", userAgent); @@ -88,6 +91,7 @@ class CronetClientTransport implements ConnectionClientTransport, InternalWithLo this.alwaysUsePut = alwaysUsePut; this.executor = Preconditions.checkNotNull(executor, "executor"); this.streamFactory = Preconditions.checkNotNull(streamFactory, "streamFactory"); + this.transportTracer = Preconditions.checkNotNull(transportTracer, "transportTracer"); } @Override @@ -111,7 +115,7 @@ class CronetClientTransport implements ConnectionClientTransport, InternalWithLo class StartCallback implements Runnable { final CronetClientStream clientStream = new CronetClientStream( url, userAgent, executor, headers, CronetClientTransport.this, this, lock, maxMessageSize, - alwaysUsePut, method, statsTraceCtx, callOptions); + alwaysUsePut, method, statsTraceCtx, callOptions, transportTracer); @Override public void run() { diff --git a/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java b/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java index f7d5ae850..cbc8c0dc0 100644 --- a/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java +++ b/cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java @@ -38,6 +38,7 @@ import io.grpc.internal.ClientStreamListener; import io.grpc.internal.GrpcUtil; import io.grpc.internal.StatsTraceContext; import io.grpc.internal.StreamListener.MessageProducer; +import io.grpc.internal.TransportTracer; import io.grpc.internal.WritableBuffer; import io.grpc.testing.TestMethodDescriptors; import java.io.ByteArrayInputStream; @@ -72,6 +73,7 @@ public final class CronetClientStreamTest { @Mock private ClientStreamListener clientListener; @Mock private ExperimentalBidirectionalStream.Builder builder; private final Object lock = new Object(); + private final TransportTracer transportTracer = TransportTracer.getDefaultFactory().create(); CronetClientStream clientStream; private MethodDescriptor.Marshaller<Void> marshaller = TestMethodDescriptors.voidMarshaller(); @@ -115,7 +117,8 @@ public final class CronetClientStreamTest { false /* alwaysUsePut */, method, StatsTraceContext.NOOP, - CallOptions.DEFAULT); + CallOptions.DEFAULT, + transportTracer); callback.setStream(clientStream); when(factory.newBidirectionalStreamBuilder( any(String.class), any(BidirectionalStream.Callback.class), any(Executor.class))) @@ -573,7 +576,8 @@ public final class CronetClientStreamTest { false /* alwaysUsePut */, method, StatsTraceContext.NOOP, - CallOptions.DEFAULT.withOption(CronetCallOptions.CRONET_ANNOTATION_KEY, annotation)); + CallOptions.DEFAULT.withOption(CronetCallOptions.CRONET_ANNOTATION_KEY, annotation), + transportTracer); callback.setStream(stream); when(factory.newBidirectionalStreamBuilder( any(String.class), any(BidirectionalStream.Callback.class), any(Executor.class))) @@ -605,7 +609,8 @@ public final class CronetClientStreamTest { false /* alwaysUsePut */, method, StatsTraceContext.NOOP, - callOptions); + callOptions, + transportTracer); callback.setStream(stream); when(factory.newBidirectionalStreamBuilder( any(String.class), any(BidirectionalStream.Callback.class), any(Executor.class))) @@ -642,7 +647,8 @@ public final class CronetClientStreamTest { false /* alwaysUsePut */, getMethod, StatsTraceContext.NOOP, - CallOptions.DEFAULT); + CallOptions.DEFAULT, + transportTracer); callback.setStream(stream); ExperimentalBidirectionalStream.Builder getBuilder = mock(ExperimentalBidirectionalStream.Builder.class); @@ -696,7 +702,8 @@ public final class CronetClientStreamTest { false /* alwaysUsePut */, idempotentMethod, StatsTraceContext.NOOP, - CallOptions.DEFAULT); + CallOptions.DEFAULT, + transportTracer); callback.setStream(stream); ExperimentalBidirectionalStream.Builder builder = mock(ExperimentalBidirectionalStream.Builder.class); @@ -725,7 +732,8 @@ public final class CronetClientStreamTest { true /* alwaysUsePut */, method, StatsTraceContext.NOOP, - CallOptions.DEFAULT); + CallOptions.DEFAULT, + transportTracer); callback.setStream(stream); ExperimentalBidirectionalStream.Builder builder = mock(ExperimentalBidirectionalStream.Builder.class); @@ -762,7 +770,8 @@ public final class CronetClientStreamTest { false /* alwaysUsePut */, method, StatsTraceContext.NOOP, - CallOptions.DEFAULT); + CallOptions.DEFAULT, + transportTracer); callback.setStream(stream); ExperimentalBidirectionalStream.Builder builder = mock(ExperimentalBidirectionalStream.Builder.class); diff --git a/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java b/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java index 3f1b505af..dbd3f07d7 100644 --- a/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java +++ b/cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java @@ -30,6 +30,7 @@ import io.grpc.Status; import io.grpc.cronet.CronetChannelBuilder.StreamBuilderFactory; import io.grpc.internal.ClientStreamListener; import io.grpc.internal.ManagedClientTransport; +import io.grpc.internal.TransportTracer; import io.grpc.testing.TestMethodDescriptors; import java.net.InetSocketAddress; import java.util.concurrent.Executor; @@ -64,7 +65,8 @@ public final class CronetClientTransportTest { null, executor, 5000, - false); + false, + TransportTracer.getDefaultFactory().create()); Runnable callback = transport.start(clientTransportListener); assertTrue(callback != null); callback.run(); |