Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add AutoCloseable shortcut on Flux#using, Mono#using #3704

Merged
merged 9 commits into from
Feb 2, 2024

Conversation

injae-kim
Copy link
Contributor

Make Flux, Mono#using to close AutoCloseable resource,
so that user don't have to pass resourceCleanup consumer.

Fixes #3333.

Make `Flux, Mono#using` to close `AutoCloseable` resource,
so that user don't have to pass resourceCleanup consumer.


Fixes reactor#3333.
@injae-kim injae-kim requested a review from a team as a code owner January 25, 2024 17:08
Copy link
Member

@chemicL chemicL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution 🎉 I left a few suggestions which will make the contribution complete in my view, hope you can apply them and we can ship this nice feature.

Copy link
Member

@chemicL chemicL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for applying the changes! I added a few more suggestions. Also, I don't see a test case for when the close action fails and how the exception is handled/dropped, is it there somewhere? If not, I believe it would be worthwhile to add such validation.

@chemicL
Copy link
Member

chemicL commented Feb 1, 2024

Please also update the methodExcludes section in japicmp entry in reactor-core/build.gradle file as this is a source incompatible change we need to account for. That's why the CI build fails.

@injae-kim
Copy link
Contributor Author

injae-kim commented Feb 1, 2024

I don't see a test case for when the close action fails and how the exception is handled/dropped

✅ updated, I added resourcesCleanupThrow[NonEager|Eager] test cases~!

Please also update the methodExcludes section in japicmp entry in reactor-core/build.gradle file

✅ updated! this is the reason why CI build fails. thanks!
japicmp now passes on my local env.

Copy link
Member

@chemicL chemicL left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work! Thank you for the time and applying all the suggestions. It was a pleasure to review your work and hope to see more contributions in the future 🚀

@He-Pin
Copy link
Contributor

He-Pin commented Feb 2, 2024

Thanks Again, I'm using reactor core at $work too.

@chemicL chemicL merged commit 67b2f25 into reactor:main Feb 2, 2024
6 checks passed
@chemicL chemicL added the type/enhancement A general enhancement label Feb 2, 2024
@chemicL chemicL added this to the 3.5.15 milestone Feb 2, 2024
@injae-kim
Copy link
Contributor Author

injae-kim commented Feb 6, 2024

Thank you to all reviewers! your code reviews are really great and kind, I've learn a lot from review. :)

I'm big fan of reactive-streams and spring-framework, so I'll keep contributing on reactor-core. 🚀

@violetagg violetagg changed the title Add AutoCloseable shourtcut on Flux#using, Mono#using Add AutoCloseable shortcut on Flux#using, Mono#using Mar 11, 2024
@violetagg
Copy link
Member

This change is committed only to main branch. Changing the milestone version to 3.6.4.

@violetagg violetagg modified the milestones: 3.5.15, 3.6.4, 3.6.3 Mar 12, 2024
dariuszkuc referenced this pull request in apollographql/federation-jvm May 15, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[io.projectreactor:reactor-test](https://togithub.com/reactor/reactor-core)
| `3.6.2` -> `3.6.6` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.projectreactor:reactor-test/3.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.projectreactor:reactor-test/3.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.projectreactor:reactor-test/3.6.2/3.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.projectreactor:reactor-test/3.6.2/3.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.springframework.graphql:spring-graphql-test](https://togithub.com/spring-projects/spring-graphql)
| `1.2.4` -> `1.2.6` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.springframework.graphql:spring-graphql-test/1.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.springframework.graphql:spring-graphql-test/1.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.springframework.graphql:spring-graphql-test/1.2.4/1.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.springframework.graphql:spring-graphql-test/1.2.4/1.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.springframework.boot:spring-boot-starter-websocket](https://spring.io/projects/spring-boot)
([source](https://togithub.com/spring-projects/spring-boot)) | `3.2.2`
-> `3.2.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.springframework.boot:spring-boot-starter-websocket/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.springframework.boot:spring-boot-starter-websocket/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.springframework.boot:spring-boot-starter-websocket/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.springframework.boot:spring-boot-starter-websocket/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.springframework.boot:spring-boot-starter-test](https://spring.io/projects/spring-boot)
([source](https://togithub.com/spring-projects/spring-boot)) | `3.2.2`
-> `3.2.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.springframework.boot:spring-boot-starter-test/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.springframework.boot:spring-boot-starter-test/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.springframework.boot:spring-boot-starter-test/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.springframework.boot:spring-boot-starter-test/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.springframework.boot:spring-boot-starter-webflux](https://spring.io/projects/spring-boot)
([source](https://togithub.com/spring-projects/spring-boot)) | `3.2.2`
-> `3.2.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.springframework.boot:spring-boot-starter-webflux/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.springframework.boot:spring-boot-starter-webflux/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.springframework.boot:spring-boot-starter-webflux/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.springframework.boot:spring-boot-starter-webflux/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.springframework.boot:spring-boot-starter-web](https://spring.io/projects/spring-boot)
([source](https://togithub.com/spring-projects/spring-boot)) | `3.2.2`
-> `3.2.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.springframework.boot:spring-boot-starter-web/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.springframework.boot:spring-boot-starter-web/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.springframework.boot:spring-boot-starter-web/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.springframework.boot:spring-boot-starter-web/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.springframework.boot:spring-boot-starter-graphql](https://spring.io/projects/spring-boot)
([source](https://togithub.com/spring-projects/spring-boot)) | `3.2.2`
-> `3.2.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.springframework.boot:spring-boot-starter-graphql/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.springframework.boot:spring-boot-starter-graphql/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.springframework.boot:spring-boot-starter-graphql/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.springframework.boot:spring-boot-starter-graphql/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [org.slf4j:slf4j-api](http://www.slf4j.org)
([source](https://togithub.com/qos-ch/slf4j),
[changelog](https://www.slf4j.org/news.html)) | `2.0.12` -> `2.0.13` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.slf4j:slf4j-api/2.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.slf4j:slf4j-api/2.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.slf4j:slf4j-api/2.0.12/2.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.slf4j:slf4j-api/2.0.12/2.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| io.spring.dependency-management | `1.1.4` -> `1.1.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/io.spring.dependency-management/1.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.spring.dependency-management/1.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.spring.dependency-management/1.1.4/1.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.spring.dependency-management/1.1.4/1.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| org.springframework.boot | `3.2.2` -> `3.2.5` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.springframework.boot/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.springframework.boot/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.springframework.boot/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.springframework.boot/3.2.2/3.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>reactor/reactor-core (io.projectreactor:reactor-test)</summary>

###
[`v3.6.6`](https://togithub.com/reactor/reactor-core/compare/v3.6.5...v3.6.6)

[Compare
Source](https://togithub.com/reactor/reactor-core/compare/v3.6.5...v3.6.6)

###
[`v3.6.5`](https://togithub.com/reactor/reactor-core/compare/v3.6.4...v3.6.5)

###
[`v3.6.4`](https://togithub.com/reactor/reactor-core/releases/tag/v3.6.4)

<!-- Release notes generated using configuration in .github/release.yml
at v3.6.4 -->

`Reactor Core` `3.6.4` is part of **`2023.0.4` Release Train**.

#### What's Changed

##### ✨ New features and improvements

- Throw wrapped `TimeoutException` on `Mono.block*` and `Flux.block*` by
[@&#8203;injae-kim](https://togithub.com/injae-kim) in
[#&#8203;3733](https://togithub.com/reactor/reactor-core/issues/3733)

##### 🐞 Bug fixes

- Fix stress test expectation and bug in `ColdTestPublisher` by
[@&#8203;OlegDokuka](https://togithub.com/OlegDokuka) in
[#&#8203;3700](https://togithub.com/reactor/reactor-core/issues/3700)

##### 📖 Documentation

- Fix formatting in `coreFeatures.adoc` by
[@&#8203;kzander91](https://togithub.com/kzander91) in
[#&#8203;3676](https://togithub.com/reactor/reactor-core/issues/3676)
- Improve `Mono#share` javadoc for cancelling by
[@&#8203;chemicL](https://togithub.com/chemicL) in
[#&#8203;3741](https://togithub.com/reactor/reactor-core/issues/3741)

#### New Contributors

- [@&#8203;kzander91](https://togithub.com/kzander91) made their first
contribution in
[#&#8203;3676](https://togithub.com/reactor/reactor-core/issues/3676)

**Full Changelog**:
reactor/reactor-core@v3.6.3...v3.6.4

###
[`v3.6.3`](https://togithub.com/reactor/reactor-core/releases/tag/v3.6.3)

<!-- Release notes generated using configuration in .github/release.yml
at v3.6.3 -->

`Reactor Core` `3.6.3` is part of **`2023.0.3` Release Train**.

#### What's Changed

##### ✨ New features and improvements

- Add `AutoCloseable` shourtcut on `Flux#using`, `Mono#using` by
[@&#8203;injae-kim](https://togithub.com/injae-kim) in
[https://github.com/reactor/reactor-core/pull/3704](https://togithub.com/reactor/reactor-core/pull/3704)

##### 📖 Documentation, Tests and Build

- Ignoring flaky JCStress tests by
[@&#8203;chemicL](https://togithub.com/chemicL) in
[https://github.com/reactor/reactor-core/pull/3690](https://togithub.com/reactor/reactor-core/pull/3690)
- Fix flaky `TimedScheduler` periodic scheduling tests by
[@&#8203;Nicolas125841](https://togithub.com/Nicolas125841) in
[https://github.com/reactor/reactor-core/pull/3677](https://togithub.com/reactor/reactor-core/pull/3677)
- Bump gradle/gradle-build-action from 2.9.0 to 3.0.0 in
/.github/workflows by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/reactor/reactor-core/pull/3712](https://togithub.com/reactor/reactor-core/pull/3712)
- Bump actions/setup-java from 3.13.0 to 4.0.0 in /.github/workflows by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/reactor/reactor-core/pull/3654](https://togithub.com/reactor/reactor-core/pull/3654)
- Bump actions/checkout from 4.1.0 to 4.1.1 in /.github/workflows by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/reactor/reactor-core/pull/3622](https://togithub.com/reactor/reactor-core/pull/3622)
- Bump gradle/wrapper-validation-action from 1.1.0 to 2.0.1 in
/.github/workflows by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/reactor/reactor-core/pull/3717](https://togithub.com/reactor/reactor-core/pull/3717)
- Nightly build to run jcstress weekly, snapshots daily by
[@&#8203;chemicL](https://togithub.com/chemicL) in
[https://github.com/reactor/reactor-core/pull/3716](https://togithub.com/reactor/reactor-core/pull/3716)
- Adds other JDKs to snapshots workflow by
[@&#8203;chemicL](https://togithub.com/chemicL) in
[https://github.com/reactor/reactor-core/pull/3720](https://togithub.com/reactor/reactor-core/pull/3720)
- Restore java21Test back into workflows by
[@&#8203;chemicL](https://togithub.com/chemicL) in
[https://github.com/reactor/reactor-core/pull/3721](https://togithub.com/reactor/reactor-core/pull/3721)
- Exclude java21 tests from 3.5.x in snapshots workflow by
[@&#8203;chemicL](https://togithub.com/chemicL) in
[https://github.com/reactor/reactor-core/pull/3722](https://togithub.com/reactor/reactor-core/pull/3722)
- Switch jcstress mode to quick in nightly workflow by
[@&#8203;chemicL](https://togithub.com/chemicL) in
[https://github.com/reactor/reactor-core/pull/3723](https://togithub.com/reactor/reactor-core/pull/3723)

#### New Contributors

- [@&#8203;injae-kim](https://togithub.com/injae-kim) made their first
contribution in
[https://github.com/reactor/reactor-core/pull/3704](https://togithub.com/reactor/reactor-core/pull/3704)

**Full Changelog**:
reactor/reactor-core@v3.6.2...v3.6.3

</details>

<details>
<summary>spring-projects/spring-graphql
(org.springframework.graphql:spring-graphql-test)</summary>

###
[`v1.2.6`](https://togithub.com/spring-projects/spring-graphql/releases/tag/v1.2.6)

#### ⭐ New Features

- Avoid `graphql.AssertException` for persisted query
[#&#8203;930](https://togithub.com/spring-projects/spring-graphql/issues/930)
- Use either `first` or `after` to determine forward pagination
[#&#8203;929](https://togithub.com/spring-projects/spring-graphql/issues/929)

#### 🪲 Bug Fixes

- Pagination with "after" cursor results in `ScrollPosition` that skips
one extra item
[#&#8203;925](https://togithub.com/spring-projects/spring-graphql/issues/925)
- Observation instrumentation assumes local context is a GraphQLContext
[#&#8203;918](https://togithub.com/spring-projects/spring-graphql/issues/918)
- WebSocketGraphQlInterceptor is not notified when idle connection is
closed
[#&#8203;872](https://togithub.com/spring-projects/spring-graphql/issues/872)

#### 📔 Documentation

- Updated documentation with guidance on using virtual threads
[#&#8203;907](https://togithub.com/spring-projects/spring-graphql/issues/907)

#### 🔨 Dependency Upgrades

- Upgrade to GraphQL Java 20.9
[#&#8203;936](https://togithub.com/spring-projects/spring-graphql/issues/936)
- Upgrade to Spring Framework 6.0.18
[#&#8203;938](https://togithub.com/spring-projects/spring-graphql/issues/938)

###
[`v1.2.5`](https://togithub.com/spring-projects/spring-graphql/releases/tag/v1.2.5)

#### ⭐ New Features

- Revise default ScrollSubrange support for QueryDsl and QBE
DataFetcher's
[#&#8203;917](https://togithub.com/spring-projects/spring-graphql/issues/917)
- Avoid changing default DataLoaderRegistry when there are no
registrations
[#&#8203;915](https://togithub.com/spring-projects/spring-graphql/issues/915)
- Decode GraphQL request body to higher level object
[#&#8203;905](https://togithub.com/spring-projects/spring-graphql/issues/905)
- Avoid async handling in WebMvc if not necessary to wait
[#&#8203;904](https://togithub.com/spring-projects/spring-graphql/issues/904)
- Allow passing Map of DataFetcher registrations to
SchemaMappingInspector as alternative to RuntimeWiring
[#&#8203;894](https://togithub.com/spring-projects/spring-graphql/issues/894)
- Provide access to SchemaMappingInspector
[#&#8203;881](https://togithub.com/spring-projects/spring-graphql/issues/881)

#### 🪲 Bug Fixes

- Adjust offset based pagination to be exclusive of reference position
[#&#8203;916](https://togithub.com/spring-projects/spring-graphql/issues/916)
- Multiple ControlledAdvice is not working properly
[#&#8203;901](https://togithub.com/spring-projects/spring-graphql/issues/901)
- Verify errors in GraphQlTester nested path check with Consumer
[#&#8203;891](https://togithub.com/spring-projects/spring-graphql/issues/891)
- Ensure schema inspection always runs once even if the builder is used
again
[#&#8203;878](https://togithub.com/spring-projects/spring-graphql/issues/878)
- Schema inspection ignores types wrapped by Optional
[#&#8203;875](https://togithub.com/spring-projects/spring-graphql/issues/875)
- `@SubscriptionMapping` missing AuthenticationPrincipal
[#&#8203;861](https://togithub.com/spring-projects/spring-graphql/issues/861)

#### 🔨 Dependency Upgrades

- Upgrade to Kotlin 1.9.22
[#&#8203;908](https://togithub.com/spring-projects/spring-graphql/issues/908)
- Upgrade to Micrometer 1.11.9 and Tracing 1.1.10
[#&#8203;911](https://togithub.com/spring-projects/spring-graphql/issues/911)
- Upgrade to Reactor 2022.0.16
[#&#8203;910](https://togithub.com/spring-projects/spring-graphql/issues/910)
- Upgrade to Spring Data 2023.0.9
[#&#8203;912](https://togithub.com/spring-projects/spring-graphql/issues/912)
- Upgrade to Spring Framework 6.0.17
[#&#8203;909](https://togithub.com/spring-projects/spring-graphql/issues/909)
- Upgrade to Spring Security 6.1.7
[#&#8203;913](https://togithub.com/spring-projects/spring-graphql/issues/913)

#### ❤️ Contributors

Thank you to all the contributors who worked on this release:

[@&#8203;erichaagdev](https://togithub.com/erichaagdev) and
[@&#8203;nilshartmann](https://togithub.com/nilshartmann)

</details>

<details>
<summary>spring-projects/spring-boot
(org.springframework.boot:spring-boot-starter-websocket)</summary>

###
[`v3.2.5`](https://togithub.com/spring-projects/spring-boot/compare/v3.2.4...v3.2.5)

###
[`v3.2.4`](https://togithub.com/spring-projects/spring-boot/compare/v3.2.3...v3.2.4)

###
[`v3.2.3`](https://togithub.com/spring-projects/spring-boot/releases/tag/v3.2.3)

##### ⚠️ Noteworthy

- This release upgrades to Hibernate 6.4.4.Final. While it contains a
number of valuable bug fixes, it does not work correctly in a native
image. If you are using GraalVM, Hibernate should be temporarily
downgraded to 6.4.2.Final using the `hibernate.version` property.

##### 🐞 Bug Fixes

- Nested jar URLs can not be resolved if the path contains spaces
[#&#8203;39675](https://togithub.com/spring-projects/spring-boot/pull/39675)
- Image building runs for a long time when a long image name is used and
the tag contains an illegal character
[#&#8203;39638](https://togithub.com/spring-projects/spring-boot/issues/39638)
- Banner printing doesn't respect set charset
[#&#8203;39621](https://togithub.com/spring-projects/spring-boot/issues/39621)
- "micrometer.observations.\*" configuration properties should be
"management.observations.\*"
[#&#8203;39600](https://togithub.com/spring-projects/spring-boot/issues/39600)
- Metadata reading during configuration class parsing uses the default
resource loader rather than the application's resource loader
[#&#8203;39598](https://togithub.com/spring-projects/spring-boot/issues/39598)
- Several gson properties, including spring.gson.disable-html-escaping,
do not behave correctly when set to false
[#&#8203;39524](https://togithub.com/spring-projects/spring-boot/issues/39524)
- Property placeholders aren't resolved when configuration property
binding creates a Map from a property value using a converter
[#&#8203;39515](https://togithub.com/spring-projects/spring-boot/issues/39515)
- Gradle plugin allows the use of Gradle 7.4 but the documented and
tested minimum is 7.5
[#&#8203;39513](https://togithub.com/spring-projects/spring-boot/issues/39513)
- WebFlux auto-configuration should only configure the blocking executor
when virtual threads are enabled
[#&#8203;39469](https://togithub.com/spring-projects/spring-boot/issues/39469)
- TestcontainersPropertySource assertion has typo
[#&#8203;39449](https://togithub.com/spring-projects/spring-boot/issues/39449)
- Webflux actuator endpoints respond with 500 when a parameter is
missing
[#&#8203;39444](https://togithub.com/spring-projects/spring-boot/issues/39444)
- NoSuchMethod error when using the non-shaded Pulsar client and
configuring authentications parameters
[#&#8203;39389](https://togithub.com/spring-projects/spring-boot/pull/39389)
- Jetty GracefulShutdown writes to System.out
[#&#8203;39360](https://togithub.com/spring-projects/spring-boot/pull/39360)
- Building images fails with Docker 25.0 when custom buildpacks are
configured
[#&#8203;39347](https://togithub.com/spring-projects/spring-boot/issues/39347)
- Creating a RestClient from a RestTemplateBuilder-created RestTemplate
requires double configuration of the baseUrl/rootUri
[#&#8203;39317](https://togithub.com/spring-projects/spring-boot/issues/39317)
- Auto-configured ConcurrentPulsarListenerContainerFactory and
PulsarConsumerFactory cannot be injected into injection points with
specific generic type information
[#&#8203;39308](https://togithub.com/spring-projects/spring-boot/pull/39308)
- Startup failure when you have multiple `@DynamicPropertySources` in
Spring Boot 3.2.2
[#&#8203;39297](https://togithub.com/spring-projects/spring-boot/pull/39297)
- Mockito's MockedStatic isn't closed in all cases
[#&#8203;39272](https://togithub.com/spring-projects/spring-boot/issues/39272)
- TracingProperties exposes package-private PropagationType from public
methods
[#&#8203;39268](https://togithub.com/spring-projects/spring-boot/issues/39268)

##### 📔 Documentation

- Add note regarding mixing of bundle-based and direct SSL configuration
[#&#8203;39641](https://togithub.com/spring-projects/spring-boot/issues/39641)
- Add link to Pulsar workaround when using environment variables for
authentication
[#&#8203;39630](https://togithub.com/spring-projects/spring-boot/pull/39630)
- Document that task executor pool size properties are ignored when
using virtual threads
[#&#8203;39629](https://togithub.com/spring-projects/spring-boot/pull/39629)
- Document default value for show-value configuration properties
[#&#8203;39596](https://togithub.com/spring-projects/spring-boot/issues/39596)
- Clarify that configuration properties only apply to the
auto-configured OpenTelemetry Resource bean
[#&#8203;39509](https://togithub.com/spring-projects/spring-boot/pull/39509)
- Update the Debugging Documentation of the Spring Boot Maven Plugin
[#&#8203;39422](https://togithub.com/spring-projects/spring-boot/issues/39422)
- Awaitility link in Test Scoped Dependencies is incorrect
[#&#8203;39415](https://togithub.com/spring-projects/spring-boot/pull/39415)
- Fixed NestedJarFile constructor javadoc
[#&#8203;39285](https://togithub.com/spring-projects/spring-boot/pull/39285)
- Endpoint documentation contains the typo 'Unuthorized'
[#&#8203;39280](https://togithub.com/spring-projects/spring-boot/issues/39280)
- Update Revved up by Develocity badge
[#&#8203;39263](https://togithub.com/spring-projects/spring-boot/issues/39263)

##### 🔨 Dependency Upgrades

- Upgrade to Byte Buddy 1.14.12
[#&#8203;39665](https://togithub.com/spring-projects/spring-boot/issues/39665)
- Upgrade to Commons Codec 1.16.1
[#&#8203;39566](https://togithub.com/spring-projects/spring-boot/issues/39566)
- Upgrade to Dropwizard Metrics 4.2.25
[#&#8203;39567](https://togithub.com/spring-projects/spring-boot/issues/39567)
- Upgrade to Groovy 4.0.18
[#&#8203;39568](https://togithub.com/spring-projects/spring-boot/issues/39568)
- Upgrade to Hibernate 6.4.4.Final
[#&#8203;39569](https://togithub.com/spring-projects/spring-boot/issues/39569)
- Upgrade to Infinispan 14.0.24.Final
[#&#8203;39570](https://togithub.com/spring-projects/spring-boot/issues/39570)
- Upgrade to Jackson Bom 2.15.4
[#&#8203;39666](https://togithub.com/spring-projects/spring-boot/issues/39666)
- Upgrade to Janino 3.1.12
[#&#8203;39571](https://togithub.com/spring-projects/spring-boot/issues/39571)
- Upgrade to Jetty 12.0.6
[#&#8203;39573](https://togithub.com/spring-projects/spring-boot/issues/39573)
- Upgrade to Jetty Reactive HTTPClient 4.0.3
[#&#8203;39572](https://togithub.com/spring-projects/spring-boot/issues/39572)
- Upgrade to jOOQ 3.18.11
[#&#8203;39667](https://togithub.com/spring-projects/spring-boot/issues/39667)
- Upgrade to JsonPath 2.9.0
[#&#8203;39393](https://togithub.com/spring-projects/spring-boot/issues/39393)
- Upgrade to JUnit Jupiter 5.10.2
[#&#8203;39575](https://togithub.com/spring-projects/spring-boot/issues/39575)
- Upgrade to Kotlin Serialization 1.6.3
[#&#8203;39668](https://togithub.com/spring-projects/spring-boot/issues/39668)
- Upgrade to MariaDB 3.3.3
[#&#8203;39669](https://togithub.com/spring-projects/spring-boot/issues/39669)
- Upgrade to Maven Shade Plugin 3.5.2
[#&#8203;39670](https://togithub.com/spring-projects/spring-boot/issues/39670)
- Upgrade to Micrometer 1.12.3
[#&#8203;39474](https://togithub.com/spring-projects/spring-boot/issues/39474)
- Upgrade to Micrometer Tracing 1.2.3
[#&#8203;39475](https://togithub.com/spring-projects/spring-boot/issues/39475)
- Upgrade to Neo4j Java Driver 5.17.0
[#&#8203;39534](https://togithub.com/spring-projects/spring-boot/issues/39534)
- Upgrade to Netty 4.1.107.Final
[#&#8203;39576](https://togithub.com/spring-projects/spring-boot/issues/39576)
- Upgrade to Postgresql 42.6.1
[#&#8203;39671](https://togithub.com/spring-projects/spring-boot/issues/39671)
- Upgrade to Pulsar Reactive 0.5.3
[#&#8203;39672](https://togithub.com/spring-projects/spring-boot/issues/39672)
- Upgrade to Reactor Bom 2023.0.3
[#&#8203;39476](https://togithub.com/spring-projects/spring-boot/issues/39476)
- Upgrade to SLF4J 2.0.12
[#&#8203;39577](https://togithub.com/spring-projects/spring-boot/issues/39577)
- Upgrade to Spring AMQP 3.1.2
[#&#8203;39477](https://togithub.com/spring-projects/spring-boot/issues/39477)
- Upgrade to Spring Authorization Server 1.2.2
[#&#8203;39478](https://togithub.com/spring-projects/spring-boot/issues/39478)
- Upgrade to Spring Batch 5.1.1
[#&#8203;39479](https://togithub.com/spring-projects/spring-boot/issues/39479)
- Upgrade to Spring Data Bom 2023.1.3
[#&#8203;39480](https://togithub.com/spring-projects/spring-boot/issues/39480)
- Upgrade to Spring Framework 6.1.4
[#&#8203;39481](https://togithub.com/spring-projects/spring-boot/issues/39481)
- Upgrade to Spring GraphQL 1.2.5
[#&#8203;39482](https://togithub.com/spring-projects/spring-boot/issues/39482)
- Upgrade to Spring Integration 6.2.2
[#&#8203;39483](https://togithub.com/spring-projects/spring-boot/issues/39483)
- Upgrade to Spring Kafka 3.1.2
[#&#8203;39484](https://togithub.com/spring-projects/spring-boot/issues/39484)
- Upgrade to Spring LDAP 3.2.2
[#&#8203;39485](https://togithub.com/spring-projects/spring-boot/issues/39485)
- Upgrade to Spring Pulsar 1.0.3
[#&#8203;39486](https://togithub.com/spring-projects/spring-boot/issues/39486)
- Upgrade to Spring Security 6.2.2
[#&#8203;39487](https://togithub.com/spring-projects/spring-boot/issues/39487)
- Upgrade to Testcontainers 1.19.5
[#&#8203;39578](https://togithub.com/spring-projects/spring-boot/issues/39578)
- Upgrade to Tomcat 10.1.19
[#&#8203;39673](https://togithub.com/spring-projects/spring-boot/issues/39673)
- Upgrade to Undertow 2.3.12.Final
[#&#8203;39674](https://togithub.com/spring-projects/spring-boot/issues/39674)

##### ❤️ Contributors

Thank you to all the contributors who worked on this release:

[@&#8203;PiyalAhmed](https://togithub.com/PiyalAhmed),
[@&#8203;Tish17](https://togithub.com/Tish17),
[@&#8203;amritagg](https://togithub.com/amritagg),
[@&#8203;dependabot](https://togithub.com/dependabot)\[bot],
[@&#8203;eddumelendez](https://togithub.com/eddumelendez),
[@&#8203;erichaagdev](https://togithub.com/erichaagdev),
[@&#8203;gdmrw](https://togithub.com/gdmrw),
[@&#8203;jonas-grgt](https://togithub.com/jonas-grgt),
[@&#8203;kilink](https://togithub.com/kilink),
[@&#8203;lukasdo](https://togithub.com/lukasdo),
[@&#8203;okohub](https://togithub.com/okohub),
[@&#8203;onobc](https://togithub.com/onobc),
[@&#8203;ramilS](https://togithub.com/ramilS),
[@&#8203;slovi](https://togithub.com/slovi),
[@&#8203;smurf667](https://togithub.com/smurf667),
[@&#8203;snicoll](https://togithub.com/snicoll),
[@&#8203;totti-dev](https://togithub.com/totti-dev),
[@&#8203;vj-atlassian](https://togithub.com/vj-atlassian),
[@&#8203;vjh0107](https://togithub.com/vjh0107),
[@&#8203;wanger26](https://togithub.com/wanger26), and
[@&#8203;xpmxf4](https://togithub.com/xpmxf4)

</details>

<details>
<summary>qos-ch/slf4j (org.slf4j:slf4j-api)</summary>

###
[`v2.0.13`](https://togithub.com/qos-ch/slf4j/compare/v_2.0.12...v_2.0.13)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/apollographql/federation-jvm).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM2My41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement A general enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AutoCloseable and using shortcuts
5 participants