aboutsummaryrefslogtreecommitdiff
path: root/cronet
diff options
context:
space:
mode:
authorKun Zhang <zhangkun83@users.noreply.github.com>2017-12-14 15:43:39 -0800
committerGitHub <noreply@github.com>2017-12-14 15:43:39 -0800
commitaeaced1c5da637d2b43e69630b3a878448a7115b (patch)
treea1d38db490a8b36d35638a3165fbb791865ab222 /cronet
parent02f56b0218515f7c614098e889e24410d8387f7c (diff)
downloadgrpc-grpc-java-aeaced1c5da637d2b43e69630b3a878448a7115b.tar.gz
cronet: pass TransportTracer instead of null. (#3869)
AbstractStream now requires TransportTracer to be non-null.
Diffstat (limited to 'cronet')
-rw-r--r--cronet/src/main/java/io/grpc/cronet/CronetChannelBuilder.java10
-rw-r--r--cronet/src/main/java/io/grpc/cronet/CronetClientStream.java16
-rw-r--r--cronet/src/main/java/io/grpc/cronet/CronetClientTransport.java8
-rw-r--r--cronet/src/test/java/io/grpc/cronet/CronetClientStreamTest.java23
-rw-r--r--cronet/src/test/java/io/grpc/cronet/CronetClientTransportTest.java4
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();