Skip to content

Commit 25518f0

Browse files
Upgrade Spanner to the latest version (#37552)
* Upgrade Spanner to the latest version * disable gRPC gcp extension * Remove extra characters * Update documentation * Update the documentation * disable gRPC gcp extension in tests * Fix spotless
1 parent 87aee9a commit 25518f0

7 files changed

Lines changed: 28 additions & 33 deletions

File tree

buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -613,8 +613,6 @@ class BeamModulePlugin implements Plugin<Project> {
613613
def google_ads_version = "33.0.0"
614614
def google_clients_version = "2.0.0"
615615
def google_cloud_bigdataoss_version = "2.2.26"
616-
// [bomupgrader] determined by: com.google.cloud:google-cloud-spanner, consistent with: google_cloud_platform_libraries_bom
617-
def google_cloud_spanner_version = "6.104.0"
618616
def google_code_gson_version = "2.10.1"
619617
def google_oauth_clients_version = "1.34.1"
620618
// [bomupgrader] determined by: io.grpc:grpc-netty, consistent with: google_cloud_platform_libraries_bom
@@ -763,10 +761,7 @@ class BeamModulePlugin implements Plugin<Project> {
763761
// libraries-bom version on sdks/java/container/license_scripts/dep_urls_java.yaml
764762
google_cloud_platform_libraries_bom : "com.google.cloud:libraries-bom:26.75.0",
765763
google_cloud_secret_manager : "com.google.cloud:google-cloud-secretmanager", // google_cloud_platform_libraries_bom sets version
766-
// TODO(#35868) remove pinned google_cloud_spanner_bom after tests or upstream fixed
767-
google_cloud_spanner_bom : "com.google.cloud:google-cloud-spanner-bom:$google_cloud_spanner_version",
768764
google_cloud_spanner : "com.google.cloud:google-cloud-spanner", // google_cloud_platform_libraries_bom sets version
769-
google_cloud_spanner_test : "com.google.cloud:google-cloud-spanner:$google_cloud_spanner_version:tests",
770765
google_cloud_storage : "com.google.cloud:google-cloud-storage", // google_cloud_platform_libraries_bom sets version
771766
google_cloud_tink : "com.google.crypto.tink:tink:1.19.0",
772767
google_cloud_vertexai : "com.google.cloud:google-cloud-vertexai", // google_cloud_platform_libraries_bom sets version

sdks/java/bom/gcp/build.gradle

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,7 @@ apply from: '../common.gradle'
2020

2121
dependencies {
2222
api platform(project(":sdks:java:bom"))
23-
api platform(project.library.java.google_cloud_spanner_bom)
24-
api platform(project.library.java.google_cloud_platform_libraries_bom) {
25-
// TODO(https://github.com/apache/beam/issues/37328) remove exclude and google_cloud_spanner_bom after upstream and/or tests fixed
26-
exclude group: "com.google.cloud", module: "google-cloud-spanner"
27-
exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-v1"
28-
exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-instance-v1"
29-
exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-database-v1"
30-
exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-v1"
31-
exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-instance-v1"
32-
exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-database-v1"
33-
}
23+
api platform(project.library.java.google_cloud_platform_libraries_bom)
3424
constraints {
3525
api project.library.java.guava
3626
}
@@ -42,4 +32,4 @@ publishing {
4232
artifactId = 'beam-sdks-java-google-cloud-platform-bom'
4333
}
4434
}
45-
}
35+
}

sdks/java/io/google-cloud-platform/build.gradle

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,7 @@ description = "Apache Beam :: SDKs :: Java :: IO :: Google Cloud Platform"
3131
ext.summary = "IO library to read and write Google Cloud Platform systems from Beam."
3232

3333
dependencies {
34-
implementation(enforcedPlatform(library.java.google_cloud_platform_libraries_bom)) {
35-
// TODO(https://github.com/apache/beam/issues/35868) remove exclude after upstream and/or tests fixed
36-
exclude group: "com.google.cloud", module: "google-cloud-spanner"
37-
exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-v1"
38-
exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-instance-v1"
39-
exclude group: "com.google.api.grpc", module: "proto-google-cloud-spanner-admin-database-v1"
40-
exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-v1"
41-
exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-instance-v1"
42-
exclude group: "com.google.api.grpc", module: "grpc-google-cloud-spanner-admin-database-v1"
43-
}
44-
implementation(enforcedPlatform(library.java.google_cloud_spanner_bom))
34+
implementation(enforcedPlatform(library.java.google_cloud_platform_libraries_bom))
4535
implementation project(path: ":model:pipeline", configuration: "shadow")
4636
implementation project(":runners:core-java")
4737
implementation project(path: ":sdks:java:core", configuration: "shadow")
@@ -164,7 +154,7 @@ dependencies {
164154
testImplementation library.java.mockito_core
165155
testRuntimeOnly library.java.mockito_inline
166156
testImplementation library.java.joda_time
167-
testImplementation library.java.google_cloud_spanner_test
157+
testImplementation "com.google.cloud:google-cloud-spanner::tests"
168158
testImplementation library.java.google_cloud_bigtable_emulator
169159
testRuntimeOnly library.java.slf4j_jdk14
170160
// everit_json is needed for Pubsub SchemaTransform that relies on JSON-schema translation.
@@ -358,4 +348,4 @@ task postCommit {
358348
description = "Integration tests of GCP connectors using the DirectRunner."
359349
dependsOn integrationTest
360350
dependsOn integrationTestKms
361-
}
351+
}

sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerAccessor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@ public static SpannerAccessor getOrCreate(SpannerConfig spannerConfig) {
113113
static SpannerOptions buildSpannerOptions(SpannerConfig spannerConfig) {
114114
SpannerOptions.Builder builder = SpannerOptions.newBuilder();
115115

116+
// TODO(https://github.com/apache/beam/issues/37451) Disable gRPC gcp extension which was
117+
// causing the application thread to stall.
118+
// Remove this once Spanner fixes the hanging issue
119+
builder.disableGrpcGcpExtension();
120+
116121
Set<Code> retryableCodes = new HashSet<>();
117122
if (spannerConfig.getRetryableCodes() != null) {
118123
retryableCodes.addAll(spannerConfig.getRetryableCodes());

sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerReadIT.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,12 @@ public void setUp() throws Exception {
114114
project = options.as(GcpOptions.class).getProject();
115115
}
116116

117-
spanner = SpannerOptions.newBuilder().setProjectId(project).build().getService();
117+
spanner =
118+
SpannerOptions.newBuilder()
119+
.setProjectId(project)
120+
.disableGrpcGcpExtension()
121+
.build()
122+
.getService();
118123

119124
databaseName = generateDatabaseName();
120125
pgDatabaseName = "pg-" + databaseName;

sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/SpannerWriteIT.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,12 @@ public void setUp() throws Exception {
121121
project = options.as(GcpOptions.class).getProject();
122122
}
123123

124-
spanner = SpannerOptions.newBuilder().setProjectId(project).build().getService();
124+
spanner =
125+
SpannerOptions.newBuilder()
126+
.setProjectId(project)
127+
.disableGrpcGcpExtension()
128+
.build()
129+
.getService();
125130

126131
databaseName = generateDatabaseName();
127132
pgDatabaseName = "pg-" + databaseName;

sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/spanner/changestreams/it/IntegrationTestEnv.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,12 @@ protected void before() throws Throwable {
7777
instanceId = options.getInstanceId();
7878
generateDatabaseIds(options);
7979
spanner =
80-
SpannerOptions.newBuilder().setProjectId(projectId).setHost(host).build().getService();
80+
SpannerOptions.newBuilder()
81+
.setProjectId(projectId)
82+
.setHost(host)
83+
.disableGrpcGcpExtension()
84+
.build()
85+
.getService();
8186
databaseAdminClient = spanner.getDatabaseAdminClient();
8287
metadataTableName = generateTableName(METADATA_TABLE_NAME_PREFIX);
8388

0 commit comments

Comments
 (0)