For 2.x changelog, go to this page.
Spring Cloud GCP is a set of integrations between Spring Framework and Google Cloud. It makes it much easier for Spring framework users to run their applications on Google Cloud.
This document provides a high-level overview of the changes introduced in Spring Cloud GCP by release. For a detailed view of what has changed, refer to the commit history on GitHub.
5.0.0 (2023-12-13)
- Spring Cloud 2023 and Spring Boot 3.2.0 (#2438)
Spring Boot 3.2.0 Upgrade: Upgrade today and unlock the power of Spring Boot 3.2.0! For detailed information and instructions, refer to the official Spring Boot documentation and release notes.
4.9.0 (2023-12-12)
- add metrics sample to native CI (#2345) (44d48df)
- backport Spring Boot 3.2 compatibility updates to Spring Cloud GCP 4.x (#2397) (a640b75)
- disable profile
CI
when building reference docs (#2367) (d207fd8) - GcpFirestoreEmulatorAutoConfiguration constructs invalid document parent (#2348) (7e66d55)
- bump com.google.cloud:libraries-bom from 26.27.0 to 26.28.0 (#2414) (f58a315)
- bump commons-io:commons-io from 2.15.0 to 2.15.1 (#2393) (fd56746)
- bump io.micrometer:micrometer-tracing-bom from 1.1.6 to 1.2.0 (#2349) (bfc58bd)
- bump org.apache.maven.plugins:maven-javadoc-plugin (#2401) (2b64f9a)
- bump org.codehaus.mojo:build-helper-maven-plugin (#2381) (9045e48)
4.8.4 (2023-11-09)
- bump com.google.cloud:cloud-spanner-r2dbc from 1.2.2 to 1.3.0 (#2316) (2afa03a)
- bump org.apache.maven.plugins:maven-javadoc-plugin (#2329) (f212e4a)
4.8.3 (2023-10-27)
- add back original comment. (#2263) (dc1b821)
- deps: update cloud-sql-socket-factory.version to v1.14.1 (#2241) (e2527ae)
- deps: update dependency com.google.cloud:libraries-bom to v26.26.0 (#2297) (5b7db44)
- deps: update dependency io.micrometer:micrometer-tracing-bom to v1.1.6 (#2232) (06ac904)
- Ensure topic exists in consumer only if autoCreateResources is true (#2296) (c8d25c8)
- bump cloud-sql-socket-factory.version from 1.14.0 to 1.14.1 (#2243) (79dfcfe)
- bump com.google.cloud.tools:appengine-maven-plugin (#2226) (db0d63e)
- bump com.google.errorprone:error_prone_core from 2.22.0 to 2.23.0 (#2268) (45ebb90)
- bump commons-io:commons-io from 2.14.0 to 2.15.0 (#2292) (3b32c77)
- bump io.micrometer:micrometer-tracing-bom from 1.1.5 to 1.1.6 (#2234) (8970fb2)
- bump org.apache.maven.plugins:maven-checkstyle-plugin (#2287) (7f56ce0)
- bump org.graalvm.buildtools:native-maven-plugin (#2282) (2e32f5f)
- bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.11 (#2253) (5e05fc2)
4.8.2 (2023-10-17)
- allow minimal permissions for consumer destination use (#2233) (d5a42c4)
- deps: update dependency com.google.cloud:libraries-bom to v26.25.0 (#2249) (903c3c7)
- remove unnecessary topic name comparison on subscription (#2239) (f0f0124)
4.8.1 (2023-10-03)
- deps: update dependency com.google.cloud:libraries-bom to v26.24.0 (#2213) (4408d63)
- guard against null projectId in Firestore routing header (29229f7)
- language test moved to
v2
(#2216) (ddb2398)
- bump com.google.errorprone:error_prone_core from 2.21.1 to 2.22.0 (#2202) (9759fd7)
- bump commons-io:commons-io from 2.13.0 to 2.14.0 (#2211) (efc116c)
- bump org.springframework.boot:spring-boot-starter-parent (#2203) (a86e485)
- bump spring-boot-dependencies.version from 3.1.3 to 3.1.4 (#2201) (e763569)
4.8.0 (2023-09-20)
- add support for Datastore database name configuration (#2150) (dc45fd8)
- add support for Firestore database id configuration (#2164) (1ea0cfb)
- add runtime hints for spanner (#2123) (170948e)
- deps: update cloud-sql-socket-factory.version to v1.14.0 (#2160) (21a1561)
- deps: update dependency io.micrometer:micrometer-tracing-bom to v1.1.5 (#2124) (0cf3d72)
- Ensure proper merging of Binder default props (#2177) (01b3dad)
- Firestore updateTime extraction after commit (#2165) (bacdfe9)
- bump cloud-sql-socket-factory.version from 1.13.1 to 1.14.0 (#2161) (c1a7cac)
- bump com.google.cloud:libraries-bom from 26.22.0 to 26.23.0 (#2166) (a4050ec)
- bump com.google.cloud:libraries-bom from 26.22.0 to 26.23.0 (#2183) (70edcc8)
- bump io.micrometer:micrometer-tracing-bom from 1.1.3 to 1.1.5 (#2159) (fdbad48)
- bump java-cfenv.version from 2.4.2 to 2.5.0 (#2131) (a7aac12)
- bump org.apache.maven.plugins:maven-enforcer-plugin (#2155) (dfa4f63)
- bump org.apache.maven.plugins:maven-javadoc-plugin (#2171) (7ebb496)
- bump org.graalvm.buildtools:native-maven-plugin (#2170) (a87a7d2)
- bump org.springframework.boot:spring-boot-starter-parent (#2139) (f18bf41)
- bump spring-boot-dependencies.version from 3.1.2 to 3.1.3 (#2138) (ef412db)
4.7.2 (2023-08-10)
- add runtime hints for storage (#2001) (793c798)
- add runtime hints for trace (#1990) (2ba4a75)
- deps: update dependency com.google.cloud:libraries-bom to v26.22.0 (#2110) (1806818)
- bump com.google.errorprone:error_prone_core from 2.20.0 to 2.21.1 (#2104) (0c9718a)
- bump gapic-generator-java-bom.version from 2.23.1 to 2.24.0 (#2097) (67a5756)
- bump org.graalvm.buildtools:native-maven-plugin (#2107) (f7964c5)
4.7.1 (2023-08-01)
- add missing exception cause in createSecretManagerClient (#1923) (154cbe5)
- deps: update dependency com.google.cloud:libraries-bom to v26.21.0 (#2088) (e352ad5)
4.7.0 (2023-07-28)
- deps: update dependency com.google.cloud:libraries-bom to v26.20.0 (main) (#2071) (ca9d1fb)
- deps: update spring cloud (#2076) (64561c7)
4.6.0 (2023-07-24)
- add runtime hints for logging (#1933) (21903af)
- add runtime hints for vision (#1991) (dcbf202)
- deps: update cloud-sql-socket-factory.version to v1.13.1 (#2020) (fe69d8a)
- deps: update dependency com.google.cloud:libraries-bom to v26.19.0 (#2033) (c215536)
- deps: update dependency io.micrometer:micrometer-tracing-bom to v1.1.3 (#2016) (465a88b)
- deps: update dependency org.jetbrains.kotlin:kotlin-stdlib-jdk8 to v1.9.0 (#2002) (d715085)
- deps: update dependency org.postgresql:r2dbc-postgresql to v1.0.2.release (#2026) (a76298a)
- deps: update dependency org.springframework.cloud:spring-cloud-build to v4.0.4 (#2004) (2ce3e1f)
- timestampNanos field with nanos precision (#2012) (2a4c14a), closes #1996
- bump cloud-sql-socket-factory.version from 1.12.0 to 1.13.1 (#2047) (109255b)
- bump libraries-bom from 26.18.0 to 26.19.0 (#2032) (b36e847)
- bump org.junit.platform:junit-platform-launcher (#2048) (43e9422)
- bump org.springframework.boot:spring-boot-starter-parent (#2040) (28307cb)
- bump r2dbc-postgresql from 1.0.1.RELEASE to 1.0.2.RELEASE (#2029) (912edfe)
- bump spring-boot-dependencies.version from 3.1.1 to 3.1.2 (#2041) (0ea6195)
- manual bump gapic-generator-java-bom.version from 2.22.0 to 2.23.1 (#2044) (08946d5)
4.5.1 (2023-06-28)
- deps: update dependency com.google.cloud:libraries-bom to v26.18.0 (main) (#1985) (3445ce7)
- Wiring
bigQueryThreadPoolTaskScheduler
withwriteJsonStream
(#1855) (6467a08), closes #1599
- bump gapic-generator-java-bom.version from 2.21.0 to 2.22.0 (#1978) (0cb44fe)
- bump native-maven-plugin from 0.9.22 to 0.9.23 (#1968) (d60fa50)
- bump spring-boot-dependencies.version from 3.0.6 to 3.1.0 (#1876) (39b6f1e)
- bump spring-boot-dependencies.version from 3.0.6 to 3.1.1 (#1977) (c2622f4)
- bump spring-boot-starter-parent from 3.0.6 to 3.1.1 (#1976) (0600e68)
- bump truth from 1.1.4 to 1.1.5 (#1967) (fb20cd4)
4.5.0 (2023-06-15)
- add google-cloud-compute-spring-starter to starter modules available for preview (41b5c19)
- deps: update dependency io.micrometer:micrometer-tracing-bom to v1.1.2 (#1943) (2240e62)
- Remove misleading Spanner DEBUG log for query elapsed time (#1954) (51352ad), closes #1945
- bump cloud-sql-socket-factory.version from 1.11.1 to 1.12.0 (#1947) (b60efaf)
- bump commons-io from 2.12.0 to 2.13.0 (#1934) (da5c93a)
- bump libraries-bom from 26.16.0 to 26.17.0 (#1948) (5beb0e6)
- bump micrometer-tracing-bom from 1.1.1 to 1.1.2 (#1944) (c0bb763)
- bump truth from 1.1.3 to 1.1.4 (#1942) (79402f5)
4.4.0 (2023-06-02)
- additional sample test for both transactionManager work together. (#1848) (219adb3)
- deps: update dependency com.google.api:gapic-generator-java-bom to v2.20.0 (#1895) (af9b81f)
- deps: update dependency com.google.cloud:libraries-bom to v26.16.0 (main) (#1918) (4fe4034)
- deps: update spring cloud (#1901) (0a3827a)
- pull-endpoint setting for async subscribers (#1883) (f0c5d4c)
- bump commons-io from 2.11.0 to 2.12.0 (#1867) (7fd064a)
- bump gapic-generator-java-bom.version from 2.20.0 to 2.20.1 (#1905) (745cdd5)
- bump maven-checkstyle-plugin from 3.2.2 to 3.3.0 (#1889) (2ab9844)
- bump maven-source-plugin from 3.2.1 to 3.3.0 (#1886) (5937b07)
- bump spring-cloud-dependencies from 2022.0.2 to 2022.0.3 (#1904) (99fcdb5)
4.3.1 (2023-05-17)
- add spring-boot-configuration-processor to maven-compiler-plugin configuration (#1846) (7553d04)
- deps: update dependency com.google.api:gapic-generator-java-bom to v2.19.0 (#1829) (d3b5e4f)
- deps: update dependency com.google.cloud:libraries-bom to v26.15.0 (main) (#1865) (40303fc)
- deps: update dependency io.micrometer:micrometer-tracing-bom to v1.1.1 (#1826) (272d491)
- deps: update java-cfenv.version to v2.4.2 (#1807) (7af5fe1)
- Implementing count with aggregation query (#1782) (1ee2244), closes #1781
- PubSubPublishCallback handling of success and failure callbacks (#1800) (b134c92)
- use core id provider as backup provider (#1798) (1b04165)
- bump error_prone_core from 2.18.0 to 2.19.1 (#1837) (5424e50)
- bump flatten-maven-plugin from 1.4.1 to 1.5.0 (#1831) (bdd07a6)
- bump gapic-generator-java-bom from 2.18.0 to 2.19.0 (#1833) (413f945)
- bump java-cfenv.version from 2.4.1 to 2.4.2 (#1813) (c5e13f2)
- bump maven-gpg-plugin from 3.0.1 to 3.1.0 (#1814) (4e5cf5f)
- bump micrometer-tracing-bom from 1.0.4 to 1.1.1 (#1847) (12b90db)
4.3.0 (2023-05-04)
- deps: update dependency com.google.cloud:libraries-bom to v26.14.0 (main) (#1788) (2aa3992)
- deps: update dependency org.springframework.cloud:spring-cloud-build to v3.1.7 (#1778) (3ea39c8)
- profile for jdk17 compiler arguments (#1775) (277f814)
4.2.0 (2023-04-20)
- deps: update dependency com.google.cloud:libraries-bom to v26.13.0 (main) (#1755) (56fee5b)
- deps: update spring boot to v3.0.6 (main) (#1747) (f230b7b)
- pass
enable-iam-auth=true
tospring.r2dbc.properties
(#1715) (d0c4589)
- bump cloud-sql-socket-factory.version from 1.11.0 to 1.11.1 (#1723) (71105d4)
- bump flatten-maven-plugin from 1.4.0 to 1.4.1 (#1678) (5596ac8)
- bump maven-enforcer-plugin from 3.2.1 to 3.3.0 (#1696) (1ae1c36)
- bump micrometer-tracing-bom from 1.0.3 to 1.0.4 (#1717) (4246398)
- bump spring-cloud-config.version from 4.0.1 to 4.0.2 (#1681) (b1ebb57)
- bump spring-cloud-dependencies from 2022.0.1 to 2022.0.2 (#1680) (a9480e2)
- bump testcontainers-bom from 1.17.6 to 1.18.0 (#1694) (ab108bf)
4.1.4 (2023-04-05)
- bump libraries-bom from 26.11.0 to 26.12.0 (#1695) (4f5598c)
- bump maven-resources-plugin from 3.1.0 to 3.3.1 (#1673) (272c68d)
4.1.3 (2023-03-24)
- bump flatten-maven-plugin from 1.3.0 to 1.4.0 (#1662) (3b95f12)
- bump libraries-bom from 26.10.0 to 26.11.0 (#1668) (d3cfb98)
- bump micrometer-tracing-bom from 1.0.2 to 1.0.3 (#1651) (79f4d4a)
- bump spring-boot-dependencies from 3.0.4 to 3.0.5 (#1669) (3a0d3fb)
- bump spring-boot-starter-parent from 3.0.4 to 3.0.5 (#1667) (393fd86)
4.1.2 (2023-03-08)
- bump cloud-sql-socket-factory.version from 1.10.0 to 1.11.0 (#1634) (cf24325)
- bump libraries-bom from 26.9.0 to 26.10.0 (#1647) (33d131b)
- bump spring-boot-dependencies from 3.0.3 to 3.0.4 (#1642) (a9db5bd)
- bump spring-boot-starter-parent from 3.0.3 to 3.0.4 (#1641) (7f89063)
- bump spring-cloud-build from 3.1.5 to 3.1.6 (#1625) (f75a8bf)
4.1.1 (2023-02-24)
- update starter modules in spring-cloud-previews (abfd34b)
- fix secret-manager docs (19ffedb)
- bump cloud-sql-socket-factory.version from 1.9.0 to 1.10.0 (#1585) (f046398)
- bump libraries-bom from 26.7.0 to 26.9.0 (abfd34b)
- bump maven-javadoc-plugin from 3.4.1 to 3.5.0 (#1596) (79cf1ba)
- bump micrometer-tracing-bom from 1.0.1 to 1.0.2 (#1595) (f226afc)
- bump r2dbc-postgresql from 1.0.0.RELEASE to 1.0.1.RELEASE (#1598) (e6fe51c)
- bump spring-boot-dependencies from 3.0.2 to 3.0.3 (#1612) (8183160)
- bump spring-boot-starter-parent from 3.0.2 to 3.0.3 (#1614) (cde91e5)
4.1.0 (2023-02-09)
- add an encoder bean in Trace auto-configuration (#1568) (deb4239)
- remove
SecretManagerPropertySourceLocator
(#1571) (c80d299)
- create Secret Manager beans even without
spring.config.import=sm://
property (#1567) (b444fcb) - update starter modules in spring-cloud-preview (033e2ee)
- bump libraries-bom from 26.5.0 to 26.7.0 (033e2ee)
- bump maven-enforcer-plugin from 3.1.0 to 3.2.1 (#1557) (877d271)
4.0.0 (2023-01-30)
- This release officially introduces Spring Boot 3.x compatibility. Note that breaking changes occur in this release. For full list of changes, refer to this.
- Additional starters that provide dependencies and auto-configurations for working with corresponding Google Client Libraries are available for preview. (2a8b103)
- This release officially introduces Spring Boot 3.x compatibility. Note that breaking changes occur in this release. For full list of changes, refer to this. (0caa9b6)
- bump cloud-sql-socket-factory.version from 1.8.2 to 1.9.0 (39f9ba3)
- bump libraries-bom from 26.4.0 to 26.5.0 (#1532) (d2a7973)
- bump micrometer-tracing-bom from 1.0.0 to 1.0.1 (875768d)
- bump spring-boot-dependencies from 3.0.0 to 3.0.2 (1b7ca45)
- bump spring-boot-starter-parent from 3.0.0 to 3.0.2 (c9165f8)
- bump spring-cloud-config.version from 4.0.0 to 4.0.1 (#1526) (64fd758)
- bump spring-cloud-dependencies from 2022.0.0 to 2022.0.1 (#1527) (668d0a7)
3.4.2 (2023-01-18)
- Fixes docs related to keeping a background user thread - pub/sub (2802b8e)
This release officially introduces Spring Boot 2.7 compatibility. Note that the previous releases of Spring Cloud GCP 3.x are also compatible with Spring Boot 2.7. The one exception is that if you use Cloud SQL with R2DBC, you'd have to manage the driver versions in your own application dependencies (see refdoc for details).
- Upgrade to support Spring Boot 2.7 (#1185)
- Bump spring-cloud-dependencies to 2021.0.3 (#1149)
- Bump libraries-bom to 26.1.3 (#1282)
- Bump cloud-sql-socket-factory.version to 1.7.0 (#1261)
- BigQuery Storage Write API integration (#1219)
- Make CreateDisposition configurable on BigQueryTemplate (#1286)
- Add version management for the older MySQL and Postgres R2DBC drivers (#1185).
- Support KMS-specific credentials with fallback to global project credentials (#1272)
- Subscriber thread name customization (#1152)
- Allow Publishers shutdown gracefully (#1260)
- Support min/max duration per ack extension (#1254)
- Support for
spring.config.import
property source discovery (#1204) - Support default values for non-existent secrets (#1246).
- Fix edge case with
null
value in a simple field (#1208) - Support
ARRAY<JSON>
type (#1157) - Fix
IsNotNull
conditions (#1171) - Removed duplicate
Gson
bean from autoconfiguration (#1241)
-
Bump spring-cloud-dependencies to 2021.0.2 (GoogleCloudPlatform#1109)
-
Bump spring-boot-dependencies from 2.6.7 to 2.6.8 (GoogleCloudPlatform#1130)
-
Bump cloud-sql-socket-factory.version from 1.5.0 to 1.6.0 (GoogleCloudPlatform#1111)
-
Bump libraries-bom from 25.2.0 to 25.3.0 (GoogleCloudPlatform#1123)
-
Allow customizing Pub/Sub Spring Cloud Stream header mapping (GoogleCloudPlatform#1038)
-
Fully qualified subscription configuration support + immutable configuration in Pub/Sub (GoogleCloudPlatform#1110)
-
Spring Cloud GCP BOM (
spring-cloud-gcp-dependencies
) overridesspring-cloud-function
dependencies to version3.2.3
to address [CVE-2022-22963](https://tanzu.vmware.com/security/cve-2022-22963) (#1059). -
Updated
cloud-sql-socket-factory.version
to 1.5.0 (#1053)
-
Version updates:
-
Spring Boot to 2.6.6 (transitively, Spring Framework 5.3.18). See Spring [blog post](https://spring.io/blog/2022/03/31/spring-boot-2-5-12-available-now) for details.
-
guava-bom
to 31.1-jre (#968). -
cloud-sql-socket-factory.version
to 1.4.4 (#971). -
gcp-libraries-bom.version
to 25.0.0 (#999) -
Overrode <url> field in maven POM files to point to the same root URL, preventing maven from generating invalid URLs by concatenating root URL with module name (#1007).
- R2DBC autoconfiguration now allows external credentials to be provided to Cloud SQL (#775).
- Removed a forced startup-time validation for Pub/Sub Actuator Health Indicator that could prevent application startup [#1018].
-
Fixed a spec bug for
SimpleSpannerRepository.findAllById()
: on an emptyIterable
input, it used to return all rows. New behavior is to return empty output on an empty input. ⚠ behavior change (#934) -
Allow user override of Gson object used for JSON field conversion (#937).
-
Allowed
Pageable
parameter appear in any position in query method argument list (#958).
-
Added starters for accessing Cloud SQL with Spring Data R2DBC (#772):
-
spring-cloud-gcp-starter-sql-mysql-r2dbc
for MySQL -
spring-cloud-gcp-starter-sql-postgres-r2dbc
for PostgreSQL -
Added property
spring.cloud.gcp.sql.jdbc.enabled
to turn off JDBC Cloud SQL autoconfiguration (#903)
- Added ability to change
Publisher.Builder
settings prior toPublisher
object being constructed by providingPublisherCustomizer
beans (#900).
- Fixed session leak in Spanner actuator healthcheck (#902).
This release introduces Spring Boot 2.6 and Spring Cloud 2021.0 Compatibility.
- Updated
gcp-libraries-bom.version
to 24.2.0 (#861).
SimpleDatastoreRepository
now supportsfindBy()
with fluent query semantics (#836)
-
Renamed methods (#865)
⚠️ breaking change-
Renamed
XCloudTraceIdExtractor
toCloudTraceIdExtractor
-
Renamed methods in
StackdriverJsonLayout
. Make sure to update Logback XML configuration with custom layout and renametraceIdMDCField
andspanIdMDCField
totraceIdMdcField
andspanIdMdcField
respectively. -
getTraceIdMDCField() → getTraceIdMdcField()
-
setTraceIdMDCField() → setTraceIdMdcField()
-
getSpanIdMDCField() → getSpanIdMdcField()
-
setSpanIdMDCField() → setSpanIdMdcField().
-
- Spring Integration and Spring Cloud Stream outgoing adapters will
now exclude headers with
googclient_
prefix from being propagated to Cloud Pub/Sub (#845).
- Reduced visibility and renamed
SpannerQueryMethod.getMethod()
(/#815)⚠️ breaking change
This is a maintenance release upgrading dependency versions.
-
Switched to explicitly defining Spring Boot version as 2.5.x train (#804).
-
Upgraded Spring Boot dependencies to 2.5.8, which includes log4j-api upgrade to 2.17.0 (#812).
-
Updated
gcp-libraries-bom.version
to 24.1.1 (#816). -
Updated
cloud-sql-socket-factory.version
to 1.4.1 (#773)
- Updated
gcp-libraries-bom.version
to 24.0.0.
-
Added Blob to byte[] conversion on read (#729).
-
Removed unused array input handling logic in
TwoStepsConversions
(#733).
- Fixed potential NPE for a null message in
StackdriverJsonLayout
(#694).
-
Added support for per-subscription configurations for Subscriber settings. (#418).
- A global custom bean for a setting takes precedence over any property-based auto-configuration. In order to use per-subscription configuration for a Subscriber setting, the custom bean for that setting needs to be removed. When using auto-configuration, per-subscription configuration takes precedence over global configuration.
-
Added a health indicator validating for each subscription that there was a recent successfully processed message or that the backlog is under threshold. (#613).
- Added Spanner health indicator (#643).
- Exposed
spring.cloud.gcp.trace.server-response-timeout-ms
property (#698).
Thanks to our community contributors: @gkatzioura, @ikeyat, @mirehasfun and @mvpzone!
- Fixed: Allow overriding Pub/Sub retryableCodes in pull settings (#670).
- Updated
gcp-libraries-bom.version
to 20.9.0.
-
Added support for
Stream
return type in both GQL and method name-based queries (#551). -
Made
DatastorePageable
compatible with Spring Data 2.5.x (#569).
-
Fixed: Unable to query by document ID. (#506).
-
Fixed: Attempting to infer environment credentials when using emulator. (#555).
-
Added support for
OrderBy
clause in method name. (#516).
-
Fixed: bean factory propagation in consumer binding (#515).
-
Removed workaround in
PubSubInboundChannelAdapter
ensuring error propagation during application shutdown. This should be a no-op to users, as Spring Integration starting with v5.4.3 and Spring Cloud Stream starting with v3.1.1 userequireSubscribers=true
on the default error channels, causing any errors reaching error channels with no subscribers to propagate an exception. -
Added IDE discovery for
management.health.pubsub.enabled
property (#543)
- Fixed:
ByteString
value conversion compatibility with Spring Boot 2.5.x (#496).
Thanks to our community contributors, @artemptushkin, @garywg04 and @alos!
-
Upgraded to GCP Libraries BOM 20.6.0
-
Added version management for
com.google.cloud.sql:jdbc-socket-factory-core
(#466)
-
Exposed publisher endpoint for message ordering (#421)
-
Pub/Sub Health Indicator timeout increased to 2 seconds (#420).
-
Gated Cloud Pub/Sub emulator autoconfiguration Pub/Sub module being present and enabled (#446)
-
PubSubMessageHandler
now passes the original message to new success/failure callbacks, allowing applications to track message publish status (#482). The oldPubSubMessageHandler.setPublishCallback()
method is now deprecated.
-
Stopped Cloud Spanner emulator autoconfiguration from triggering default credentials creation (#457).
-
Added ability to customize arbitrary
SpannerOptions
settings by configuring aSpannerOptionsCustomizer
bean (#489).
-
Added IAM authentication option for PostgreSQL (#488).
-
Enabled placeholder interpretation in Cloud SQL properties (#495).
Thanks to our community contributors, @herder and @melburne!
-
Upgraded to Spring Cloud 2020.0.2 and Spring Boot 2.4.4
-
Upgraded to Google Cloud Libraries BOM 19.2.1
-
Added Java 16 support (#391)
-
Various code quality improvements with the help of SonarCloud.
-
Disabled
CloudSqlEnvironmentPostProcessor
in bootstrap context (#273)- This enables the use of Secrets Manager property placeholders together with Cloud SQL configuration.
- Fixed a bug in the
BigQueryFileMessageHandler
where it referenced the wrong variable in the setter (#270)
-
Added
storeOnDisk
anddataDir
configuration properties for Datastore Emulator (#344) -
Fixed resolution of references and descendants for subclasses (#377)
- Modified
Firestore.withParent()
to acceptString
instead ofObject
(#315)
- Fixed the JSON layout logging levels mapping (#314)
-
In Cloud Stream Pub/Sub Binder, added support for specifying a custom subscription as a consumer endpoint (#262)
-
Added
PubSubAdmin.createSubscription(Subscription.Builder)
to allow access to all subscription properties (#343) -
Added warnings about the use of
returnImmediately=true
(#354) -
Added Cloud Stream Dead Letter Topic support (#358)
-
Added support for custom subscription name for Pub/Sub health check (#330)
-
Added support for message ordering when publishing (#408)
- Introduced
spring.cloud.gcp.pubsub.publisher.enable-message-ordering
andGcpPubSubHeaders.ORDERING_KEY
header
- Introduced
- Fixed:
PathResourceResolver
can’t resolve aGoogleStorageResource
due to no Google StorageUrlStreamHandler
(#210)
-
Upgraded to Spring Cloud 2020.0.1 and Spring Boot 2.4.2 (#233)
-
Multiple code quality improvements with help from SonarCloud
- Fixed: Firestore emulator not using configured project id (#211)
-
Fixed: Trace ID not populated when using
AsyncAppender
(#196) -
Made
StackdriverJsonLayout
more customizable with support for logging event enhancers (#208)- Added an extension for Logstash markers support
- Fixed: Spring Cloud Stream unable to setup subscription to a topic in a different GCP project (#232)
- Fixed session leak with aborted read/write transactions (#251)
-
Compatible with Spring Cloud
2020.0.0
(Ilford release train) -
Package renamed from
org.springframework.cloud.gcp
tocom.google.cloud.spring
-
Maven coordinates now use
com.google.cloud
as the group ID -
All
deprecated
items removed
For a full list, please see the 2.x migration guide.
- Replaced
CloudSqlAutoConfiguration
withCloudSqlEnvironmentPostProcessor
(#131)
-
Fixed auditing when running through
DatastoreTemplate.performTransaction()
(#157) -
Fixed
findAll(example, pageable)
ignores@Reference
annotated fields (#177)
-
Resolved 10 simultaneous writes limitation (#135)
-
Added update time and optimistic locking support (#171)
-
Added Cloud Key Management Service (KMS) support (#175)
- Spring Boot starter, sample, and documentation included
- Added support for trace with async logging (#197)
- Multiple fixes for the metrics auto-config and sample (#121)
- Addded support for binder customizers (#186)
- Changed secret manager module to use v1 instead of v1beta (#173)
- Added support
spring.cloud.gcp.project-id
property for Spanner Emulator config (#123)
- Fixed Pub/Sub emulator
ManagedChannel
shutdown (#2583)
-
Added
proxyBeanMethods = false
to configuration classes for better GraalVM support (#2525) -
Updated
gcp-libraries-bom.version
to 13.4.0 (#2571)
-
Differentiate between Publisher and Subscriber
TransportChannelProvider
(#2520)- If you’ve been overwriting the auto-configured
transportChannelProvider
bean for Pub/Sub, you will need to rename it to{"subscriberTransportChannelProvider", "publisherTransportChannelProvider"}
.
- If you’ve been overwriting the auto-configured
-
Better generics for ack operations in
PubSubSubscriberOperations
(#2539)- This a minor breaking change if you have a custom implementation
of
PubSubSubscriberOperations
.
- This a minor breaking change if you have a custom implementation
of
-
Fixed: With MessageHistory enabled, sending a Pub/Sub message and consuming it in a subscription fails due to
IllegalArgumentException
(#2562)
-
Added support for configuring Cloud SQL ipTypes with the
spring.cloud.gcp.sql.ip-types
property (#2513) -
Fixed: starter-sql-mysql doesn’t override
spring.datasource.url
(#2537)
- Added NUMERIC data type support for Spanner (BigDecimal) (#2515)
-
Fixed: StructuredQuery.from cannot have more than one collection selector (#2510)
-
Added query methods that return
Slice
toDatastoreTemplate
to allow pagination (#2541) -
Added support for
is not equal
andnot in
filters in method name based queries (#2563)
-
Fixed: Spring GCP Secrets references not working when using Spring Cloud Server (#2483)
-
Fixed: Spring boot error when using google-cloud-secretmanager library without spring-cloud-gcp-starter-secretmanager (#2506)
- Added support for composite actuator contributor for multiple Pub/Sub templates (#2493)
- Added value nullity check to avoid NPE with primitive types (#2505)
- Upgraded GCP libraries BOM and other dependencies (#2477)
-
New Spring Cloud GCP starter,
spring-cloud-gcp-starter-metrics
, configures Micrometer Stackdriver to automatically pick up project ID and credentials (thanks to @eddumelendez). -
Added Metrics Sample App (#2455)
- Allow
projectId
override in Firebase Authentication (#2405)
-
Allow
Pageable
andSort
in method-style (part-tree) queries (#2394) -
Fixed:
NullPointerException
when passing the null value for nullable column (#2448)
- Added additional operations for managing secret versions with
SecretManagerTemplate
(thanks to @kioie)
-
Added the
spring.cloud.gcp.storage.project-id
autoconfig property (#2440) -
Additional GCS Spring Integration file filters
GcsAcceptModifiedAfterFileListFilter
andGcsDiscardRecentModifiedFileListFilter
(thanks to @hosainnet)
-
Fixed: Unable to exclude indexes on nested properties of embedded entity (#2439)
-
Fixed slice query execution in
PartTreeDatastoreQuery
(#2452) -
Fixed
null
handling for ID in query-by-example (#2471)
-
Added
maxMessages
toPubSubReactiveFactory.poll
(#2441) -
Control sync/async publish in Spring Cloud Stream binder (#2473)
-
Add subcollection support for
FirestoreTemplate
(#2434) -
Added support for automatic ID generation (#2466)
-
Added
FirestoreTemplate
reference documentation (#2480)
-
Upgrade to latest libraries bom and sql socket factory (#2373)
-
Make transaction managers conditional on enabled flag for Spanner and Datastore (#2376)
As we upgraded to the latest version of google-cloud-logging-logback
,
we picked up a breaking
change
where the log entry payload is now written in JSON rather than plain
text. So, if you’re reading log entries back from Cloud Logging using
LogEntry.getPayload()
, make sure to cast the returned payload object
to JsonPayload
instead of StringPayload
.
This version introduced several breaking changes to Secret Manager property source. Please see the reference documentation for the new way for accessing secrets as properties.
-
Remove the version property in secret manager (#2270)
-
Create protocol for specifying secrets' project and versions (#2302)
-
Add secret manager autoconfigure property (#2363)
-
New async pull methods in
Pub/Sub Template
, as well as fully asynchronousPubSubReactiveFactory.poll()
(#2227) -
Suppress exception in Pub/Sub adapter in AUTO_ACK and MANUAL modes (#2319)
-
Make 403 an allowable Pub/Sub UP status (#2385)
- Support Extra Propagation Fields with Trace (#2290)
-
Fix @Where with ORDER BY query generation (#2267)
-
Add SpannerOptions auto-configuration for emulator (#2356)
-
Support for nested properties in PartTree methods (#2307)
-
Datastore Projections should restrict query to contain only the necessary fields (#2335)
-
Support custom maps (#2345)
-
Firestore nested properties (#2300)
-
Add autoconfiguration for Firestore Emulator (#2244)
-
Add support for Firestore Sort PartTree queries (#2341)
-
Add child collection to the entity class in Firestore sample (#2388)
- Allow users to provide the ImageContext in CloudVisionTemplate (#2286)
- Make Firebase Security Autoconfiguration conditional (#2258) Thank you to the contributors from our user community: @eddumelendez, @mzeijen, @s13o, @acet, @guillaumeblaquiere
-
Switched to using GCP Libraries BOM for managing GCP library versions (#2109)
-
Core auto-configuration can now be disabled with
spring.cloud.gcp.core.enabled=false
(#2147) -
Reference documentation improvements
-
Two new modules: Firebase Auth and Secret Manager
-
Support lazy loading entities using @LazyReference (#2104)
-
Made existsById more efficient by retrieving only the key field (#2127)
-
Projections now work with the Slice return type (#2133) and GQL queries (#2139) in repositories
-
Improved repository method name validation (#2155)
-
Fixed delete for void repository method return type (#2169)
- Introduced Firebase Authentication module (#2111)
- Added IN support in name-based queries (#2054)
-
ACK_MODE is now configurable using stream binders (#2079)
-
Added HealthIndicator implementation (#2030)
-
Fixed:
PubSubReactiveFactory.poll
doesn’t handle exceptions thrown by thePubSubSubscriberOperations
(#2229)- NOTE: previously silently ignored exceptions are now forwarded to the Flux
-
Bootstrap Property Source which loads secrets from Secret Manager to be accessible as environment properties to your application (#2168)
-
SecretManagerTemplate implementation (#2195)
-
New Secret Manager sample app (#2190)
-
Fixed java.util.Date conversion and added LocalDate and LocalDateTime support (#2067)
-
Added support for non-Key ID types in Spring Data REST repositories (#2049)
-
Optimized eager loading for interleaved properties (#2110) (#2165)
-
Enable using PENDING_COMMIT_TIMESTAMP in Spring Data Spanner (#2203)
-
Added ability to provide initial file contents on blob creation (#2097)
-
You can now use a comparator with GcsStreamingMessageSource to process blobs from Cloud Storage in an ordered manner. (#2117)
-
Fixed GCS emulator BlobInfo update time initialization (#2113)
- Hid trace scheduler from Spring Sleuth (#2158)
- Fixed java.sql.Timestamp to com.google.cloud.Timestamp conversion (#2064)
- Fixed AUTO_ACK acking behavior in PubSubInboundChannelAdapter (#2075)
-
New module
-
Autoconfiguration for the BigQuery client objects with credentials needed to interface with BigQuery
-
A Spring Integration message handler for loading data into BigQuery tables in your Spring integration pipelines
- Created a separate starter for Cloud Foundry: spring-cloud-gcp-starter-cloudfoundry
-
Datastore emulator support and auto-configuration
-
Entity Inheritance Hierarchies support
-
Query by example
-
Support Pagination for @Query annotated methods
-
Support key fields in name-based query methods
-
Events and Auditing support
-
Support for multiple namespaces
-
Spring Boot Actuator Support for Datastore Health Indicator (#1423)
-
Spring Data Reactive Repositories for Cloud Firestore
-
Cloud Firestore Spring Boot Starter
-
Additional metadata support for JSON logging (#1310)
-
Add service context for Stackdriver Error Reporting
-
Add option to add custom json to log messages
-
A separate module for Logging outside of autoconfiguration (#1455)
-
PubsubTemplate publish to topics in other projects (#1678)
-
PubsubTemplate subscribe in other projects (#1880)
-
Reactive support for Pub/Sub subscription (#1461)
-
Spring Integration - Pollable Message Source (using Pub/Sub Synchronous Pull) (#1321)
-
Pubsub stream binder via synchronous pull (#1419)
-
Add keepalive property to pubsub; set default at 5 minutes (#1807)
-
Change thread pools to create daemon threads that do not prevent JVM shutdown (#2010)
- This is a change in behavior for non-web applications that subscribe to a Cloud Pub/Sub topic. The subscription threads used to keep the application alive, but will now allow the application to shut down if no other work needs to be done.
-
Added original message to the throwable for Pub/Sub publish failures (#2020)
- Added support to allow multiple IAP audience claims (#1856)
-
Expose Spanner failIfPoolExhausted property (#1889)
-
Lazy fetch support for interleaved collections (#1460)
-
Bounded staleness option support (#1727)
-
Spring Data Spanner Repositories
In
clause queries support (#1701) -
Spanner array param binding
-
Events and Auditing support
-
Multi-Instance support (#1530)
-
Fixed conversion for timestamps older than unix epoch (#2043)
-
Fixed REST Repositories PUT by populating key fields when virtual key property is set (#2053)
- Spring Cloud Config and Bus over Pub/Sub sample/docs (#1550)
- Cloud Vision Document OCR support