diff --git a/CHANGELOG.md b/CHANGELOG.md
index d9cbf72760b..06fb0b10560 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+## [6.29.1](https://github.com/googleapis/java-spanner/compare/v6.29.0...v6.29.1) (2022-09-02)
+
+
+### Dependencies
+
+* Update dependency com.google.cloud ([e90575d](https://github.com/googleapis/java-spanner/commit/e90575dcb30782d6c8f15a5765b487faf4b66d58))
+
## [6.29.0](https://github.com/googleapis/java-spanner/compare/v6.28.0...v6.29.0) (2022-08-29)
diff --git a/README.md b/README.md
index 6699eff4ac1..5da6ca99d5e 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.1.0
+ 26.1.1
pom
import
@@ -41,7 +41,7 @@ If you are using Maven without BOM, add this to your dependencies:
com.google.cloud
google-cloud-spanner
- 6.28.0
+ 6.29.0
```
@@ -49,20 +49,20 @@ If you are using Maven without 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.1.0')
+implementation platform('com.google.cloud:libraries-bom:26.1.1')
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.28.0'
+implementation 'com.google.cloud:google-cloud-spanner:6.29.0'
```
If you are using SBT, add this to your dependencies:
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.28.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "6.29.0"
```
## Authentication
diff --git a/google-cloud-spanner-bom/pom.xml b/google-cloud-spanner-bom/pom.xml
index 9e775f5ed89..5063cfd1337 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.29.0
+ 6.29.1
pom
com.google.cloud
@@ -53,43 +53,43 @@
com.google.cloud
google-cloud-spanner
- 6.29.0
+ 6.29.1
com.google.cloud
google-cloud-spanner
test-jar
- 6.29.0
+ 6.29.1
com.google.api.grpc
grpc-google-cloud-spanner-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-instance-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-database-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
proto-google-cloud-spanner-admin-instance-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
proto-google-cloud-spanner-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
proto-google-cloud-spanner-admin-database-v1
- 6.29.0
+ 6.29.1
diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml
index 5b19731d397..e0f99af99c2 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.29.0
+ 6.29.1
jar
Google Cloud Spanner
https://github.com/googleapis/java-spanner
@@ -11,7 +11,7 @@
com.google.cloud
google-cloud-spanner-parent
- 6.29.0
+ 6.29.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 a887432fcdb..dd6cc79d9e8 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.29.0
+ 6.29.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.29.0
+ 6.29.1
diff --git a/grpc-google-cloud-spanner-admin-instance-v1/pom.xml b/grpc-google-cloud-spanner-admin-instance-v1/pom.xml
index 965cb5f8eb4..09814d2a1f0 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.29.0
+ 6.29.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.29.0
+ 6.29.1
diff --git a/grpc-google-cloud-spanner-v1/pom.xml b/grpc-google-cloud-spanner-v1/pom.xml
index f580c1ab1cc..0dc84a55fa7 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.29.0
+ 6.29.1
grpc-google-cloud-spanner-v1
GRPC library for grpc-google-cloud-spanner-v1
com.google.cloud
google-cloud-spanner-parent
- 6.29.0
+ 6.29.1
diff --git a/pom.xml b/pom.xml
index f190cbaccab..0e230168a85 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.google.cloud
google-cloud-spanner-parent
pom
- 6.29.0
+ 6.29.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.29.0
+ 6.29.1
com.google.api.grpc
proto-google-cloud-spanner-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
proto-google-cloud-spanner-admin-database-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
grpc-google-cloud-spanner-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-instance-v1
- 6.29.0
+ 6.29.1
com.google.api.grpc
grpc-google-cloud-spanner-admin-database-v1
- 6.29.0
+ 6.29.1
com.google.cloud
google-cloud-spanner
- 6.29.0
+ 6.29.1
diff --git a/proto-google-cloud-spanner-admin-database-v1/pom.xml b/proto-google-cloud-spanner-admin-database-v1/pom.xml
index 95500262e80..894bfdd0810 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.29.0
+ 6.29.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.29.0
+ 6.29.1
diff --git a/proto-google-cloud-spanner-admin-instance-v1/pom.xml b/proto-google-cloud-spanner-admin-instance-v1/pom.xml
index 703219f8016..0d197ec08f7 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.29.0
+ 6.29.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.29.0
+ 6.29.1
diff --git a/proto-google-cloud-spanner-v1/pom.xml b/proto-google-cloud-spanner-v1/pom.xml
index ed9cdfd71ea..51defe02351 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.29.0
+ 6.29.1
proto-google-cloud-spanner-v1
PROTO library for proto-google-cloud-spanner-v1
com.google.cloud
google-cloud-spanner-parent
- 6.29.0
+ 6.29.1
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index f81ac27bb79..4192df7561d 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -23,7 +23,7 @@
UTF-8
0.31.1
2.3.1
- 3.4.1
+ 3.4.2
@@ -32,7 +32,7 @@
com.google.cloud
google-cloud-spanner
- 6.28.0
+ 6.29.0
diff --git a/samples/native-image/pom.xml b/samples/native-image/pom.xml
index 7f816ecdc20..62f3456fae3 100644
--- a/samples/native-image/pom.xml
+++ b/samples/native-image/pom.xml
@@ -28,7 +28,7 @@
com.google.cloud
libraries-bom
- 26.1.0
+ 26.1.1
pom
import
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index d00efec6459..26eb0cb6590 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -23,7 +23,7 @@
UTF-8
0.31.1
2.3.1
- 3.4.1
+ 3.4.2
@@ -31,7 +31,7 @@
com.google.cloud
google-cloud-spanner
- 6.29.0
+ 6.29.1
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index 3596a040724..f612f98202d 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -33,7 +33,7 @@
com.google.cloud
libraries-bom
- 26.1.0
+ 26.1.1
pom
import
diff --git a/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java b/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java
index aeff6e8b778..39b5d67347c 100644
--- a/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java
+++ b/samples/snippets/src/test/java/com/example/spanner/SpannerSampleIT.java
@@ -26,10 +26,12 @@
import com.google.cloud.spanner.DatabaseAdminClient;
import com.google.cloud.spanner.DatabaseId;
import com.google.cloud.spanner.ErrorCode;
+import com.google.cloud.spanner.Instance;
import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.InstanceConfigId;
import com.google.cloud.spanner.InstanceId;
import com.google.cloud.spanner.InstanceInfo;
+import com.google.cloud.spanner.Options;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.SpannerExceptionFactory;
@@ -68,6 +70,8 @@ public class SpannerSampleIT {
private static final String encryptedDatabaseId = formatForTest(baseDbId);
private static final String encryptedBackupId = formatForTest(baseDbId);
private static final String encryptedRestoreId = formatForTest(baseDbId);
+ private static final long STALE_INSTANCE_THRESHOLD_SECS =
+ TimeUnit.SECONDS.convert(24L, TimeUnit.HOURS);
static Spanner spanner;
static DatabaseId dbId;
static DatabaseAdminClient dbClient;
@@ -93,10 +97,41 @@ public static void setUp() throws Exception {
dbId = DatabaseId.of(options.getProjectId(), instanceId, databaseId);
// Delete stale test databases that have been created earlier by this test, but not deleted.
deleteStaleTestDatabases(instanceId, baseDbId);
- key = String.format("projects/%s/locations/%s/keyRings/%s/cryptoKeys/%s",
- options.getProjectId(), keyLocation, keyRing, keyName);
+ key =
+ String.format(
+ "projects/%s/locations/%s/keyRings/%s/cryptoKeys/%s",
+ options.getProjectId(), keyLocation, keyRing, keyName);
+
+ /*
+ * Delete stale instances that have been created earlier by this test but not deleted.
+ * Backups needed to be deleted from the instance first, as the instance can only be
+ * deleted once all backups have been deleted.
+ * */
+ deleteStaleEncryptedTestInstances();
}
-
+
+ /**
+ * Deleting all the test instances with name starting with 'encrypted-test-' and were created
+ * before 24 hours.
+ *
+ * @throws InterruptedException If Thread.sleep() interrupted
+ */
+ private static void deleteStaleEncryptedTestInstances() throws InterruptedException {
+ Timestamp now = Timestamp.now();
+
+ for (Instance instance :
+ spanner
+ .getInstanceAdminClient()
+ .listInstances(Options.filter("name:encrypted-test-"))
+ .iterateAll()) {
+ if ((now.getSeconds() - instance.getCreateTime().getSeconds())
+ > STALE_INSTANCE_THRESHOLD_SECS) {
+ deleteAllBackups(instanceId);
+ instance.delete();
+ }
+ }
+ }
+
static void deleteStaleTestDatabases(String instanceId, String baseDbId) {
Timestamp now = Timestamp.now();
Pattern samplePattern = getTestDbIdPattern(baseDbId);
@@ -410,7 +445,7 @@ public void testSample() throws Exception {
out = runSample("deletebackup");
assertThat(out).contains("Deleted backup [" + backupId + "]");
}
-
+
@Test
public void testEncryptedDatabaseAndBackupSamples() throws Exception {
String projectId = spanner.getOptions().getProjectId();
@@ -459,7 +494,7 @@ public void testEncryptedDatabaseAndBackupSamples() throws Exception {
}
}
- private void deleteAllBackups(String instanceId) throws InterruptedException {
+ private static void deleteAllBackups(String instanceId) throws InterruptedException {
for (Backup backup : dbClient.listBackups(instanceId).iterateAll()) {
int attempts = 0;
while (attempts < 30) {
@@ -513,7 +548,7 @@ public void testCreateInstanceSample() {
private static int countOccurrences(String input, String search) {
return input.split(search).length - 1;
}
-
+
private static String toComparableId(String baseId, String existingId) {
String zeroUuid = "00000000-0000-0000-0000-0000-00000000";
int shouldBeLength = (baseId + "-" + zeroUuid).length();
@@ -526,7 +561,7 @@ private static Pattern getTestDbIdPattern(String baseDbId) {
baseDbId + "-[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{8}",
Pattern.CASE_INSENSITIVE);
}
-
+
static String formatForTest(String name) {
return name + "-" + UUID.randomUUID().toString().substring(0, DBID_LENGTH);
}
diff --git a/versions.txt b/versions.txt
index b90d1ec1b8b..f6fdfc78e02 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,10 +1,10 @@
# Format:
# module:released-version:current-version
-proto-google-cloud-spanner-admin-instance-v1:6.29.0:6.29.0
-proto-google-cloud-spanner-v1:6.29.0:6.29.0
-proto-google-cloud-spanner-admin-database-v1:6.29.0:6.29.0
-grpc-google-cloud-spanner-v1:6.29.0:6.29.0
-grpc-google-cloud-spanner-admin-instance-v1:6.29.0:6.29.0
-grpc-google-cloud-spanner-admin-database-v1:6.29.0:6.29.0
-google-cloud-spanner:6.29.0:6.29.0
+proto-google-cloud-spanner-admin-instance-v1:6.29.1:6.29.1
+proto-google-cloud-spanner-v1:6.29.1:6.29.1
+proto-google-cloud-spanner-admin-database-v1:6.29.1:6.29.1
+grpc-google-cloud-spanner-v1:6.29.1:6.29.1
+grpc-google-cloud-spanner-admin-instance-v1:6.29.1:6.29.1
+grpc-google-cloud-spanner-admin-database-v1:6.29.1:6.29.1
+google-cloud-spanner:6.29.1:6.29.1