rstoyanchev
63ccc9d9cc
Restructure web binding documentation and refine guidance
...
Closes gh-36803
2026-05-14 16:36:27 +01:00
rstoyanchev
d72da90d3a
Avoid race in InMemoryWebSession
...
Closes gh-36742
2026-05-01 21:47:37 +01:00
rstoyanchev
bff9899905
Switch to JdkIdGenerator in AbstractWebSocketSession
...
Closes gh-36740
2026-05-01 21:47:26 +01:00
rstoyanchev
b3ef834ae6
Reliably detect broadcast messages
...
Closes gh-36662
2026-04-29 12:11:16 +01:00
rstoyanchev
a9d344b3ed
TransportHandlingSockJsService checks remoteAddress
...
Closes gh-36681
2026-04-29 12:11:16 +01:00
rstoyanchev
7052da4532
Add doOnDiscard in MultipartHttpMessageReader
...
Closes gh-36563
2026-04-16 21:15:09 +01:00
rstoyanchev
d4d49fd546
Make base classes for client requests public
...
AbstractBufferingClientHttpRequest and AbstractStreamingClientHttpRequest
Closes gh-36501
2026-03-31 14:11:17 +01:00
rstoyanchev
2dcd56bbaf
Polishing contribution
...
Closes gh-36514
2026-03-31 11:00:22 +01:00
rstoyanchev
ebe3b45743
Consistently log request details in ExchangeFunctions
...
Closes gh-36502
2026-03-31 11:00:22 +01:00
rstoyanchev
8817536e5a
Lower log level of cache miss in HandlerMappingIntrospector
...
See gh-36309
2026-03-19 09:10:43 +00:00
rstoyanchev
cdbaee11c1
Add PreFlightRequestFilter
...
Closes gh-36482
2026-03-19 09:10:04 +00:00
rstoyanchev
5168e3a38b
Polishing contribution
...
Closes gh-36400
2026-03-10 19:14:41 +00:00
rstoyanchev
77bc13dc8c
Polishing contribution
...
See gh-36325
2026-03-09 17:52:12 +00:00
rstoyanchev
ab9895b5a9
Polishing contribution
...
Closes gh-36325
2026-03-09 17:49:25 +00:00
rstoyanchev
cd0c26b6db
Update Javadoc on binding flag in ModelAttribute
...
Add clarification and mention primary use case.
2026-03-09 14:25:47 +00:00
rstoyanchev
06d4a8fc4b
Fix case sensitivity issue in ServletRequestHeadersAdapter
...
The RequestHeaderOverrideWrapper did not deduplicate in keySet()
across underlying headers and overrides.
A similar change in size() even if it was working correctly,
to align with keySet and make it more efficient.
Closes gh-36418
2026-03-06 16:51:27 +00:00
rstoyanchev
ccc6789cb5
Update docs for path API version resolver
...
See gh-36398
2026-03-05 17:21:43 +00:00
rstoyanchev
f73302a66e
Polishing contribution
...
Closes gh-36398
2026-03-05 17:12:13 +00:00
rstoyanchev
25bb264bd9
Polishing in ReactorNettyWebSocketClient
...
Also, remove local variables that should have been removed when
the corresponding, deprecated setters were removed in
2ed281f6a8 .
Closes gh-36370
2026-03-05 17:12:13 +00:00
rstoyanchev
ce2402a581
Link to Tomcat issue in ServletResponseHeadersAdapter
2026-03-05 17:12:13 +00:00
rstoyanchev
b83cb4a947
Make newRequest methods public
...
The methods to build a request in RestClientAdapter and WebClientAdapter
are now public to make it easier to create a custom adapter that wraps
the built-in ones and delegates for methods that can be the same.
Closes gh-36374
2026-02-25 12:43:19 +00:00
rstoyanchev
7e79d0e206
Polishing in DefaultRestClientTests
2026-02-25 12:43:19 +00:00
rstoyanchev
e58ba2c665
Simplify use of InputStream with RestClient
...
Closes gh-36380
2026-02-25 12:43:19 +00:00
rstoyanchev
b9a59853fa
Use case-insensitive comparator in HttpHeadersAssert
...
Closes gh-36349
2026-02-20 13:38:51 +00:00
rstoyanchev
d4b2a493f9
Fix duplicate header writing in ResponseBodyEmitterReturnValueHandler
...
Closes gh-36357
2026-02-20 10:45:22 +00:00
rstoyanchev
188cb9b24d
Update Javadoc of RestClient.Builder defaultStatusHandler
...
See gh-36248
2026-02-19 11:42:59 +00:00
rstoyanchev
e3568a3f0a
Fix generic return type support in HttpServiceMethod
...
Closes gh-36326
2026-02-18 17:27:02 +00:00
rstoyanchev
e106fc0434
Polishing in RestClientAdapterTests and WebClientAdapterTests
2026-02-18 17:27:02 +00:00
rstoyanchev
85c18caf25
Update docs on supported versions with baseline notation
...
Closes gh-36316
2026-02-18 11:33:08 +00:00
rstoyanchev
e5aac66157
ServletResponseHeadersAdapter checks contentType property
...
Issue gh-36334
2026-02-17 11:55:34 +00:00
rstoyanchev
d712ec3d49
Minor optimization in Tomcat header adapters
...
get method skips containsKey and instead checks if the enumeration
has elements, which should give the same behavior other than for
headers without values.
See gh-36334
2026-02-16 17:38:01 +00:00
rstoyanchev
5baa4fdd69
Further optimize Servlet header adapters
...
- Optimize get method for request headers
- Update keySet methods to use custom extension of AbstractSet
- Drop use of native Tomcat headers, which could be an issue for
request and response wrappers that override header methods.
The performance of Servlet adapters should be similar for the
commonly used methods, and it should be possible to optimize
further for the future in HttpHeaders (e.g. by adding a
set alternative to put), and requesting Servlet API refinements.
Closes gh-36334
2026-02-16 17:37:51 +00:00
rstoyanchev
9273a11a2c
Stub Servlet headers adapter methods not needed in HttpHeaders
...
See gh-36334
2026-02-16 17:37:27 +00:00
rstoyanchev
7ea11baff9
Pass-through handling of Servlet headers
...
See gh-36334
2026-02-16 17:37:09 +00:00
rstoyanchev
47a2e7059e
Optimal charset handling in AbstractHttpMessageConverter
...
Closes gh-36320
2026-02-13 12:39:03 +00:00
rstoyanchev
8fb119df1e
Determine validation groups in HandlerMethod
...
Closes gh-36274
2026-02-11 09:00:52 +00:00
rstoyanchev
1bb0fdda6b
Move validation group determination to ValidationAnnotationUtils
...
See gh-36274
2026-02-10 16:56:33 +00:00
rstoyanchev
6507367d10
Polishing contribution
...
Closes gh-36179
2026-02-10 15:28:54 +00:00
rstoyanchev
b227701473
Optimize RequestMappingInfo hashcode calculation
...
Precalculated hashcode makes sense for infos in the registry, but
matched infos created on the fly don't need it.
Closes gh-36279
2026-02-10 10:14:54 +00:00
rstoyanchev
e22b1648bf
Cache HandlerMethod with resolved bean if singleton
...
See gh-36278
2026-02-09 17:16:05 +00:00
rstoyanchev
78967d4bd6
Optimize version match
...
Closes gh-36276
2026-02-09 16:36:26 +00:00
rstoyanchev
1d2351c87b
Optimize single PathPattern match
...
Closes gh-36275
2026-02-09 16:33:22 +00:00
rstoyanchev
02dc4b6342
Avoid determineValidationGroups not necessary
...
There is no need to call determineValidationGroups if the method
itself doesn't require method validation.
See gh-36274
2026-02-09 15:52:58 +00:00
rstoyanchev
cb4b87cce2
Use headerFilter on SimpAnnotationMethodMessageHandler
...
See gh-36179
2026-02-06 17:13:11 +00:00
rstoyanchev
1d470fc375
Exposes headerFilter on SimpAnnotationMethodMessageHandler
...
Closes gh-36179
2026-02-06 17:08:50 +00:00
rstoyanchev
7fc619acdc
Polishing contribution
...
See gh-36179
2026-02-06 17:08:50 +00:00
rstoyanchev
db9045ae28
Polishing in CharBufferDecoder
2026-02-04 11:37:52 +00:00
rstoyanchev
7c2159fbe9
Polishing contribution
...
Closes gh-36225
2026-02-04 11:36:45 +00:00
rstoyanchev
79386b0e83
Fix unfinished edit from previous commit
...
See gh-36198
2026-01-28 12:27:09 +00:00
rstoyanchev
d1bfe03358
Update docs on trailing slash handling
...
Closes gh-36198
2026-01-28 12:21:33 +00:00
rstoyanchev
4bc9f68451
Update docs content types for ProblemDetail
...
Closes gh-36192
2026-01-28 12:21:33 +00:00
rstoyanchev
77c24b28b6
Polishing in ReactorClientHttpConnector
2026-01-26 10:51:00 +00:00
rstoyanchev
345fa51e77
Handle early exception from AsynchronousFileChannel#write
...
Closes gh-36184
2026-01-21 15:43:03 +01:00
rstoyanchev
4119ecc25b
Refine solution to clear Netty channel attribute
...
Closes gh-36158
2026-01-20 11:34:18 +00:00
rstoyanchev
9b95482557
ContentRequestMatchers supports HttpEntity multipart
...
Closes gh-36154
2026-01-19 17:05:16 +00:00
rstoyanchev
fe2113f5a3
Clear Netty channel attribute
...
Closes gh-36158
2026-01-16 17:21:27 +00:00
rstoyanchev
9f19b4074d
Exclude DataAccessException and MessagingException in DisconnectedClientHelper
...
Closes gh-36134
2026-01-14 11:44:43 +00:00
rstoyanchev
cbc2c63abc
Polishing contribution
...
Closes gh-36125
2026-01-12 12:48:49 +00:00
rstoyanchev
615c25d4fa
Polishing contribution
...
Closes gh-36126
2026-01-12 09:51:17 +00:00
rstoyanchev
23a532ed82
Polishing contribution
...
Closes gh-36097
2026-01-09 15:06:07 +00:00
rstoyanchev
b69cbad38d
Fall back on the value type in BodyInserters if necessary
...
Closes gh-36078
2026-01-09 11:52:18 +00:00
rstoyanchev
39106b5811
Restore ApiVersionResolver contract
...
Instead of making it async and having a sync subinterface variant,
this restores ApiVersionResolver to be as it was with an async
subinterface variant.
ApiVersionStrategy, and the infrastructure invoking it, remains
async first, but also accommodates sync resolvers.
This should provide a better balance with backwards compatibility
while also accommodating async version resolution as the less
common scenario.
See gh-36084
2026-01-09 10:25:44 +00:00
rstoyanchev
2f91baa71c
Polishing in ApiVersionResolver
2026-01-09 09:38:53 +00:00
rstoyanchev
d8e303f95b
Merge branch for PR 36084
...
Resolve conflicts and refactor merged code in AbstractHandlerMapping
See gh-36084
2026-01-08 17:43:35 +00:00
rstoyanchev
8ff89ffda2
Update contribution
...
- deprecate sync method on ApiVersionResolver
- add SyncApiVersionResolver
- refactor resolverParseAndValidateApiVersion method
See gh-36084
2026-01-08 17:41:27 +00:00
rstoyanchev
dcf5d69d94
Rename async methods
...
See gh-36084
2026-01-08 17:41:19 +00:00
rstoyanchev
7d33a87278
Polishing contribution
...
See gh-36084
2026-01-08 17:41:11 +00:00
rstoyanchev
e0aa116217
Re-initialize API version in each HandlerMapping
...
Each HandlerMapping may have its own ApiVersionStrategy rules, or may not
have one at all. This change ensures independent decisions.
See gh-36059
2026-01-08 09:32:34 +00:00
rstoyanchev
05b98b0a32
Suppress API version errors on ERROR dispatch
...
While an API version may be important for mapping in an ERROR dispatch,
it is more important to allow the original exception to be handled.
Closes gh-36058
2026-01-07 16:00:40 +00:00
rstoyanchev
46efd930f0
Update docs
...
On the order of a ControllerAdvice that overrides the handling of
built-in exceptions in a scenario with Boot autoconfig.
Closes gh-35982
2026-01-07 16:00:39 +00:00
rstoyanchev
a9027ddf76
Refine handling of API version errors
...
Among HandlerMapping's some may not expect an API version. This is why
those that do must be careful not to raise API validation errors if
they don't match the request.
Closes gh-36059
2026-01-07 16:00:39 +00:00
rstoyanchev
5551292639
Polishing contribution
...
Closes gh-35989
2026-01-07 16:00:39 +00:00
rstoyanchev
0eefac21c9
Polishing contribution
...
Closes gh-35758
2025-12-10 18:17:12 +00:00
rstoyanchev
cee185ce3b
Append query on redirect in UrlHandlerFilter
...
Closes gh-35873
2025-12-05 12:35:32 +00:00
rstoyanchev
e45727d4fa
Polishing in InMemoryWebSessionStore
...
Closes gh-35866
2025-12-05 12:29:11 +00:00
rstoyanchev
8edde374bb
Lower bad requests to DEBUG level in AbstractHandshakeHandler
...
Closes gh-35930
2025-12-04 09:07:55 +00:00
rstoyanchev
35b58cd0ee
Avoid http - web.utils package cycle
...
Closes gh-35952
2025-12-04 09:07:55 +00:00
rstoyanchev
15c16d2c3a
FragmentsRendering exposes its fragments
...
Closes gh-35775
2025-12-01 11:17:40 +00:00
rstoyanchev
4ae03ecd40
Use channelId for ReactorNettyWebSocketSession's id
...
Closes gh-35883
2025-12-01 11:01:04 +00:00
rstoyanchev
a9a404266c
Data binding from pathvars and headers in fn handlers
...
Closes gh-35800
2025-11-26 12:30:48 +00:00
rstoyanchev
b29f4ed37e
Minor refactoring in DefaultServerRequest
...
Ensure bind logic is shared across DefaultServerRequest and
BuiltServerRequest.
See gh-35800
2025-11-26 12:30:48 +00:00
rstoyanchev
4847ee80b0
Add required type to TypeMismatchException message args
...
Closes gh-35837
2025-11-26 12:30:48 +00:00
rstoyanchev
f80b79bc45
Configure JsonPath in RestTestClient with MappingProvider
...
Closes gh-35793
2025-11-18 15:46:57 +00:00
rstoyanchev
adffd3dcf6
Fix JsonConverterDelegate initialization in RestTestClient
...
If the RestClient was built with default message converters, then
in mutate, the saved builder also has 0 converters, and adding a
interferes with default registrations.
We need to check if there are no converters at all, and if so
use the default registrations.
See gh-35793
2025-11-18 15:46:57 +00:00
rstoyanchev
284a28659d
Add isEmpty() to HttpMessageConverters
...
See gh-35793
2025-11-18 15:46:57 +00:00
rstoyanchev
b648e226cd
Update deprecation notices in WebTestClient
2025-11-12 10:54:46 +00:00
rstoyanchev
fb8bbe838d
Polishing in RouterFunctions
...
See gh-35791
2025-11-12 10:52:04 +00:00
rstoyanchev
dff0858340
Update generics on WebMvc RouterFunctions.Builder
...
Same as 7555d0e489 , but for WebMvc.
Closes gh-35791
2025-11-12 08:07:36 +00:00
rstoyanchev
721c40b5c5
Add defaultVersion to set of supported versions
...
Closes gh-35755
2025-11-11 12:28:28 +00:00
rstoyanchev
7555d0e489
Update generics on WebFlux RouterFunctions.Builder
...
Consistently allow subtypes of ServerResponse to be returned for any
provided HandlerFunction and HandlerFilterFunction. Both allow use of
subtypes such as EntityServerResponse and RenderingResponse, and
in the end we support any ServerResponse.
Closes gh-35791
2025-11-11 12:28:28 +00:00
rstoyanchev
9daf99af3f
Merge branch '6.2.x'
2025-11-10 14:43:58 +00:00
rstoyanchev
e735c2d9c5
Improve Filter overview in reference docs
...
Closes gh-30454
2025-11-10 14:43:34 +00:00
rstoyanchev
3cb498fa98
Improve docs on streaming via StreamingHttpOutputMessage
...
Closes gh-35700
2025-11-10 14:43:34 +00:00
rstoyanchev
115dee9be1
Fix failing test
...
See gh-35707
2025-11-06 13:18:41 +00:00
rstoyanchev
09105eb7b2
Option to supply client builder in HttpServiceGroupConfigurer
...
Closes gh-35707
2025-11-06 11:58:37 +00:00
rstoyanchev
6dd40a0252
Refactoring in HttpServiceProxyRegistryFactoryBean
...
See gh-35707
2025-11-06 11:58:37 +00:00
rstoyanchev
798931eea8
Merge branch '6.2.x'
2025-11-05 12:24:15 +00:00
rstoyanchev
b128f59714
Expose handler to ApiVersionDeprecationHandler implementations
...
Closes gh-35750
2025-11-05 12:23:59 +00:00
rstoyanchev
cd67010518
Update Principal check in TransportHandlingSockJsService
...
Closes gh-35753
2025-11-05 12:23:59 +00:00
rstoyanchev
a698b1bc0d
Refine validation section for controllers
...
Closes gh-35759
2025-11-05 12:23:43 +00:00