From 5224356452790a5f8d2f9c8e08be0ac743cf76fe Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Mon, 21 Jun 2021 13:59:16 -0400 Subject: [PATCH] chore: make ApiTracer internal API (#1408) * chore: make ApiTracer internal API * remove annotation * make constructor protected * renmase NoopApiTracer to BaseApiTracer --- .../com/google/api/gax/grpc/GrpcCallContext.java | 4 ++-- .../api/gax/httpjson/HttpJsonCallContext.java | 4 ++-- .../api/gax/retrying/NoopRetryingContext.java | 4 ++-- .../java/com/google/api/gax/rpc/ClientContext.java | 4 ++-- .../java/com/google/api/gax/rpc/StubSettings.java | 4 ++-- .../java/com/google/api/gax/tracing/ApiTracer.java | 4 ++-- .../google/api/gax/tracing/ApiTracerFactory.java | 4 ++-- .../{NoopApiTracer.java => BaseApiTracer.java} | 10 +++++----- ...racerFactory.java => BaseApiTracerFactory.java} | 14 +++++++------- .../google/api/gax/tracing/OpencensusTracer.java | 2 +- .../api/gax/tracing/OpencensusTracerFactory.java | 2 +- .../api/gax/retrying/NoopRetryingContextTest.java | 4 ++-- .../rpc/ServerStreamingAttemptCallableTest.java | 6 +++--- .../api/gax/rpc/testing/FakeCallContext.java | 4 ++-- .../gax/tracing/OpencensusTracerFactoryTest.java | 6 +++--- .../api/gax/tracing/TracedBidiCallableTest.java | 2 +- .../google/api/gax/tracing/TracedCallableTest.java | 2 +- .../tracing/TracedClientStreamingCallableTest.java | 2 +- .../gax/tracing/TracedOperationCallableTest.java | 2 +- .../api/gax/tracing/TracedUnaryCallableTest.java | 2 +- 20 files changed, 43 insertions(+), 43 deletions(-) rename gax/src/main/java/com/google/api/gax/tracing/{NoopApiTracer.java => BaseApiTracer.java} (91%) rename gax/src/main/java/com/google/api/gax/tracing/{NoopApiTracerFactory.java => BaseApiTracerFactory.java} (82%) diff --git a/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java b/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java index b7fb63027..fdcdd9588 100644 --- a/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java +++ b/gax-grpc/src/main/java/com/google/api/gax/grpc/GrpcCallContext.java @@ -36,7 +36,7 @@ import com.google.api.gax.rpc.TransportChannel; import com.google.api.gax.rpc.internal.Headers; import com.google.api.gax.tracing.ApiTracer; -import com.google.api.gax.tracing.NoopApiTracer; +import com.google.api.gax.tracing.BaseApiTracer; import com.google.auth.Credentials; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -479,7 +479,7 @@ public GrpcCallContext withRequestParamsDynamicHeaderOption(String requestParams public ApiTracer getTracer() { ApiTracer tracer = callOptions.getOption(TRACER_KEY); if (tracer == null) { - tracer = NoopApiTracer.getInstance(); + tracer = BaseApiTracer.getInstance(); } return tracer; } diff --git a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java index 298499779..700716217 100644 --- a/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java +++ b/gax-httpjson/src/main/java/com/google/api/gax/httpjson/HttpJsonCallContext.java @@ -36,7 +36,7 @@ import com.google.api.gax.rpc.TransportChannel; import com.google.api.gax.rpc.internal.Headers; import com.google.api.gax.tracing.ApiTracer; -import com.google.api.gax.tracing.NoopApiTracer; +import com.google.api.gax.tracing.BaseApiTracer; import com.google.auth.Credentials; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -352,7 +352,7 @@ public HttpJsonCallContext withDeadline(Instant newDeadline) { @Override public ApiTracer getTracer() { if (tracer == null) { - return NoopApiTracer.getInstance(); + return BaseApiTracer.getInstance(); } return tracer; } diff --git a/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java b/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java index ae7cc0438..840918ed3 100644 --- a/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java +++ b/gax/src/main/java/com/google/api/gax/retrying/NoopRetryingContext.java @@ -34,7 +34,7 @@ import com.google.api.gax.rpc.StatusCode.Code; import com.google.api.gax.tracing.ApiTracer; -import com.google.api.gax.tracing.NoopApiTracer; +import com.google.api.gax.tracing.BaseApiTracer; import java.util.Set; import javax.annotation.Nonnull; @@ -51,7 +51,7 @@ public static RetryingContext create() { @Nonnull @Override public ApiTracer getTracer() { - return NoopApiTracer.getInstance(); + return BaseApiTracer.getInstance(); } @Override diff --git a/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java b/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java index c8a1920c9..cd50f2fb8 100644 --- a/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java +++ b/gax/src/main/java/com/google/api/gax/rpc/ClientContext.java @@ -38,7 +38,7 @@ import com.google.api.gax.rpc.internal.QuotaProjectIdHidingCredentials; import com.google.api.gax.rpc.mtls.MtlsProvider; import com.google.api.gax.tracing.ApiTracerFactory; -import com.google.api.gax.tracing.NoopApiTracerFactory; +import com.google.api.gax.tracing.BaseApiTracerFactory; import com.google.auth.Credentials; import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; @@ -119,7 +119,7 @@ public static Builder newBuilder() { .setClock(NanoClock.getDefaultClock()) .setStreamWatchdog(null) .setStreamWatchdogCheckInterval(Duration.ZERO) - .setTracerFactory(NoopApiTracerFactory.getInstance()) + .setTracerFactory(BaseApiTracerFactory.getInstance()) .setQuotaProjectId(null); } diff --git a/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java b/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java index ebb63f916..0dc88c36c 100644 --- a/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java +++ b/gax/src/main/java/com/google/api/gax/rpc/StubSettings.java @@ -40,7 +40,7 @@ import com.google.api.gax.core.InstantiatingExecutorProvider; import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.tracing.ApiTracerFactory; -import com.google.api.gax.tracing.NoopApiTracerFactory; +import com.google.api.gax.tracing.BaseApiTracerFactory; import com.google.auth.oauth2.QuotaProjectIdProvider; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; @@ -257,7 +257,7 @@ protected Builder(ClientContext clientContext) { this.quotaProjectId = null; this.streamWatchdogProvider = InstantiatingWatchdogProvider.create(); this.streamWatchdogCheckInterval = Duration.ofSeconds(10); - this.tracerFactory = NoopApiTracerFactory.getInstance(); + this.tracerFactory = BaseApiTracerFactory.getInstance(); } else { this.executorProvider = FixedExecutorProvider.create(clientContext.getExecutor()); this.transportChannelProvider = diff --git a/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java b/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java index 5cbace751..bc329630e 100644 --- a/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java +++ b/gax/src/main/java/com/google/api/gax/tracing/ApiTracer.java @@ -39,9 +39,9 @@ * its lifecycle. Constructing an instance of a subclass will implicitly signal the start of a new * operation. * - *

For internal use only. + *

For internal use only. google-cloud-java libraries should extend {@link BaseApiTracer}. */ -@InternalApi("For internal use by google-cloud-java clients only") +@InternalApi public interface ApiTracer { /** diff --git a/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java b/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java index dbd50d76d..bb8345b88 100644 --- a/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java +++ b/gax/src/main/java/com/google/api/gax/tracing/ApiTracerFactory.java @@ -38,9 +38,9 @@ *

In general a single instance of an {@link ApiTracer} will correspond to a single logical * operation. * - *

For internal use only. + *

For internal use only. google-cloud-java libraries should extend {@link BaseApiTracerFactory}. */ -@InternalApi("For internal use by google-cloud-java clients only") +@InternalApi @InternalExtensionOnly public interface ApiTracerFactory { /** The type of operation the {@link ApiTracer} is tracing. */ diff --git a/gax/src/main/java/com/google/api/gax/tracing/NoopApiTracer.java b/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java similarity index 91% rename from gax/src/main/java/com/google/api/gax/tracing/NoopApiTracer.java rename to gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java index 729ebdc2c..4ff8e901f 100644 --- a/gax/src/main/java/com/google/api/gax/tracing/NoopApiTracer.java +++ b/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracer.java @@ -33,13 +33,13 @@ import org.threeten.bp.Duration; /** - * An implementation of {@link ApiTracer} that does nothing. + * A base implementation of {@link ApiTracer} that does nothing. * *

For internal use only. */ -@InternalApi -public final class NoopApiTracer implements ApiTracer { - private static final ApiTracer INSTANCE = new NoopApiTracer(); +@InternalApi("For internal use by google-cloud-java clients only") +public class BaseApiTracer implements ApiTracer { + private static final ApiTracer INSTANCE = new BaseApiTracer(); private static final Scope NOOP_SCOPE = new Scope() { @@ -49,7 +49,7 @@ public void close() { } }; - private NoopApiTracer() {} + protected BaseApiTracer() {} public static ApiTracer getInstance() { return INSTANCE; diff --git a/gax/src/main/java/com/google/api/gax/tracing/NoopApiTracerFactory.java b/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java similarity index 82% rename from gax/src/main/java/com/google/api/gax/tracing/NoopApiTracerFactory.java rename to gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java index ff93f502d..0b04bf872 100644 --- a/gax/src/main/java/com/google/api/gax/tracing/NoopApiTracerFactory.java +++ b/gax/src/main/java/com/google/api/gax/tracing/BaseApiTracerFactory.java @@ -32,23 +32,23 @@ import com.google.api.core.InternalApi; /** - * Factory that will build {@link ApiTracer}s that do nothing. + * Base factory that will build {@link ApiTracer}s that do nothing. * *

For internal use only. */ -@InternalApi -public final class NoopApiTracerFactory implements ApiTracerFactory { - private static final NoopApiTracerFactory INSTANCE = new NoopApiTracerFactory(); +@InternalApi("For internal use by google-cloud-java clients only") +public class BaseApiTracerFactory implements ApiTracerFactory { + private static final BaseApiTracerFactory INSTANCE = new BaseApiTracerFactory(); - public static NoopApiTracerFactory getInstance() { + public static BaseApiTracerFactory getInstance() { return INSTANCE; } - private NoopApiTracerFactory() {} + protected BaseApiTracerFactory() {} /** {@inheritDoc} */ @Override public ApiTracer newTracer(ApiTracer parent, SpanName spanName, OperationType operationType) { - return NoopApiTracer.getInstance(); + return BaseApiTracer.getInstance(); } } diff --git a/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java b/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java index 9bd5f583e..8025917dc 100644 --- a/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java +++ b/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracer.java @@ -207,7 +207,7 @@ * com.google.api.gax.rpc.ApiStreamObserver} for more information. */ @BetaApi("Surface for tracing is not yet stable") -public class OpencensusTracer implements ApiTracer { +public class OpencensusTracer extends BaseApiTracer { private final Tracer tracer; private final Span span; private final OperationType operationType; diff --git a/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java b/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java index 6dbe98def..b9966b1f5 100644 --- a/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java +++ b/gax/src/main/java/com/google/api/gax/tracing/OpencensusTracerFactory.java @@ -49,7 +49,7 @@ *

This class is thread safe. */ @InternalApi("For google-cloud-java client use only") -public final class OpencensusTracerFactory implements ApiTracerFactory { +public final class OpencensusTracerFactory extends BaseApiTracerFactory { @Nonnull private final Tracer internalTracer; @Nonnull private final Map spanAttributes; diff --git a/gax/src/test/java/com/google/api/gax/retrying/NoopRetryingContextTest.java b/gax/src/test/java/com/google/api/gax/retrying/NoopRetryingContextTest.java index 285b8f5ce..23a00470d 100644 --- a/gax/src/test/java/com/google/api/gax/retrying/NoopRetryingContextTest.java +++ b/gax/src/test/java/com/google/api/gax/retrying/NoopRetryingContextTest.java @@ -32,7 +32,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; -import com.google.api.gax.tracing.NoopApiTracer; +import com.google.api.gax.tracing.BaseApiTracer; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -43,7 +43,7 @@ public class NoopRetryingContextTest { @Test public void testGetTracer() { RetryingContext context = NoopRetryingContext.create(); - assertSame(NoopApiTracer.getInstance(), context.getTracer()); + assertSame(BaseApiTracer.getInstance(), context.getTracer()); } @Test diff --git a/gax/src/test/java/com/google/api/gax/rpc/ServerStreamingAttemptCallableTest.java b/gax/src/test/java/com/google/api/gax/rpc/ServerStreamingAttemptCallableTest.java index 5cdf8bc4a..a0c8b833f 100644 --- a/gax/src/test/java/com/google/api/gax/rpc/ServerStreamingAttemptCallableTest.java +++ b/gax/src/test/java/com/google/api/gax/rpc/ServerStreamingAttemptCallableTest.java @@ -41,7 +41,7 @@ import com.google.api.gax.rpc.testing.FakeCallContext; import com.google.api.gax.rpc.testing.MockStreamingApi.MockServerStreamingCall; import com.google.api.gax.rpc.testing.MockStreamingApi.MockServerStreamingCallable; -import com.google.api.gax.tracing.NoopApiTracer; +import com.google.api.gax.tracing.BaseApiTracer; import com.google.common.collect.Queues; import com.google.common.truth.Truth; import java.util.concurrent.BlockingDeque; @@ -90,7 +90,7 @@ private ServerStreamingAttemptCallable createCallable(ApiCallCon @Test public void testUserProvidedContextTimeout() { // Mock up the ApiCallContext as if the user provided a timeout and streamWaitTimeout. - Mockito.doReturn(NoopApiTracer.getInstance()).when(mockedCallContext).getTracer(); + Mockito.doReturn(BaseApiTracer.getInstance()).when(mockedCallContext).getTracer(); Mockito.doReturn(Duration.ofHours(5)).when(mockedCallContext).getTimeout(); Mockito.doReturn(Duration.ofHours(5)).when(mockedCallContext).getStreamWaitTimeout(); @@ -125,7 +125,7 @@ public void testUserProvidedContextTimeout() { @Test public void testNoUserProvidedContextTimeout() { // Mock up the ApiCallContext as if the user did not provide custom timeouts. - Mockito.doReturn(NoopApiTracer.getInstance()).when(mockedCallContext).getTracer(); + Mockito.doReturn(BaseApiTracer.getInstance()).when(mockedCallContext).getTracer(); Mockito.doReturn(null).when(mockedCallContext).getTimeout(); Mockito.doReturn(null).when(mockedCallContext).getStreamWaitTimeout(); Mockito.doReturn(mockedCallContext).when(mockedCallContext).withTimeout(totalTimeout); diff --git a/gax/src/test/java/com/google/api/gax/rpc/testing/FakeCallContext.java b/gax/src/test/java/com/google/api/gax/rpc/testing/FakeCallContext.java index 09696b9ff..6d16048d1 100644 --- a/gax/src/test/java/com/google/api/gax/rpc/testing/FakeCallContext.java +++ b/gax/src/test/java/com/google/api/gax/rpc/testing/FakeCallContext.java @@ -37,7 +37,7 @@ import com.google.api.gax.rpc.TransportChannel; import com.google.api.gax.rpc.internal.Headers; import com.google.api.gax.tracing.ApiTracer; -import com.google.api.gax.tracing.NoopApiTracer; +import com.google.api.gax.tracing.BaseApiTracer; import com.google.auth.Credentials; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; @@ -346,7 +346,7 @@ public Map> getExtraHeaders() { @Nonnull public ApiTracer getTracer() { if (tracer == null) { - return NoopApiTracer.getInstance(); + return BaseApiTracer.getInstance(); } return tracer; } diff --git a/gax/src/test/java/com/google/api/gax/tracing/OpencensusTracerFactoryTest.java b/gax/src/test/java/com/google/api/gax/tracing/OpencensusTracerFactoryTest.java index 0299e3fae..457492acf 100644 --- a/gax/src/test/java/com/google/api/gax/tracing/OpencensusTracerFactoryTest.java +++ b/gax/src/test/java/com/google/api/gax/tracing/OpencensusTracerFactoryTest.java @@ -80,7 +80,7 @@ public void testSpanNamePassthrough() { new OpencensusTracerFactory(internalTracer, ImmutableMap.of()); factory.newTracer( - NoopApiTracer.getInstance(), SpanName.of("FakeClient", "FakeMethod"), OperationType.Unary); + BaseApiTracer.getInstance(), SpanName.of("FakeClient", "FakeMethod"), OperationType.Unary); verify(internalTracer) .spanBuilderWithExplicitParent(eq("FakeClient.FakeMethod"), nullable(Span.class)); @@ -96,7 +96,7 @@ public void testImplicitParentSpan() { try { factory.newTracer( - NoopApiTracer.getInstance(), + BaseApiTracer.getInstance(), SpanName.of("FakeClient", "FakeMethod"), OperationType.Unary); } finally { @@ -146,7 +146,7 @@ public void testSpanAttributes() { new OpencensusTracerFactory(internalTracer, ImmutableMap.of("gax.version", "1.2.3")); factory.newTracer( - NoopApiTracer.getInstance(), SpanName.of("FakeClient", "FakeMethod"), OperationType.Unary); + BaseApiTracer.getInstance(), SpanName.of("FakeClient", "FakeMethod"), OperationType.Unary); verify(span, times(1)) .putAttributes( diff --git a/gax/src/test/java/com/google/api/gax/tracing/TracedBidiCallableTest.java b/gax/src/test/java/com/google/api/gax/tracing/TracedBidiCallableTest.java index 703bda606..93a007f73 100644 --- a/gax/src/test/java/com/google/api/gax/tracing/TracedBidiCallableTest.java +++ b/gax/src/test/java/com/google/api/gax/tracing/TracedBidiCallableTest.java @@ -65,7 +65,7 @@ public class TracedBidiCallableTest { private FakeCallContext outerCallContext; @Mock private ApiTracerFactory tracerFactory; - private ApiTracer parentTracer = NoopApiTracer.getInstance(); + private ApiTracer parentTracer = BaseApiTracer.getInstance(); @Mock private ApiTracer tracer; private TracedBidiCallable tracedCallable; diff --git a/gax/src/test/java/com/google/api/gax/tracing/TracedCallableTest.java b/gax/src/test/java/com/google/api/gax/tracing/TracedCallableTest.java index bb96d4543..1a2454d5b 100644 --- a/gax/src/test/java/com/google/api/gax/tracing/TracedCallableTest.java +++ b/gax/src/test/java/com/google/api/gax/tracing/TracedCallableTest.java @@ -76,7 +76,7 @@ public class TracedCallableTest { @Before public void setUp() { - parentTracer = NoopApiTracer.getInstance(); + parentTracer = BaseApiTracer.getInstance(); // Wire the mock tracer factory when(tracerFactory.newTracer( diff --git a/gax/src/test/java/com/google/api/gax/tracing/TracedClientStreamingCallableTest.java b/gax/src/test/java/com/google/api/gax/tracing/TracedClientStreamingCallableTest.java index d05fe0ab3..cfee1c2a7 100644 --- a/gax/src/test/java/com/google/api/gax/tracing/TracedClientStreamingCallableTest.java +++ b/gax/src/test/java/com/google/api/gax/tracing/TracedClientStreamingCallableTest.java @@ -63,7 +63,7 @@ public class TracedClientStreamingCallableTest { public @Rule MockitoRule mockitoRule = MockitoJUnit.rule().strictness(Strictness.STRICT_STUBS); @Mock private ApiTracerFactory tracerFactory; - private ApiTracer parentTracer = NoopApiTracer.getInstance(); + private ApiTracer parentTracer = BaseApiTracer.getInstance(); @Mock private ApiTracer tracer; private FakeClientCallable innerCallable; diff --git a/gax/src/test/java/com/google/api/gax/tracing/TracedOperationCallableTest.java b/gax/src/test/java/com/google/api/gax/tracing/TracedOperationCallableTest.java index 8cebe60ec..80efd1f47 100644 --- a/gax/src/test/java/com/google/api/gax/tracing/TracedOperationCallableTest.java +++ b/gax/src/test/java/com/google/api/gax/tracing/TracedOperationCallableTest.java @@ -76,7 +76,7 @@ public class TracedOperationCallableTest { @Before public void setUp() { - parentTracer = NoopApiTracer.getInstance(); + parentTracer = BaseApiTracer.getInstance(); // Wire the mock tracer factory when(tracerFactory.newTracer( diff --git a/gax/src/test/java/com/google/api/gax/tracing/TracedUnaryCallableTest.java b/gax/src/test/java/com/google/api/gax/tracing/TracedUnaryCallableTest.java index 1a4063f5f..9d066bdb4 100644 --- a/gax/src/test/java/com/google/api/gax/tracing/TracedUnaryCallableTest.java +++ b/gax/src/test/java/com/google/api/gax/tracing/TracedUnaryCallableTest.java @@ -70,7 +70,7 @@ public class TracedUnaryCallableTest { @Before public void setUp() { - parentTracer = NoopApiTracer.getInstance(); + parentTracer = BaseApiTracer.getInstance(); // Wire the mock tracer factory when(tracerFactory.newTracer(