Sébastien Deleuze
c79e4e230b
Reinstantiate checks for kotlin-reflect
...
This commit reinstantiates checks for kotlin-reflect (via static final
fields for faster Java code paths and better native code removal) which
were removed as part of gh-34275, which did not consider the
increasingly popular use cases where kotlin-stdlib is present in the
classpath as a transitive dependency in Java applications.
Closes gh-35511
2025-09-22 18:33:38 +02:00
Sébastien Deleuze
7635ac38f6
Use uppercase for classpath-related static final field names
...
Closes gh-35525
2025-09-22 18:32:14 +02:00
Sam Brannen
0c61ac956b
Add missing @Override annotations
...
... and suppress "serial" warnings
2025-09-22 13:20:37 +02:00
Juergen Hoeller
015edb33cd
Merge branch '6.2.x'
...
# Conflicts:
# framework-platform/framework-platform.gradle
2025-09-17 18:27:04 +02:00
Juergen Hoeller
bf715ac23e
Polishing
2025-09-17 18:10:19 +02:00
Brian Clozel
b213344d25
Fix synchronization in ResponseBodyEmitter
...
See gh-35423
Fixes gh-35466
(cherry picked from commit 20e1149dde
)
2025-09-17 18:07:45 +02:00
Sébastien Deleuze
da0a36bfd6
Upgrade to NullAway 0.12.10 and refine nullability
...
Closes gh-35492
2025-09-17 15:17:23 +02:00
rstoyanchev
c7121d048c
Replace X-API-Version with API-Version
...
Closes gh-35494
2025-09-17 11:48:49 +01:00
Brian Clozel
20e1149dde
Fix synchronization in ResponseBodyEmitter
...
See gh-35423
Fixes gh-35466
2025-09-12 09:12:33 +02:00
rstoyanchev
3702031f82
Improve docs on versioning by path segment
...
Closes gh-35421
2025-09-10 16:22:23 +01:00
Brian Clozel
39db0e0af2
Merge branch '6.2.x'
2025-09-09 16:56:29 +02:00
Taeik Lim
c788554b1d
Avoid thread pinning in SseEmitter, ResponseBodyEmitter
...
Closes gh-35423
Signed-off-by: Taeik Lim <sibera21@gmail.com>
2025-09-09 16:38:10 +02:00
Juergen Hoeller
27221581a1
Expose getFilePath() on Resource interface for consistent NIO support
...
Closes gh-35435
2025-09-08 17:03:07 +02:00
rstoyanchev
79151a0bc2
Spring MVC recognizes gRPC streams
...
For this to work, a compatible message converter is necessary,
but only available in spring-grpc.
See gh-35401
2025-09-02 20:38:59 +01:00
Sam Brannen
6dc5bf7634
Clean up warnings related to deprecated HttpStatus values, etc.
2025-09-02 12:50:57 +02:00
rstoyanchev
11cb062357
Assert versionRequired and defaultVersion
...
Closes gh-35387
2025-08-28 15:50:33 +03:00
Brian Clozel
7112efee1b
Align HttpStatus with RFC9110
...
This commit updates the `HttpStatus` enum with the latest changes in
RFC9110:
* deprecate "413 Payload Too Large" in favor of "413 Content Too Large"
* deprecate "418 I'm a teapot" as it was meant as a joke and is now
marked as unused
* Introduce new "421 Misdirected Request"
* deprecate "422 Unprocessable Entity" in favor of
"422 Unprocessable Content"
* deprecate "509 Bandwidth Limit Exceeded" as it's now unassigned
* deprecate "510 Not Extended" as it's now marked as "historic"
The relevant exceptions, test matchers and more have been updated as a
result.
Closes gh-32870
2025-08-25 14:30:57 +02:00
Sébastien Deleuze
dc26aaa0ec
Use JsonMapper instead of ObjectMapper when relevant
...
This commit updates Jackson 3 JSON support to use JsonMapper
instead of ObjectMapper in converters, codecs and view constructors.
As a consequence, AbstractJacksonDecoder, AbstractJacksonEncoder,
AbstractJacksonHttpMessageConverter and JacksonCodecSupport are
now parameterized with <T extends ObjectMapper>.
Closes gh-35282
2025-08-22 18:39:23 +02:00
Sébastien Deleuze
3dc2aa79a4
Fix HttpEntity support with Kotlin Serialization
...
This commit adds HttpEntity type unwrapping logic to
KotlinRequestBodyAdvice and KotlinResponseBodyAdvice.
Closes gh-35281
2025-08-18 12:01:48 +02:00
Sébastien Deleuze
1af95a0704
Upgrade to Jackson 3.0.0-rc8 and 2.20.0-rc1
...
Closes gh-35295
2025-08-13 23:03:40 +02:00
Sébastien Deleuze
0389e3e3af
Revert "Use JsonMapper instead of ObjectMapper when relevant"
...
This reverts commit d115f36400
.
See gh-35282
2025-08-12 15:21:20 +02:00
Sébastien Deleuze
d115f36400
Use JsonMapper instead of ObjectMapper when relevant
...
This commit updates Jackson 3 support to use JsonMapper instead
of ObjectMapper in converter, codec and view constructors.
Closes gh-35282
2025-08-12 10:36:37 +02:00
rstoyanchev
8f1ade55d9
Update contribution
...
Closes gh-35273
2025-08-11 16:32:23 +01:00
SRIRAM9487
4d6a921df5
Add HTTP method support to MappedInterceptor
...
This enhancement enables finer control over interceptor application
based on HTTP methods, aligning with modern Spring 7.x practices.
- Extend MappedInterceptor with include/exclude HTTP methods
- Add constructors for interceptor implementations
- Update InterceptorRegistration with fluent methods
- Keep existing constructors and methods for compatibility
- Update matches() to check HTTP method conditions
See gh-35273
Signed-off-by: SRIRAM9487 <sriram9487tk@gmail.com>
2025-08-11 16:32:23 +01:00
Sam Brannen
a65ebec3d8
Merge branch '6.2.x'
2025-08-11 11:29:03 +03:00
Sam Brannen
f11a1e6f82
Polish tests
2025-08-11 11:27:10 +03:00
rstoyanchev
89ba0fd6df
Polishing contribution
...
Closes gh-35294
2025-08-08 12:08:22 +01:00
rstoyanchev
2b1a815167
Add supportedVersionPredicate to ApiVersionConfigurer
...
Closes gh-35267
2025-08-01 12:35:18 +01:00
rstoyanchev
87838aa4c5
PathApiVersionResolver is not nullable
...
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
Closes gh-35265
2025-07-31 15:32:12 +01:00
rstoyanchev
08ccf46399
Rename request param version strategy to query param
...
Closes gh-35263
2025-07-31 15:32:12 +01:00
rstoyanchev
18ee8adaeb
Check resolver set when API version config customized
...
Closes gh-35256
2025-07-31 15:32:12 +01:00
rstoyanchev
2c32c770d5
Polishing in VersionRequestCondition
...
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
See gh-35237
2025-07-28 09:06:19 +01:00
rstoyanchev
2238121350
Prefer mapping without version for unversioned request
...
Closes gh-35237
2025-07-28 08:48:05 +01:00
rstoyanchev
48506db996
Avoid IllegalStateException for unversioned request
...
Closes gh-35236
2025-07-28 08:47:57 +01:00
Juergen Hoeller
eaccb56de9
Merge branch '6.2.x'
...
# Conflicts:
# spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java
2025-07-25 22:42:14 +02:00
Juergen Hoeller
4f6304707d
Polishing
Backport Bot / build (push) Has been cancelled
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
Deploy Docs / Dispatch docs deployment (push) Has been cancelled
Details
Build and Deploy Snapshot / Verify (push) Has been cancelled
Details
2025-07-25 22:40:15 +02:00
Brian Clozel
444573d4b5
Display original request URI in NoResourceFoundException message
...
This commit ensures that the original request URI is displayed in
`NoResourceFoundException` error messages when logged. Without this
change, it can be confusing to see only the attempted resource path.
There are cases where the original request was not meant for resource
handling and we want to understand why this wasn't processed by another
handler.
The Problem Detail attribute has not been changed as the "instance"
attribute already displays the request path.
Closes gh-34553
2025-07-25 15:04:59 +02:00
Sam Brannen
fbc5ff80f4
Implement AutoCloseable in GzippedFiles
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Has been cancelled
Details
Deploy Docs / Dispatch docs deployment (push) Has been cancelled
Details
Build and Deploy Snapshot / Verify (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:24], map[id:ubuntu-latest name:Linux]) (push) Has been cancelled
Details
Update Antora UI Spring / Update on Supported Branches (6.1.x) (push) Has been cancelled
Details
Update Antora UI Spring / Update on docs-build (push) Has been cancelled
Details
2025-07-18 15:45:59 +03:00
Brian Clozel
b59dca9c7f
Align HttpMessageConverters builder with WebFlux codecs variants
...
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
As of #33894 , we introduced a new `HttpMessageConverters` API.
While this achieved our goal of focusing converters classpath detection
in a single place and avoiding waste, a single `HttpMessageConverters`
instance for both client and server added more complexity for developers.
This commit aligns the API here with the WebFlux `CodecsConfigurer` to
opt for a client/server flavor as the first step in the builder.
While this make the sharing of converter instances between server and
client impossible, this allows for a simpler API and separates concerns.
Closes gh-35187
2025-07-11 17:07:28 +02:00
Juergen Hoeller
4ca8a8abbe
Merge branch '6.2.x'
...
# Conflicts:
# framework-docs/modules/ROOT/pages/core/null-safety.adoc
# framework-docs/modules/ROOT/pages/core/validation/error-code-resolution.adoc
# framework-docs/modules/ROOT/pages/integration/cds.adoc
# framework-docs/modules/ROOT/pages/integration/jms/sending.adoc
# framework-docs/modules/ROOT/pages/integration/rest-clients.adoc
# framework-docs/modules/ROOT/pages/languages/kotlin/bean-definition-dsl.adoc
# framework-docs/modules/ROOT/pages/languages/kotlin/null-safety.adoc
# framework-docs/modules/ROOT/pages/languages/kotlin/web.adoc
# framework-docs/modules/ROOT/pages/web/webflux/config.adoc
# framework-docs/modules/ROOT/pages/web/webflux/controller/ann-requestmapping.adoc
# framework-docs/modules/ROOT/pages/web/webmvc/mvc-http2.adoc
2025-07-10 19:42:14 +02:00
Juergen Hoeller
25b4e29f5e
Polishing
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
2025-07-10 19:33:51 +02:00
rstoyanchev
47d9182f56
Merge branch '6.2.x'
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
2025-07-09 12:51:37 +01:00
rstoyanchev
9670388e0c
Support conditional streaming with ResponseEntity<?>
...
Backport Bot / build (push) Waiting to run
Details
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run
Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:ubuntu-latest name:Linux]) (push) Waiting to run
Details
Deploy Docs / Dispatch docs deployment (push) Waiting to run
Details
Closes gh-35153
2025-07-09 12:44:12 +01:00
rstoyanchev
99e4815d9e
Merge branch '6.2.x'
2025-07-09 11:03:49 +01:00
rstoyanchev
6bd12e8680
Clear CONTENT_DISPOSITION before error handling
...
Closes gh-35116
2025-07-09 08:59:26 +01:00
Sam Brannen
b1222ccab7
Polish contribution
...
See gh-35086
2025-07-07 15:37:24 +02:00
Renato Mameli
b901afffd0
Fix consumes handling for interface @RequestBody
...
Previously, @RequestBody(required = false) annotations declared
on interface methods were ignored when resolving the consumes
condition. This caused mappings to incorrectly require a request
body with a Content-Type such as application/json, even when no
body was provided.
This change uses AnnotatedMethod to retrieve parameter annotations
from both the implementation and its interfaces, ensuring that the
required flag is respected and body presence is evaluated correctly.
Closes gh-35086
Signed-off-by: Renato Mameli <renatomamel410@gmail.com>
2025-07-07 15:34:40 +02:00
rstoyanchev
3ce7613195
Add version deprecation tests for router functions
...
Given the move of ApiVersionStrategy support to AbstractHandlerMapping,
deprecation should already work. We only need tests to show it.
See gh-35113
2025-07-01 11:37:34 +01:00
rstoyanchev
86f50b20f2
Move ApiVersionStrategy up to AbstractHandlerMapping
...
Similar to CorProcessor, ApiVersionStrategy is now supported at the
AbstractHandlerMapping level.
See gh-35113
2025-07-01 11:37:34 +01:00
NeatGuyCoding
eeedeb3b10
Remove the duplicated “rss” assertion
...
Closes gh-35139
Signed-off-by: NeatGuyCoding <15627489+NeatGuyCoding@users.noreply.github.com>
2025-07-01 10:21:48 +02:00