diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml
index 35478afe3fd..aadf54f6438 100644
--- a/.github/.OwlBot.lock.yaml
+++ b/.github/.OwlBot.lock.yaml
@@ -13,4 +13,4 @@
# limitations under the License.
docker:
image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest
- digest: sha256:8dd8395defb6a5069b0b10c435058bf13980606ba1967e2b3925ed50fc3cb22f
+ digest: sha256:ad9cabee4c022f1aab04a71332369e0c23841062124818a4490f73337f790337
diff --git a/.github/release-trigger.yml b/.github/release-trigger.yml
index d4ca94189e1..47c17ee38f0 100644
--- a/.github/release-trigger.yml
+++ b/.github/release-trigger.yml
@@ -1 +1,2 @@
enabled: true
+multiScmName: java-spanner
diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml
index ed1010fe960..b712292013b 100644
--- a/.github/sync-repo-settings.yaml
+++ b/.github/sync-repo-settings.yaml
@@ -8,8 +8,7 @@ branchProtectionRules:
requiresCodeOwnerReviews: true
requiresStrictStatusChecks: false
requiredStatusCheckContexts:
- - dependencies (8)
- - dependencies (11)
+ - dependencies (17)
- lint
- units (8)
- units (11)
@@ -27,7 +26,6 @@ branchProtectionRules:
requiresCodeOwnerReviews: true
requiresStrictStatusChecks: false
requiredStatusCheckContexts:
- - dependencies (8)
- dependencies (11)
- lint
- units (7)
@@ -42,7 +40,6 @@ branchProtectionRules:
requiresCodeOwnerReviews: true
requiresStrictStatusChecks: false
requiredStatusCheckContexts:
- - dependencies (8)
- dependencies (11)
- lint
- units (7)
@@ -57,7 +54,6 @@ branchProtectionRules:
requiresCodeOwnerReviews: true
requiresStrictStatusChecks: false
requiredStatusCheckContexts:
- - dependencies (8)
- dependencies (11)
- lint
- units (7)
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 857028b88b8..7c5a0181129 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -37,6 +37,7 @@ jobs:
env:
JOB_TYPE: test
units-java8:
+ # Building using Java 17 and run the tests with Java 8 runtime
name: "units (8)"
runs-on: ubuntu-latest
steps:
@@ -45,14 +46,12 @@ jobs:
with:
java-version: 8
distribution: zulu
- - run: echo "JAVA8_HOME=${JAVA_HOME}" >> $GITHUB_ENV
+ - run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java" >> $GITHUB_ENV
shell: bash
- uses: actions/setup-java@v3
with:
- java-version: 11
+ java-version: 17
distribution: zulu
- - run: echo "JAVA11_HOME=${JAVA_HOME}" >> $GITHUB_ENV
- shell: bash
- run: .kokoro/build.sh
env:
JOB_TYPE: test
@@ -80,25 +79,13 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- java: [8, 11, 17]
+ java: [17]
steps:
- uses: actions/checkout@v3
- # For Java 8 tests, use JDK 11 to compile
- - if: ${{matrix.java}} == '8'
- uses: actions/setup-java@v3
- with:
- java-version: 11
- distribution: zulu
- - if: ${{matrix.java}} == '8'
- run: echo "JAVA11_HOME=${JAVA_HOME}" >> $GITHUB_ENV
- shell: bash
- uses: actions/setup-java@v3
with:
distribution: zulu
java-version: ${{matrix.java}}
- - if: ${{matrix.java}} == '8'
- run: echo "JAVA8_HOME=${JAVA_HOME}" >> $GITHUB_ENV
- shell: bash
- run: java -version
- run: .kokoro/dependencies.sh
lint:
@@ -108,7 +95,7 @@ jobs:
- uses: actions/setup-java@v3
with:
distribution: zulu
- java-version: 11
+ java-version: 17
- run: java -version
- run: .kokoro/build.sh
env:
@@ -120,7 +107,7 @@ jobs:
- uses: actions/setup-java@v3
with:
distribution: zulu
- java-version: 11
+ java-version: 17
- run: java -version
- run: .kokoro/build.sh
env:
diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml
index da05e8d3d75..71fbdc4bbf4 100644
--- a/.github/workflows/integration-tests-against-emulator.yaml
+++ b/.github/workflows/integration-tests-against-emulator.yaml
@@ -25,20 +25,15 @@ jobs:
with:
java-version: 11
distribution: zulu
- - run: echo "JAVA11_HOME=${JAVA_HOME}" >> $GITHUB_ENV
- shell: bash
+ - name: Compiling main library
+ run: .kokoro/build.sh
- uses: actions/setup-java@v3
with:
java-version: 8
distribution: zulu
- - run: echo "JAVA8_HOME=${JAVA_HOME}" >> $GITHUB_ENV
- shell: bash
- - run: java -version
- - name: Compiling main library
- run: .kokoro/build.sh
- name: Running tests
run: |
- mvn -B -Dspanner.testenv.instance="" -Penable-integration-tests \
+ mvn -V -B -Dspanner.testenv.instance="" -Penable-integration-tests \
-DtrimStackTrace=false -Dclirr.skip=true -Denforcer.skip=true \
-Dmaven.main.skip=true -fae verify
env:
diff --git a/.kokoro/build.sh b/.kokoro/build.sh
index c962182d52b..00d8e29f6dd 100755
--- a/.kokoro/build.sh
+++ b/.kokoro/build.sh
@@ -23,9 +23,9 @@ cd ${scriptDir}/..
# include common functions
source ${scriptDir}/common.sh
-# units-java8 uses both JDK 11 and JDK 8. GraalVM dependencies require JDK 11 to
-# compile the classes touching GraalVM classes.
-if [ ! -z "${JAVA11_HOME}" ]; then
+# Kokoro integration test uses both JDK 11 and JDK 8. GraalVM dependencies
+# require JDK 11 to compile the classes touching GraalVM classes.
+if [ -n "${JAVA11_HOME}" ]; then
setJava "${JAVA11_HOME}"
fi
@@ -48,9 +48,9 @@ if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTI
export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS})
fi
-# units-java8 uses both JDK 11 and JDK 8. We ensure the generated class files
+# Kokoro integration test uses both JDK 11 and JDK 8. We ensure the generated class files
# are compatible with Java 8 when running tests.
-if [ ! -z "${JAVA8_HOME}" ]; then
+if [ -n "${JAVA8_HOME}" ]; then
setJava "${JAVA8_HOME}"
fi
@@ -59,10 +59,16 @@ set +e
case ${JOB_TYPE} in
test)
+ # Maven surefire plugin (unit tests) allows us to specify JVM to run the tests.
+ # https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm
+ # If we rely on certain things only available in newer JVM than Java 8, this
+ # tests detect the usage.
+ echo "SUREFIRE_JVM_OPT: ${SUREFIRE_JVM_OPT}"
mvn test -B -V \
-Dclirr.skip=true \
-Denforcer.skip=true \
- -Djava.net.preferIPv4Stack=true
+ -Djava.net.preferIPv4Stack=true \
+ ${SUREFIRE_JVM_OPT}
RETURN_CODE=$?
;;
lint)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 25dfe33d618..e9dbc06cba5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## [6.42.1](https://github.com/googleapis/java-spanner/compare/v6.42.0...v6.42.1) (2023-05-22)
+
+
+### Dependencies
+
+* Update dependency commons-io:commons-io to v2.12.0 ([#2439](https://github.com/googleapis/java-spanner/issues/2439)) ([d08b226](https://github.com/googleapis/java-spanner/commit/d08b226d5da6272b2de5f66ee1657d03268e396d))
+
## [6.42.0](https://github.com/googleapis/java-spanner/compare/v6.41.0...v6.42.0) (2023-05-15)
diff --git a/README.md b/README.md
index e8dc6907606..e00b51630de 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file:
com.google.cloud
libraries-bom
- 26.14.0
+ 26.15.0
pom
import
@@ -42,7 +42,7 @@ If you are using Maven without the BOM, add this to your dependencies:
com.google.cloud
google-cloud-spanner
- 6.41.0
+ 6.42.0
```
@@ -50,20 +50,20 @@ If you are using Maven without the BOM, add this to your dependencies:
If you are using Gradle 5.x or later, add this to your dependencies:
```Groovy
-implementation platform('com.google.cloud:libraries-bom:26.14.0')
+implementation platform('com.google.cloud:libraries-bom:26.15.0')
implementation 'com.google.cloud:google-cloud-spanner'
```
If you are using Gradle without BOM, add this to your dependencies:
```Groovy
-implementation 'com.google.cloud:google-cloud-spanner:6.41.0'
+implementation 'com.google.cloud:google-cloud-spanner:6.42.0'
```
If you are using SBT, add this to your dependencies:
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.41.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.42.0"
```
@@ -302,6 +302,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-spanner/tree/
| Statement Timeout Example | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/StatementTimeoutExample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/StatementTimeoutExample.java) |
| Tag Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/TagSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/TagSample.java) |
| Tracing Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/TracingSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/TracingSample.java) |
+| Update Database Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/UpdateDatabaseSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/UpdateDatabaseSample.java) |
| Update Database With Default Leader Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/UpdateDatabaseWithDefaultLeaderSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/UpdateDatabaseWithDefaultLeaderSample.java) |
| Update Instance Config Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/UpdateInstanceConfigSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/UpdateInstanceConfigSample.java) |
| Update Json Data Sample | [source code](https://github.com/googleapis/java-spanner/blob/main/samples/snippets/src/main/java/com/example/spanner/UpdateJsonDataSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-spanner&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/spanner/UpdateJsonDataSample.java) |
@@ -411,7 +412,7 @@ Java is a registered trademark of Oracle and/or its affiliates.
[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-spanner/java11.html
[stability-image]: https://img.shields.io/badge/stability-stable-green
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-spanner.svg
-[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.41.0
+[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-spanner/6.42.0
[authentication]: https://github.com/googleapis/google-cloud-java#authentication
[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles
diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml
index 7b273012032..6ec207adf0a 100644
--- a/google-cloud-spanner-bom/pom.xml
+++ b/google-cloud-spanner-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-spanner-bom
- 6.42.0
+ 6.42.1
pom
com.google.cloud
@@ -53,48 +53,48 @@
com.google.cloud
google-cloud-spanner
- 6.42.0
+ 6.42.1
com.google.cloud
google-cloud-spanner-executor
- 6.42.0
+ 6.42.1
com.google.cloud
google-cloud-spanner
test-jar
- 6.42.0
+ 6.42.1
com.google.api.grpc
grpc-google-cloud-spanner-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-instance-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-database-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
proto-google-cloud-spanner-admin-instance-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
proto-google-cloud-spanner-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
proto-google-cloud-spanner-admin-database-v1
- 6.42.0
+ 6.42.1
diff --git a/google-cloud-spanner-executor/pom.xml b/google-cloud-spanner-executor/pom.xml
index 588c12ea578..231599e7c1b 100644
--- a/google-cloud-spanner-executor/pom.xml
+++ b/google-cloud-spanner-executor/pom.xml
@@ -5,14 +5,14 @@
4.0.0
com.google.cloud
google-cloud-spanner-executor
- 6.42.0
+ 6.42.1
jar
Google Cloud Spanner Executor
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
@@ -119,7 +119,7 @@
commons-io
commons-io
- 2.11.0
+ 2.12.0
diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml
index 36dbded84b7..664545c20a8 100644
--- a/google-cloud-spanner/pom.xml
+++ b/google-cloud-spanner/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.cloud
google-cloud-spanner
- 6.42.0
+ 6.42.1
jar
Google Cloud Spanner
https://github.com/googleapis/java-spanner
@@ -11,7 +11,7 @@
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
google-cloud-spanner
diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml
index 4772f4f9f4e..7317628da02 100644
--- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml
+++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-spanner-admin-database-v1
- 6.42.0
+ 6.42.1
grpc-google-cloud-spanner-admin-database-v1
GRPC library for grpc-google-cloud-spanner-admin-database-v1
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml
index ca20528d958..be7bfce79fc 100644
--- a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml
+++ b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-spanner-admin-instance-v1
- 6.42.0
+ 6.42.1
grpc-google-cloud-spanner-admin-instance-v1
GRPC library for grpc-google-cloud-spanner-admin-instance-v1
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml
index 8d006a30709..9fb92d41fcd 100644
--- a/grpc-google-cloud-spanner-v1/pom.xml
+++ b/grpc-google-cloud-spanner-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
grpc-google-cloud-spanner-v1
- 6.42.0
+ 6.42.1
grpc-google-cloud-spanner-v1
GRPC library for grpc-google-cloud-spanner-v1
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
diff --git a/pom.xml b/pom.xml
index 579666d2c78..33c78d4c2ef 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-spanner-parent
pom
- 6.42.0
+ 6.42.1
Google Cloud Spanner Parent
https://github.com/googleapis/java-spanner
@@ -62,37 +62,37 @@
com.google.api.grpc
proto-google-cloud-spanner-admin-instance-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
proto-google-cloud-spanner-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
proto-google-cloud-spanner-admin-database-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
grpc-google-cloud-spanner-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-instance-v1
- 6.42.0
+ 6.42.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-database-v1
- 6.42.0
+ 6.42.1
com.google.cloud
google-cloud-spanner
- 6.42.0
+ 6.42.1
diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml
index d69a7fe7490..16cf4cb8e45 100644
--- a/proto-google-cloud-spanner-admin-database-v1/pom.xml
+++ b/proto-google-cloud-spanner-admin-database-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-spanner-admin-database-v1
- 6.42.0
+ 6.42.1
proto-google-cloud-spanner-admin-database-v1
PROTO library for proto-google-cloud-spanner-admin-database-v1
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml
index 57f6af991bb..d188518153a 100644
--- a/proto-google-cloud-spanner-admin-instance-v1/pom.xml
+++ b/proto-google-cloud-spanner-admin-instance-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-spanner-admin-instance-v1
- 6.42.0
+ 6.42.1
proto-google-cloud-spanner-admin-instance-v1
PROTO library for proto-google-cloud-spanner-admin-instance-v1
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml
index 10bc7a53201..8692735f8e4 100644
--- a/proto-google-cloud-spanner-v1/pom.xml
+++ b/proto-google-cloud-spanner-v1/pom.xml
@@ -4,13 +4,13 @@
4.0.0
com.google.api.grpc
proto-google-cloud-spanner-v1
- 6.42.0
+ 6.42.1
proto-google-cloud-spanner-v1
PROTO library for proto-google-cloud-spanner-v1
com.google.cloud
google-cloud-spanner-parent
- 6.42.0
+ 6.42.1
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 188abac8543..d2d45badd19 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -32,7 +32,7 @@
com.google.cloud
google-cloud-spanner
- 6.41.0
+ 6.42.0
diff --git a/samples/native-image/pom.xml b/samples/native-image/pom.xml
index c1e96544e11..9ac0fd22b29 100644
--- a/samples/native-image/pom.xml
+++ b/samples/native-image/pom.xml
@@ -28,7 +28,7 @@
com.google.cloud
libraries-bom
- 26.14.0
+ 26.15.0
pom
import
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 0d451de2284..1d79f7d9c20 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -31,7 +31,7 @@
com.google.cloud
google-cloud-spanner
- 6.42.0
+ 6.42.1
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index 0690ec3be4f..463baf4a2eb 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -33,7 +33,7 @@
com.google.cloud
libraries-bom
- 26.14.0
+ 26.15.0
pom
import
diff --git a/samples/snippets/src/main/java/com/example/spanner/UpdateDatabaseSample.java b/samples/snippets/src/main/java/com/example/spanner/UpdateDatabaseSample.java
new file mode 100644
index 00000000000..c87c27690a3
--- /dev/null
+++ b/samples/snippets/src/main/java/com/example/spanner/UpdateDatabaseSample.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2023 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
+ *
+ * http://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.example.spanner;
+
+// [START spanner_update_database]
+import com.google.api.gax.longrunning.OperationFuture;
+import com.google.cloud.spanner.Database;
+import com.google.cloud.spanner.DatabaseAdminClient;
+import com.google.cloud.spanner.DatabaseId;
+import com.google.cloud.spanner.DatabaseInfo.DatabaseField;
+import com.google.cloud.spanner.Spanner;
+import com.google.cloud.spanner.SpannerExceptionFactory;
+import com.google.cloud.spanner.SpannerOptions;
+import com.google.spanner.admin.database.v1.UpdateDatabaseMetadata;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+public class UpdateDatabaseSample {
+
+ static void updateDatabase() {
+ // TODO(developer): Replace these variables before running the sample.
+ final String projectId = "my-project";
+ final String instanceId = "my-instance";
+ final String databaseId = "my-database";
+ updateDatabase(projectId, instanceId, databaseId);
+ }
+
+ static void updateDatabase(String projectId, String instanceId, String databaseId) {
+ try (Spanner spanner =
+ SpannerOptions.newBuilder().setProjectId(projectId).build().getService()) {
+ final DatabaseAdminClient databaseAdminClient = spanner.getDatabaseAdminClient();
+
+ DatabaseId dbId = DatabaseId.of(projectId, instanceId, databaseId);
+ Database databaseToUpdate =
+ databaseAdminClient.newDatabaseBuilder(dbId).enableDropProtection().build();
+ OperationFuture operation =
+ databaseAdminClient.updateDatabase(databaseToUpdate, DatabaseField.DROP_PROTECTION);
+ System.out.printf("Waiting for update operation for %s to complete...\n", dbId);
+ Database updatedDb = operation.get(5, TimeUnit.MINUTES);
+ System.out.printf("Updated database %s.\n", updatedDb.getId().getName());
+ } catch (ExecutionException | TimeoutException e) {
+ // If the operation failed during execution, expose the cause.
+ throw SpannerExceptionFactory.asSpannerException(e.getCause());
+ } catch (InterruptedException e) {
+ // Throw when a thread is waiting, sleeping, or otherwise occupied,
+ // and the thread is interrupted, either before or during the activity.
+ throw SpannerExceptionFactory.propagateInterrupt(e);
+ }
+ }
+}
+// [END spanner_update_database]
diff --git a/samples/snippets/src/test/java/com/example/spanner/UpdateDatabaseSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/UpdateDatabaseSampleIT.java
new file mode 100644
index 00000000000..3bee78b7871
--- /dev/null
+++ b/samples/snippets/src/test/java/com/example/spanner/UpdateDatabaseSampleIT.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2023 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
+ *
+ * http://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.example.spanner;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import com.google.api.gax.longrunning.OperationFuture;
+import com.google.cloud.spanner.DatabaseInfo.DatabaseField;
+import com.google.spanner.admin.database.v1.UpdateDatabaseMetadata;
+import java.util.Collections;
+import java.util.concurrent.TimeUnit;
+import org.junit.Test;
+
+public class UpdateDatabaseSampleIT extends SampleTestBase {
+
+ @Test
+ public void testUpdateDatabase() throws Exception {
+ // Create database
+ final String databaseId = idGenerator.generateDatabaseId();
+ databaseAdminClient
+ .createDatabase(instanceId, databaseId, Collections.emptyList())
+ .get(5, TimeUnit.MINUTES);
+
+ // Runs sample
+ final String out =
+ SampleRunner.runSample(
+ () -> UpdateDatabaseSample.updateDatabase(projectId, instanceId, databaseId));
+
+ DatabaseId dbId = DatabaseId.of(projectId, instanceId, databaseId);
+ assertTrue(
+ "Expected that database would have been updated. Output received was " + out,
+ out.contains(String.format("Updated database %s", dbId)));
+
+ // Cleanup
+ Database databaseToUpdate =
+ databaseAdminClient.newDatabaseBuilder(dbId).disableDropProtection().build();
+ OperationFuture operation =
+ databaseAdminClient.updateDatabase(databaseToUpdate, DatabaseField.DROP_PROTECTION);
+ Database updatedDb = operation.get(5, TimeUnit.MINUTES);
+ assertFalse(updatedDb.isDropProtectionEnabled());
+ }
+}
diff --git a/versions.txt b/versions.txt
index b8b3d8efccc..76d8abb2fa4 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,11 +1,11 @@
# Format:
# module:released-version:current-version
-proto-google-cloud-spanner-admin-instance-v1:6.42.0:6.42.0
-proto-google-cloud-spanner-v1:6.42.0:6.42.0
-proto-google-cloud-spanner-admin-database-v1:6.42.0:6.42.0
-grpc-google-cloud-spanner-v1:6.42.0:6.42.0
-grpc-google-cloud-spanner-admin-instance-v1:6.42.0:6.42.0
-grpc-google-cloud-spanner-admin-database-v1:6.42.0:6.42.0
-google-cloud-spanner:6.42.0:6.42.0
-google-cloud-spanner-executor:6.42.0:6.42.0
+proto-google-cloud-spanner-admin-instance-v1:6.42.1:6.42.1
+proto-google-cloud-spanner-v1:6.42.1:6.42.1
+proto-google-cloud-spanner-admin-database-v1:6.42.1:6.42.1
+grpc-google-cloud-spanner-v1:6.42.1:6.42.1
+grpc-google-cloud-spanner-admin-instance-v1:6.42.1:6.42.1
+grpc-google-cloud-spanner-admin-database-v1:6.42.1:6.42.1
+google-cloud-spanner:6.42.1:6.42.1
+google-cloud-spanner-executor:6.42.1:6.42.1