From 8a0a07cf28a523111956f3eee2ecf4ebe079a973 Mon Sep 17 00:00:00 2001 From: Rahul Kesharwani Date: Thu, 14 Feb 2019 13:52:33 +0530 Subject: [PATCH 1/2] Added HeaderProvider onto ClientContext#create settings Added HeaderProvider received from client to `BigtableStubSettings` for `ClientContext#create` creation. --- .../bigtable/data/v2/stub/EnhancedBigtableStub.java | 1 + .../bigtable/data/v2/stub/ResourceHeaderTest.java | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java index b9159a26eabe..b25aa4165cc3 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java +++ b/google-cloud-clients/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java @@ -90,6 +90,7 @@ public static EnhancedBigtableStub create(EnhancedBigtableStubSettings settings) .setTransportChannelProvider(settings.getTransportChannelProvider()) .setEndpoint(settings.getEndpoint()) .setCredentialsProvider(settings.getCredentialsProvider()) + .setHeaderProvider(settings.getHeaderProvider()) .setStreamWatchdogProvider(settings.getStreamWatchdogProvider()) .setStreamWatchdogCheckInterval(settings.getStreamWatchdogCheckInterval()); diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java index 8acb7cde9b17..51a9882ad752 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java +++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java @@ -20,6 +20,8 @@ import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.testing.InProcessServer; import com.google.api.gax.grpc.testing.LocalChannelProvider; +import com.google.api.gax.rpc.FixedHeaderProvider; +import com.google.api.gax.rpc.HeaderProvider; import com.google.bigtable.v2.BigtableGrpc; import com.google.cloud.bigtable.data.v2.BigtableDataClient; import com.google.cloud.bigtable.data.v2.BigtableDataSettings; @@ -48,6 +50,10 @@ public class ResourceHeaderTest { private static final Pattern EXPECTED_HEADER_PATTERN = Pattern.compile(".*" + NameUtil.formatTableName(PROJECT_ID, INSTANCE_ID, TABLE_ID) + ".*"); private static final String HEADER_NAME = "x-goog-request-params"; + private static final String TEST_HEADER_NAME = "simple-header-name"; + private static final String TEST_HEADER_VALUE = "simple-header-value"; + private static final Pattern TEST_PATTERN = + Pattern.compile( ".*"+ TEST_HEADER_VALUE + ".*"); private InProcessServer server; private LocalChannelProvider channelProvider; @@ -59,11 +65,13 @@ public void setUp() throws Exception { server.start(); channelProvider = LocalChannelProvider.create(NAME); + HeaderProvider headerProvider = FixedHeaderProvider.create(TEST_HEADER_NAME, TEST_HEADER_VALUE); BigtableDataSettings.Builder settings = BigtableDataSettings.newBuilder() .setProjectId(PROJECT_ID) .setInstanceId(INSTANCE_ID) .setTransportChannelProvider(channelProvider) + .setHeaderProvider(headerProvider) .setCredentialsProvider(NoCredentialsProvider.create()); // Force immediate flush @@ -132,5 +140,7 @@ public void readModifyWriteTest() { private void verifyHeaderSent() { boolean headerSent = channelProvider.isHeaderSent(HEADER_NAME, EXPECTED_HEADER_PATTERN); assertWithMessage("Header was sent").that(headerSent).isTrue(); + boolean testHeader = channelProvider.isHeaderSent(TEST_HEADER_NAME, TEST_PATTERN); + assertWithMessage("HeaderProvider's header received in Channel").that(testHeader).isTrue(); } } From 9e53effe48e4d6fedfd4e0f2e1de0ca4bcc1532b Mon Sep 17 00:00:00 2001 From: Rahul Kesharwani Date: Thu, 14 Feb 2019 13:56:25 +0530 Subject: [PATCH 2/2] fixed formatting --- .../google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java index 51a9882ad752..6176a81a5149 100644 --- a/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java +++ b/google-cloud-clients/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/ResourceHeaderTest.java @@ -52,8 +52,7 @@ public class ResourceHeaderTest { private static final String HEADER_NAME = "x-goog-request-params"; private static final String TEST_HEADER_NAME = "simple-header-name"; private static final String TEST_HEADER_VALUE = "simple-header-value"; - private static final Pattern TEST_PATTERN = - Pattern.compile( ".*"+ TEST_HEADER_VALUE + ".*"); + private static final Pattern TEST_PATTERN = Pattern.compile(".*" + TEST_HEADER_VALUE + ".*"); private InProcessServer server; private LocalChannelProvider channelProvider;