diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java index 27d63c930de..937367e3d34 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java @@ -86,8 +86,6 @@ import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; -import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -239,6 +237,7 @@ public class GapicSpannerRpc implements SpannerRpc { private static final String CLIENT_LIBRARY_LANGUAGE = "spanner-java"; public static final String DEFAULT_USER_AGENT = CLIENT_LIBRARY_LANGUAGE + "/" + GaxProperties.getLibraryVersion(GapicSpannerRpc.class); + public static boolean DIRECTPATH_CHANNEL_CREATED = false; private static final String API_FILE = "grpc-gcp-apiconfig.json"; private boolean rpcIsClosed; @@ -281,8 +280,6 @@ public class GapicSpannerRpc implements SpannerRpc { private final int numChannels; private final boolean isGrpcGcpExtensionEnabled; - private Supplier directPathEnabledSupplier = () -> false; - private final GrpcCallContext baseGrpcCallContext; public static GapicSpannerRpc create(SpannerOptions options) { @@ -361,9 +358,7 @@ public GapicSpannerRpc(final SpannerOptions options) { SpannerInterceptorProvider.create( MoreObjects.firstNonNull( options.getInterceptorProvider(), - SpannerInterceptorProvider.createDefault( - options.getOpenTelemetry(), - (() -> directPathEnabledSupplier.get())))) + SpannerInterceptorProvider.createDefault(options.getOpenTelemetry()))) // This sets the trace context headers. .withTraceContext(endToEndTracingEnabled, options.getOpenTelemetry()) // This sets the response compressor (Server -> Client). @@ -425,12 +420,9 @@ public GapicSpannerRpc(final SpannerOptions options) { this.spannerStub = GrpcSpannerStubWithStubSettingsAndClientContext.create( spannerStubSettings, clientContext); - this.directPathEnabledSupplier = - Suppliers.memoize( - () -> { - return ((GrpcTransportChannel) clientContext.getTransportChannel()).isDirectPath() - && isAttemptDirectPathXds; - }); + DIRECTPATH_CHANNEL_CREATED = + ((GrpcTransportChannel) clientContext.getTransportChannel()).isDirectPath() + && isAttemptDirectPathXds; this.readRetrySettings = options.getSpannerStubSettings().streamingReadSettings().getRetrySettings(); this.readRetryableCodes = diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java index e3bc848dc1e..01aa28d8d93 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/HeaderInterceptor.java @@ -56,7 +56,6 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.ExecutionException; -import java.util.function.Supplier; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Matcher; @@ -99,12 +98,8 @@ class HeaderInterceptor implements ClientInterceptor { private static final Level LEVEL = Level.INFO; private final SpannerRpcMetrics spannerRpcMetrics; - private final Supplier directPathEnabledSupplier; - - HeaderInterceptor( - SpannerRpcMetrics spannerRpcMetrics, Supplier directPathEnabledSupplier) { + HeaderInterceptor(SpannerRpcMetrics spannerRpcMetrics) { this.spannerRpcMetrics = spannerRpcMetrics; - this.directPathEnabledSupplier = directPathEnabledSupplier; } @Override @@ -293,7 +288,7 @@ private Map getBuiltInMetricAttributes(String key, DatabaseName BuiltInMetricsConstant.INSTANCE_ID_KEY.getKey(), databaseName.getInstance()); attributes.put( BuiltInMetricsConstant.DIRECT_PATH_ENABLED_KEY.getKey(), - String.valueOf(this.directPathEnabledSupplier.get())); + String.valueOf(GapicSpannerRpc.DIRECTPATH_CHANNEL_CREATED)); return attributes; }); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java index c3c05b8af15..ec7a4e54a03 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/SpannerInterceptorProvider.java @@ -56,14 +56,14 @@ public static SpannerInterceptorProvider createDefault(OpenTelemetry openTelemet })); } + @ObsoleteApi("DirectPathEnabledSupplier is not used") public static SpannerInterceptorProvider createDefault( OpenTelemetry openTelemetry, Supplier directPathEnabledSupplier) { List defaultInterceptorList = new ArrayList<>(); defaultInterceptorList.add(new SpannerErrorInterceptor()); defaultInterceptorList.add( new LoggingInterceptor(Logger.getLogger(GapicSpannerRpc.class.getName()), Level.FINER)); - defaultInterceptorList.add( - new HeaderInterceptor(new SpannerRpcMetrics(openTelemetry), directPathEnabledSupplier)); + defaultInterceptorList.add(new HeaderInterceptor(new SpannerRpcMetrics(openTelemetry))); return new SpannerInterceptorProvider(ImmutableList.copyOf(defaultInterceptorList)); }