diff --git a/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java b/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java index 993a56bcc7..d1df633271 100644 --- a/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java +++ b/gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/InstantiatingGrpcChannelProvider.java @@ -693,13 +693,8 @@ ChannelCredentials createS2ASecuredChannelCredentials() { return s2aChannelCredentials; } - private ManagedChannel createSingleChannel() throws IOException { - GrpcHeaderInterceptor headerInterceptor = - new GrpcHeaderInterceptor(headersWithDuplicatesRemoved); - - GrpcMetadataHandlerInterceptor metadataHandlerInterceptor = - new GrpcMetadataHandlerInterceptor(); - + @InternalApi("For internal use by google-cloud-java clients only") + public ManagedChannelBuilder createChannelBuilder() throws IOException { int colon = endpoint.lastIndexOf(':'); if (colon < 0) { throw new IllegalStateException("invalid endpoint - should have been validated: " + endpoint); @@ -775,8 +770,19 @@ private ManagedChannel createSingleChannel() throws IOException { // See https://github.com/googleapis/gapic-generator/issues/2816 builder.disableServiceConfigLookUp(); } - builder = - builder + return builder; + } + + @InternalApi("For internal use by google-cloud-java clients only") + public ManagedChannelBuilder createDecoratedChannelBuilder() throws IOException { + GrpcHeaderInterceptor headerInterceptor = + new GrpcHeaderInterceptor(headersWithDuplicatesRemoved); + + GrpcMetadataHandlerInterceptor metadataHandlerInterceptor = + new GrpcMetadataHandlerInterceptor(); + + ManagedChannelBuilder builder = + createChannelBuilder() .intercept(new GrpcChannelUUIDInterceptor()) .intercept(new GrpcLoggingInterceptor()) .intercept(headerInterceptor) @@ -806,6 +812,12 @@ private ManagedChannel createSingleChannel() throws IOException { builder = channelConfigurator.apply(builder); } + return builder; + } + + private ManagedChannel createSingleChannel() throws IOException { + ManagedChannelBuilder builder = createDecoratedChannelBuilder(); + ManagedChannel managedChannel = builder.build(); if (channelPrimer != null) { channelPrimer.primeChannel(managedChannel);