diff --git a/generation_config.yaml b/generation_config.yaml index 5d82f26a02..656e9053e3 100644 --- a/generation_config.yaml +++ b/generation_config.yaml @@ -1,5 +1,5 @@ -gapic_generator_version: 2.68.0 -googleapis_commitish: f5cb7afc40b63d52f43bc306cb9b64a87b681aea +gapic_generator_version: 2.69.0 +googleapis_commitish: 9a832ccde3f3ca4d4e1c39593b1cbf9aa62a75b3 libraries_bom_version: 26.79.0 template_excludes: - .gitignore diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java index 86fa2b0ba9..6fa3f1df05 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStubSettings.java @@ -874,6 +874,7 @@ protected LibraryMetadata getLibraryMetadata() { return LibraryMetadata.newBuilder() .setArtifactName("com.google.cloud:google-cloud-bigtable") .setRepository("googleapis/java-bigtable") + .setVersion(Version.VERSION) .build(); } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java index e4baf9f806..2443e8803c 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStubSettings.java @@ -954,6 +954,7 @@ protected LibraryMetadata getLibraryMetadata() { return LibraryMetadata.newBuilder() .setArtifactName("com.google.cloud:google-cloud-bigtable") .setRepository("googleapis/java-bigtable") + .setVersion(Version.VERSION) .build(); } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java index 7c2f8aab23..110b421d95 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java @@ -563,6 +563,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getInstanceTransportSettings = GrpcCallSettings.newBuilder() @@ -573,6 +574,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listInstancesTransportSettings = GrpcCallSettings.newBuilder() @@ -583,6 +585,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings updateInstanceTransportSettings = GrpcCallSettings.newBuilder() @@ -593,6 +596,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings partialUpdateInstanceTransportSettings = @@ -614,6 +618,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings createClusterTransportSettings = GrpcCallSettings.newBuilder() @@ -624,6 +629,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getClusterTransportSettings = GrpcCallSettings.newBuilder() @@ -634,6 +640,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listClustersTransportSettings = GrpcCallSettings.newBuilder() @@ -644,6 +651,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings updateClusterTransportSettings = GrpcCallSettings.newBuilder() @@ -654,6 +662,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings partialUpdateClusterTransportSettings = GrpcCallSettings.newBuilder() @@ -674,6 +683,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings createAppProfileTransportSettings = GrpcCallSettings.newBuilder() @@ -684,6 +694,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getAppProfileTransportSettings = GrpcCallSettings.newBuilder() @@ -694,6 +705,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listAppProfilesTransportSettings = @@ -705,6 +717,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings updateAppProfileTransportSettings = GrpcCallSettings.newBuilder() @@ -726,6 +739,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings getIamPolicyTransportSettings = GrpcCallSettings.newBuilder() @@ -736,6 +750,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("resource", String.valueOf(request.getResource())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getResource()) .build(); GrpcCallSettings setIamPolicyTransportSettings = GrpcCallSettings.newBuilder() @@ -746,6 +761,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("resource", String.valueOf(request.getResource())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getResource()) .build(); GrpcCallSettings testIamPermissionsTransportSettings = @@ -757,6 +773,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("resource", String.valueOf(request.getResource())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getResource()) .build(); GrpcCallSettings listHotTabletsTransportSettings = @@ -768,6 +785,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings createLogicalViewTransportSettings = GrpcCallSettings.newBuilder() @@ -778,6 +796,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getLogicalViewTransportSettings = GrpcCallSettings.newBuilder() @@ -788,6 +807,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listLogicalViewsTransportSettings = @@ -799,6 +819,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings updateLogicalViewTransportSettings = GrpcCallSettings.newBuilder() @@ -820,6 +841,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings createMaterializedViewTransportSettings = @@ -831,6 +853,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getMaterializedViewTransportSettings = @@ -842,6 +865,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listMaterializedViewsTransportSettings = @@ -854,6 +878,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings updateMaterializedViewTransportSettings = @@ -877,6 +902,7 @@ protected GrpcBigtableInstanceAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); this.createInstanceCallable = diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java index 174683dc21..8b1bc39910 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java @@ -606,6 +606,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings createTableFromSnapshotTransportSettings = @@ -617,6 +618,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings listTablesTransportSettings = GrpcCallSettings.newBuilder() @@ -627,6 +629,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getTableTransportSettings = GrpcCallSettings.newBuilder() @@ -637,6 +640,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings updateTableTransportSettings = GrpcCallSettings.newBuilder() @@ -657,6 +661,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings undeleteTableTransportSettings = GrpcCallSettings.newBuilder() @@ -667,6 +672,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings createAuthorizedViewTransportSettings = GrpcCallSettings.newBuilder() @@ -677,6 +683,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings listAuthorizedViewsTransportSettings = @@ -688,6 +695,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getAuthorizedViewTransportSettings = GrpcCallSettings.newBuilder() @@ -698,6 +706,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings updateAuthorizedViewTransportSettings = GrpcCallSettings.newBuilder() @@ -720,6 +729,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings modifyColumnFamiliesTransportSettings = GrpcCallSettings.newBuilder() @@ -730,6 +740,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings dropRowRangeTransportSettings = GrpcCallSettings.newBuilder() @@ -740,6 +751,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings generateConsistencyTokenTransportSettings = @@ -752,6 +764,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings checkConsistencyTransportSettings = @@ -763,6 +776,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings snapshotTableTransportSettings = GrpcCallSettings.newBuilder() @@ -773,6 +787,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings getSnapshotTransportSettings = GrpcCallSettings.newBuilder() @@ -783,6 +798,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listSnapshotsTransportSettings = GrpcCallSettings.newBuilder() @@ -793,6 +809,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings deleteSnapshotTransportSettings = GrpcCallSettings.newBuilder() @@ -803,6 +820,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings createBackupTransportSettings = GrpcCallSettings.newBuilder() @@ -813,6 +831,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getBackupTransportSettings = GrpcCallSettings.newBuilder() @@ -823,6 +842,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings updateBackupTransportSettings = GrpcCallSettings.newBuilder() @@ -843,6 +863,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listBackupsTransportSettings = GrpcCallSettings.newBuilder() @@ -853,6 +874,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings restoreTableTransportSettings = GrpcCallSettings.newBuilder() @@ -863,6 +885,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings copyBackupTransportSettings = GrpcCallSettings.newBuilder() @@ -873,6 +896,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings getIamPolicyTransportSettings = GrpcCallSettings.newBuilder() @@ -883,6 +907,7 @@ protected GrpcBigtableTableAdminStub( builder.add("resource", String.valueOf(request.getResource())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getResource()) .build(); GrpcCallSettings setIamPolicyTransportSettings = GrpcCallSettings.newBuilder() @@ -893,6 +918,7 @@ protected GrpcBigtableTableAdminStub( builder.add("resource", String.valueOf(request.getResource())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getResource()) .build(); GrpcCallSettings testIamPermissionsTransportSettings = @@ -904,6 +930,7 @@ protected GrpcBigtableTableAdminStub( builder.add("resource", String.valueOf(request.getResource())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getResource()) .build(); GrpcCallSettings createSchemaBundleTransportSettings = GrpcCallSettings.newBuilder() @@ -914,6 +941,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings updateSchemaBundleTransportSettings = GrpcCallSettings.newBuilder() @@ -935,6 +963,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings listSchemaBundlesTransportSettings = @@ -946,6 +975,7 @@ protected GrpcBigtableTableAdminStub( builder.add("parent", String.valueOf(request.getParent())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getParent()) .build(); GrpcCallSettings deleteSchemaBundleTransportSettings = GrpcCallSettings.newBuilder() @@ -956,6 +986,7 @@ protected GrpcBigtableTableAdminStub( builder.add("name", String.valueOf(request.getName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); this.createTableCallable = diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/Version.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/Version.java new file mode 100644 index 0000000000..9b8579a471 --- /dev/null +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/admin/v2/stub/Version.java @@ -0,0 +1,27 @@ +/* + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigtable.admin.v2.stub; + +import com.google.api.core.InternalApi; + +@InternalApi("For internal use only") +final class Version { + // {x-version-update-start:google-cloud-bigtable:current} + static final String VERSION = "2.76.1-SNAPSHOT"; + // {x-version-update-end} + +} diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/AuthorizedViewName.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/AuthorizedViewName.java index d239b5055a..dd90a70683 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/AuthorizedViewName.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/AuthorizedViewName.java @@ -82,13 +82,15 @@ public static AuthorizedViewName parse(String name) { !parts.get(3).isEmpty(), "Invalid authorized view name %s, must have an instance id", name); Preconditions.checkArgument( "tables".equals(parts.get(4)), - "Invalid authorized view name: %s, must start with projects/$PROJECT_ID/instances/$INSTANCE_ID/tables", + "Invalid authorized view name: %s, must start with" + + " projects/$PROJECT_ID/instances/$INSTANCE_ID/tables", name); Preconditions.checkArgument( !parts.get(5).isEmpty(), "Invalid authorized view name %s, must have table id", name); Preconditions.checkArgument( "authorizedViews".equals(parts.get(6)), - "Invalid authorized view name: %s, must start with projects/$PROJECT_ID/instances/$INSTANCE_ID/tables/$TABLE_ID/authorizedViews", + "Invalid authorized view name: %s, must start with" + + " projects/$PROJECT_ID/instances/$INSTANCE_ID/tables/$TABLE_ID/authorizedViews", name); Preconditions.checkArgument( !parts.get(7).isEmpty(), diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/MaterializedViewName.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/MaterializedViewName.java index 5429584d06..30f4b85d2f 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/MaterializedViewName.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/api/MaterializedViewName.java @@ -66,7 +66,8 @@ public static MaterializedViewName parse(String name) { name); Preconditions.checkArgument( "materializedViews".equals(parts.get(4)), - "Invalid materialized view name: %s, must start with projects/$PROJECT_ID/instances/$INSTANCE_ID/materializedViews", + "Invalid materialized view name: %s, must start with" + + " projects/$PROJECT_ID/instances/$INSTANCE_ID/materializedViews", name); Preconditions.checkArgument( !parts.get(5).isEmpty(), "Invalid materialized view name %s, must have table id", name); diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/channels/ChannelPoolDpImpl.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/channels/ChannelPoolDpImpl.java index f2568ce524..28a05523f2 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/channels/ChannelPoolDpImpl.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/channels/ChannelPoolDpImpl.java @@ -178,7 +178,8 @@ public synchronized SessionStream newStream( () -> { log( Level.FINE, - "Couldn't find an existing channel with capacity, num outstanding streams across all channel groups: %d, num groups: %d", + "Couldn't find an existing channel with capacity, num outstanding streams across" + + " all channel groups: %d, num groups: %d", channelGroups.stream().mapToInt(g -> g.numStreams).sum(), channelGroups.size()); diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/middleware/RetryingVRpc.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/middleware/RetryingVRpc.java index 9c36f6fcfe..d6048bfb91 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/middleware/RetryingVRpc.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/middleware/RetryingVRpc.java @@ -67,7 +67,8 @@ public RetryingVRpc(Supplier> supplier, ScheduledExecutorServi new SynchronizationContext( (t, e) -> { this.cancel( - "Unexpected error while notifying the caller of RetryingVRpc. Trying to cancel vRpc to ensure consistent state", + "Unexpected error while notifying the caller of RetryingVRpc. Trying to cancel" + + " vRpc to ensure consistent state", e); }); @@ -203,7 +204,8 @@ public void onClose(VRpcResult result) { if (currentState != Active.this) { LOG.log( Level.FINE, - "Discarding server close with result {0} because the the attempt is no longer active.", + "Discarding server close with result {0} because the the attempt is no" + + " longer active.", result); return; } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImpl.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImpl.java index 9cd58da876..f79142171f 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImpl.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImpl.java @@ -281,7 +281,8 @@ private void startGracefulClose() { debugTagTracer.checkPrecondition( state == SessionState.CLOSING, "session_graceful_close_wrong_state", - "Session error: %s tried to actuate session closing when not in the correct state. State: %s", + "Session error: %s tried to actuate session closing when not in the correct state. State:" + + " %s", info.getLogName(), state); @@ -454,7 +455,8 @@ private void handleVRpcResponse(VirtualRpcResponse vrpc) { TelemetryConfiguration.Level.WARN, "session_closed_discard_vrpc_response"); logger.warning( String.format( - "%s Discarding vRPC error because session is past the CLOSING phase with the reason: %s", + "%s Discarding vRPC error because session is past the CLOSING phase with the" + + " reason: %s", info.getLogName(), closeReason)); return; } @@ -531,7 +533,8 @@ private void handleVRpcErrorResponse(ErrorResponse error) { TelemetryConfiguration.Level.WARN, "session_closed_discard_vrpc_response"); logger.warning( String.format( - "%s Discarding vRPC error because session is past the CLOSING phase with the reason: %s, error was: %s", + "%s Discarding vRPC error because session is past the CLOSING phase with the" + + " reason: %s, error was: %s", info.getLogName(), closeReason, error)); return; } @@ -663,7 +666,8 @@ private void dispatchStreamClosed(Status status, Metadata trailers) { logger.log( Level.WARNING, String.format( - "Session error: %s Unhandled exception while notifying vRpc of session closure status %s", + "Session error: %s Unhandled exception while notifying vRpc of session closure" + + " status %s", info.getLogName(), status), t); } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImpl.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImpl.java index 9a69907965..af1767be38 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImpl.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImpl.java @@ -328,7 +328,8 @@ private synchronized void createSession(OpenParams openParams) { debugTagTracer.record(TelemetryConfiguration.Level.DEBUG, "session_pool_no_budget"); logger.fine( String.format( - "Refusing to add a new session due to exhausted %s concurrent create session requests", + "Refusing to add a new session due to exhausted %s concurrent create session" + + " requests", budget.getMaxConcurrentRequest())); // Retry create session if we run out of budget. In the edge case where we get a new VRpc // after failing to create any sessions and exhausting all the budget, we'll retry session @@ -508,7 +509,8 @@ private void onSessionClose( VRpcResult.createRejectedError( Status.UNAVAILABLE.withDescription( String.format( - "Session failed with consecutive failures. Most recent server status: %s, metadata: %s.", + "Session failed with consecutive failures. Most recent server status: %s," + + " metadata: %s.", status, trailers))); for (PendingVRpc vrpc : toBeClosed) { try { @@ -803,7 +805,8 @@ public void run() { debugTagTracer.record(TelemetryConfiguration.Level.WARN, "watchdog_close_session"); LOG.fine( String.format( - "Found session %s that lingered too long in WAIT_SERVER_CLOSE state, canceling session", + "Found session %s that lingered too long in WAIT_SERVER_CLOSE state, canceling" + + " session", handle.getSession().getLogName())); handle .getSession() @@ -812,7 +815,8 @@ public void run() { .setReason(CloseSessionReason.CLOSE_SESSION_REASON_ERROR) .setDescription( String.format( - "Watchdog found session %s in awaiting close for too long. Last activity was %s ago.", + "Watchdog found session %s in awaiting close for too long. Last" + + " activity was %s ago.", handle.getSession().getLogName(), Duration.between( handle.getSession().getLastStateChange(), Instant.now(clock)))) diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java index a411621176..f7382755b8 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java @@ -266,6 +266,7 @@ protected LibraryMetadata getLibraryMetadata() { return LibraryMetadata.newBuilder() .setArtifactName("com.google.cloud:google-cloud-bigtable") .setRepository("googleapis/java-bigtable") + .setVersion(Version.VERSION) .build(); } diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableStub.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableStub.java index 65d822e8f5..089bbb8a25 100644 --- a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableStub.java +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/GrpcBigtableStub.java @@ -317,6 +317,7 @@ protected GrpcBigtableStub( builder.add(request.getMaterializedViewName(), "name", READ_ROWS_3_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings sampleRowKeysTransportSettings = GrpcCallSettings.newBuilder() @@ -336,6 +337,7 @@ protected GrpcBigtableStub( request.getMaterializedViewName(), "name", SAMPLE_ROW_KEYS_3_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings mutateRowTransportSettings = GrpcCallSettings.newBuilder() @@ -350,6 +352,7 @@ protected GrpcBigtableStub( request.getAuthorizedViewName(), "table_name", MUTATE_ROW_2_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings mutateRowsTransportSettings = GrpcCallSettings.newBuilder() @@ -364,6 +367,7 @@ protected GrpcBigtableStub( request.getAuthorizedViewName(), "table_name", MUTATE_ROWS_2_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings checkAndMutateRowTransportSettings = @@ -386,6 +390,7 @@ protected GrpcBigtableStub( CHECK_AND_MUTATE_ROW_2_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings pingAndWarmTransportSettings = GrpcCallSettings.newBuilder() @@ -398,6 +403,7 @@ protected GrpcBigtableStub( request.getAppProfileId(), "app_profile_id", PING_AND_WARM_1_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getName()) .build(); GrpcCallSettings readModifyWriteRowTransportSettings = @@ -420,6 +426,7 @@ protected GrpcBigtableStub( READ_MODIFY_WRITE_ROW_2_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings< GenerateInitialChangeStreamPartitionsRequest, @@ -436,6 +443,7 @@ protected GrpcBigtableStub( builder.add("table_name", String.valueOf(request.getTableName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings readChangeStreamTransportSettings = @@ -447,6 +455,7 @@ protected GrpcBigtableStub( builder.add("table_name", String.valueOf(request.getTableName())); return builder.build(); }) + .setResourceNameExtractor(request -> request.getTableName()) .build(); GrpcCallSettings prepareQueryTransportSettings = GrpcCallSettings.newBuilder() @@ -459,6 +468,7 @@ protected GrpcBigtableStub( request.getAppProfileId(), "app_profile_id", PREPARE_QUERY_1_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getInstanceName()) .build(); GrpcCallSettings executeQueryTransportSettings = GrpcCallSettings.newBuilder() @@ -471,6 +481,7 @@ protected GrpcBigtableStub( request.getAppProfileId(), "app_profile_id", EXECUTE_QUERY_1_PATH_TEMPLATE); return builder.build(); }) + .setResourceNameExtractor(request -> request.getInstanceName()) .build(); this.readRowsCallable = diff --git a/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/Version.java b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/Version.java new file mode 100644 index 0000000000..27027aa13f --- /dev/null +++ b/google-cloud-bigtable/src/main/java/com/google/cloud/bigtable/data/v2/stub/Version.java @@ -0,0 +1,27 @@ +/* + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigtable.data.v2.stub; + +import com.google.api.core.InternalApi; + +@InternalApi("For internal use only") +final class Version { + // {x-version-update-start:google-cloud-bigtable:current} + static final String VERSION = "2.76.1-SNAPSHOT"; + // {x-version-update-end} + +} diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImplTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImplTest.java index d3cc31ef89..f69143993f 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImplTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionImplTest.java @@ -280,7 +280,9 @@ void streamErrorDuringRpcTest() throws Exception { .hasMessageThat() .isEqualTo( "UNAVAILABLE: vRPC failed due to transport error\n" - + "Transport error: INTERNAL: fake internal error. PeerInfo: application_frontend_subzone: \"ll\" transport_type: TRANSPORT_TYPE_SESSION_DIRECT_ACCESS application_frontend_region: \"local\""); + + "Transport error: INTERNAL: fake internal error. PeerInfo:" + + " application_frontend_subzone: \"ll\" transport_type:" + + " TRANSPORT_TYPE_SESSION_DIRECT_ACCESS application_frontend_region: \"local\""); assertThat(error.getResult()).state().isEqualTo(State.TRANSPORT_FAILURE); // TODO: fix server Latency definition - need to split node latency from transport latency assertThat(error.getResult()).backendLatency().isEqualTo(Duration.ZERO); @@ -291,7 +293,8 @@ void streamErrorDuringRpcTest() throws Exception { .description() .isEqualTo( actualSessionStatusProto.getMessage() - + ". PeerInfo: application_frontend_subzone: \"ll\" transport_type: TRANSPORT_TYPE_SESSION_DIRECT_ACCESS application_frontend_region: \"local\""); + + ". PeerInfo: application_frontend_subzone: \"ll\" transport_type:" + + " TRANSPORT_TYPE_SESSION_DIRECT_ACCESS application_frontend_region: \"local\""); } @Test diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImplTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImplTest.java index aff2e3c814..01088143e0 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImplTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/session/SessionPoolImplTest.java @@ -206,9 +206,9 @@ public void consecutiveFailuresTest() { assertThat(exception) .hasMessageThat() .contains( - "UNAVAILABLE: Session failed with consecutive failures." - + " Most recent server status: Status{code=INTERNAL, " - + "description=fake internal error. PeerInfo: transport_type: TRANSPORT_TYPE_SESSION_UNKNOWN, cause=null}"); + "UNAVAILABLE: Session failed with consecutive failures. Most recent server status:" + + " Status{code=INTERNAL, description=fake internal error. PeerInfo:" + + " transport_type: TRANSPORT_TYPE_SESSION_UNKNOWN, cause=null}"); } @Test