Closed credmond-git closed 9 months ago
I was just about to report this exact same problem.
Spring Boot 3.2 support has not yet been added to Spring Cloud GCP. Parent issue #2301
When do you expect this to be resolved? We are paying customers who use GCP extensively, and this is blocking us from using virtual threads.
@jimshowalter Would you mind filing a support case to help us prioritize your request better through the right channels?
@meltsufin, filed a support case.
I'm also experiencing this issue and it is blocking upgrade to Spring Boot 3.2 which is desirable due to virtual threads. Appreciate if you would prioritize fixing this ASAP.
I'd expect Spring Cloud GCP to be ahead of these issues and test Spring Boot release candidates before they are released so that any incompatibility issues are resolved in advance. It'd be great if you can make that part of the process.
Spring Cloud GCP is heavily reliant on Spring Cloud.
As Spring Cloud 2022 is not compatible with Spring Boot 3.2.0, we are waiting for the GA release of Spring Cloud 2023.
2022? Does Spring Cloud not publish quarterly (or more often) releases?
They're almost out of 2023. Going to need to change the version name!
If they really only release once a year, you need to find some other way to manage dependencies.
Spring Cloud 2022 was released in December 2022, and has had 3 patch updates. Spring Cloud 2021 was released in December 2021, and has had 7 patch updates.
We expect Spring Cloud 2023 to follow this pattern. Spring Cloud's 'Supported Versions' documentation provides more information about the release train and their process.
It sounds like you're saying nothing can be done until some time this month.
We have a platform used by a bunch of microservices. We use best-practice CI/CD, where we publish only from the tip of the main branch. We don't have feature branches.
So now we either have to hold back all of our services on 3.1.x, or upgrade our platform and services that don't use pubsub, and hope we don't need to fix a bug in or platform that's needed by the services that use pubsub.
Spring Boot 3.2.0 is not compatible with Spring Cloud 2022. If Spring Cloud GCP updates to Spring Boot 3.2.0 right now, it'd have to use the release candidate of Spring Cloud 2023 and would force this same decision on all dependent projects. Our stance is that production projects should not use prerelease versions, so this is not our practice.
Please consider escalating this through the support case you've filed, as this will help us understand your projects' use case and review how we might adjust this policy in the future.
Already escalated.
The use case is simple: consumers of APIs that wrap Spring (or anything else) expect/require to be able to upgrade to newer versions of what is wrapped, in a timely manner, in order to stay compliant with FedRAMP High and other requirements.
We'll wait, but we also will soon post a one-class solution to this problem, so others who don't want to wait don't need to.
It sounds as if there needs to be a closer coupling among the various organizations responsible for Spring, Spring Boot, Spring Cloud, and spring-cloud-gcp.
I realize that's a herding-cats problem, but also, the Spring orgs + Google are pretty big cats.
If you don't want to wait, this seems to fix the problem: PubSubHealthIndicatorAutoConfiguration.txt
@jimshowalter : I previously mistyped the issue number in the PR so the linking didn't work. I've opened a PR to pre-emptively backport the changes for Spring Boot 3.2 compatibility to the current main branch. There are a few other classes that need adjustments similar to the PubSubHealthIndicatorAutoConfiguration. This PR should be mergable soon.
Note that once merged, we won't be claiming support for Spring Boot 3.2.x, but it should resolve compiler-specific compatibility issues even as Spring Cloud compatibility is yet to be resolved.
Excellent, thank you!
This has been merged into main. The next release of Spring Cloud GCP is expected this week and will contain these updates.
Spring Cloud GCP extends Spring Cloud. Spring Cloud 2023.0 will support Spring Boot 3.2, but Spring Cloud 2023.0 hasn’t been released yet, so Spring Cloud GCP can’t support Spring Boot 3.2 yet today.
Spring Boot 3.2.0 was released on November 23, and Spring Cloud 2023.0.0 was originally scheduled to be released on November 28. That got postponed to December 5, but it seems they didn’t make that date either: https://github.com/spring-cloud/spring-cloud-release/milestone/132
I don’t think escalating an issue at Google can speed this up, VMware first needs to finish their Spring Cloud 2023.0.0 release.
@burkedavison Spring Cloud 2023.0.0 is released
I see that Spring Cloud 2023.0.0 is released and that it will support Spring Boot 3.2.
What is the version to use for the "com.google.cloud:spring-cloud-gcp-dependencies" dependency? The previous version was "4.8.4".
@burkedavison Any updates on this? I just tried to use v5.0.0 but I'm still getting the same error message as in the description of this issue
@amynguyen780 Can you re-verify that you're using Spring Cloud GCP 5.0.0 or 4.9.0? Otherwise, could you provide an updated stack trace for the error you're seeing?
The OP stack trace shows throws an exception due to PubSubHealthIndicatorAutoConfiguration
calling the null constructor for CompositeHealthContributorConfiguration
which has been removed.
However, since the backport PR and the 4.9.0 release, the source no longer calls the null constructor.
Spring Cloud 2023.0.x and Spring Boot 3.2 is now supported in Spring Cloud GCP 5.x. Closing this issue. @amynguyen780 , please open a new ticket with an updated stack trace if you continue to see an error.
ah yes i got it to work now. there were some spring cloud gcp dependencies we were pulling in transitively that were still on 4.8.4. thanks
Describe the bug My application fails to start with an exception:
Error creating bean with name 'com.google.cloud.spring.autoconfigure.pubsub.health.PubSubHealthIndicatorAutoConfiguration': Failed to instantiate [com.google.cloud.spring.autoconfigure.pubsub.health.PubSubHealthIndicatorAutoConfiguration]: Constructor threw exception
I am upgrading my application to spring boot 3.2, with Java 21, and
com.google.cloud:spring-cloud-gcp-starter-pubsub:4.8.4
I do not have any other GCP Projects in my application.
I am temporarily able to start myt application by using the following property.
management.health.pubsub.enabled = false
Callstack: