Sébastien Deleuze
43faa439ab
Refine kotlinx.serialization support
...
This commit introduces the following changes:
- Converters/codecs are now used based on generic type info.
- On WebMvc and WebFlux, kotlinx.serialization is enabled along
to Jackson because it only serializes Kotlin @Serializable classes
which is not enough for error or actuator endpoints in Boot as
described on spring-projects/spring-boot#24238 .
TODO: leverage Kotlin/kotlinx.serialization#1164 when fixed.
Closes gh-26147
2020-11-26 12:36:35 +01:00
Juergen Hoeller
73e1f24ac1
Restore HttpHeaders-based constructor for binary compatibility
...
Closes gh-26151
2020-11-25 11:36:12 +01:00
Rossen Stoyanchev
80701082cd
Set favorPathExtension to false by default
...
Applies a change that was intended in #23915 but wasn't.
Closes gh-26119
2020-11-24 17:31:28 +00:00
Arjen Poutsma
3612990344
Polishing
2020-11-24 14:41:39 +01:00
Arjen Poutsma
dea2029e94
Only write non-default charset in MultipartWriterSupport
...
This commit only writes the 'charset' parameter in the written headers
if it is non-default (not UTF-8), since RFC7578 states that the only
allowed parameter is 'boundary'.
Closes gh-25885
2020-11-24 14:41:39 +01:00
Juergen Hoeller
4fb5d59c64
Declare resolvedCharset as transient (restoring serializability)
...
Closes gh-26127
2020-11-20 18:40:10 +01:00
Rossen Stoyanchev
8c3a05bbcf
Allow "*" for Access-Control-Expose-Headers
...
Closes gh-26113
2020-11-19 09:20:55 +00:00
Juergen Hoeller
4cc831238c
Revise Servlet 4 HttpServletMapping check
...
Closes gh-26112
2020-11-18 15:30:20 +01:00
Marten Deinum
c9b27af64f
Reduce overhead of char[] creation
...
There are more locations which could benefit from not using a
toCharArray on a String, but rather use the charAt method from
the String itself. This to prevent an additional copy of the
char[] being created.
2020-11-17 11:57:09 +01:00
Juergen Hoeller
7206a23d33
Consistent attribute value spelling for PATH_ATTRIBUTE
...
See gh-24945
2020-11-16 17:40:39 +01:00
Rossen Stoyanchev
204a7fe91f
UrlPathHelper.removeJsessionid correctly appends remainder
...
Closes gh-26079
2020-11-12 21:28:18 +00:00
Rossen Stoyanchev
ba9325446c
Optimize WebClientUtils
...
Use constant Predicate for exception wrapping.
Use ResponseEntity constructor instead of builder.
See gh-26069
2020-11-12 18:43:36 +00:00
Juergen Hoeller
6825287360
Polishing
2020-11-09 18:18:33 +01:00
izeye
0c347769a2
Fix wrong reference in UrlPathHelper.removeSemicolonContentInternal()
...
This commit also changes to short-circuit when `slashIndex` is -1.
2020-11-09 13:08:44 +01:00
Rossen Stoyanchev
6e51370490
AbstractJackson2Encoder support for MappingJacksonValue
...
Closes gh-26035
2020-11-06 20:46:35 +00:00
Juergen Hoeller
990a9c74b9
Restore removal of trailing semicolon content
...
See gh-26012
2020-11-04 23:42:28 +01:00
Сергей Цыпанов
0015fd6734
Improve URI/query strings sanitization
2020-11-04 16:28:51 +01:00
Rossen Stoyanchev
0f6038af70
Log can[Se]Deserialize error in Jackson codecs
...
Closes gh-25892
2020-11-02 17:25:57 +00:00
Rossen Stoyanchev
7be7e5beb4
Ensure response not closed by MappingJackson2HttpMessageConverter
...
Closes gh-25987
2020-10-30 18:31:30 +00:00
Nick Hitchan
6e936a4081
Remove absolute URI check from ReactorClientHttpConnector
...
This allows maknig use of the Unix Domain Socket support in Reactor 1.0.
Closes gh-25929
2020-10-27 12:54:18 +00:00
Sébastien Deleuze
5b910a87c3
Polishing
2020-10-26 20:10:54 +01:00
Rossen Stoyanchev
a40cc8bbe0
Polishing contribution
...
Closes gh-25647
2020-10-23 18:27:49 +01:00
Riley Park
6e640c806f
Improve support for Content-Disposition types
...
See gh-25647
2020-10-23 18:16:05 +01:00
Rossen Stoyanchev
e66e34766e
Support Optional in UriComponentsBuilder#queryParam
...
Closes gh-25951
2020-10-23 18:09:22 +01:00
Rossen Stoyanchev
5644a7aebb
Polishing contribution
...
Closes gh-25951
2020-10-23 17:43:17 +01:00
Robin Roos
7af726480f
Add queryParamIfPresent to UriComponentsBuilder
...
See gh-25951
2020-10-23 17:07:39 +01:00
Brian Clozel
bd91dc70d5
Merge branch '5.2.x'
2020-10-20 15:41:02 +02:00
Brian Clozel
7bee3d1574
Optimize Jackson resource management in codecs
...
Prior to this commit, references to `JsonGenerator` and
`ByteArrayBuilder` were not closed/released within codecs calls.
This prevents Jackson from reusing more efficiently shared memory
resources.
This commit properly closes/releases Jackson resources in Spring MVC,
Spring WebFlux and Spring Messaging codecs.
A benchmark on WebFlux codecs (in both single value/streaming mode)
shows significant throughput and allocation improvements for small
payloads.
Closes gh-25910
2020-10-20 15:36:23 +02:00
Rossen Stoyanchev
4952336419
Polishing contribution
...
See gh-25856
2020-10-15 17:14:27 +01:00
Rostislav Svoboda
babcbd0d2b
Simplify code for SimpleClientHttpRequestFactory.prepareConnection
2020-10-15 17:14:27 +01:00
Rossen Stoyanchev
7e647ab1d8
HttpHeadResponseDecorator sets Content-Length for Mono only
...
See gh-25908
2020-10-13 23:45:51 +01:00
Rossen Stoyanchev
abd79d43af
Merge branch '5.2.x' into master
2020-10-13 23:42:43 +01:00
Rossen Stoyanchev
431ec906c4
Ensure buffers released in HttpHeadResponseDecorator
...
See gh-25908
2020-10-13 23:38:59 +01:00
Rossen Stoyanchev
1d96f6a266
HttpHeaderResponseDecorator checks for "Transfer-Encoding"
...
This commit extends the fix from b86c11cc9b
by checking for both existing Content-Length and Transfer-Encoding.
Closes gh-25908
2020-10-13 23:06:06 +01:00
Juergen Hoeller
a6e48811c0
Compatibility with Jackson 2.12 (tested against 2.12.0-rc1)
...
Closes gh-25907
2020-10-13 11:04:55 +02:00
Juergen Hoeller
379d9167d9
Merge branch '5.2.x'
...
# Conflicts:
# build.gradle
2020-10-13 01:41:48 +02:00
Juergen Hoeller
06b6a4be16
Polishing
2020-10-13 01:39:12 +02:00
Juergen Hoeller
e9cd37a4ee
Merge branch '5.2.x'
...
# Conflicts:
# spring-webflux/src/main/java/org/springframework/web/reactive/result/method/InvocableHandlerMethod.java
2020-10-13 00:25:04 +02:00
Juergen Hoeller
f3f19504c6
Polishing
2020-10-13 00:21:07 +02:00
Juergen Hoeller
7f365942a5
Nullability refinements and related polishing
2020-10-13 00:08:15 +02:00
Juergen Hoeller
1b63c31722
Avoid creation of unnecessary logger instances in web request abstraction
...
Closes gh-25900
2020-10-13 00:06:38 +02:00
Juergen Hoeller
a9d458f5fc
Merge branch '5.2.x'
2020-10-12 19:54:21 +02:00
Juergen Hoeller
e176c4e799
Polishing
2020-10-12 19:40:50 +02:00
Juergen Hoeller
ca2b412905
Merge branch '5.2.x'
2020-10-12 18:36:35 +02:00
Juergen Hoeller
66a67ec807
Polishing
2020-10-12 18:26:14 +02:00
Juergen Hoeller
69c330d905
Attempt fallback Part resolution even without StandardMultipartHttpServletRequest
...
Closes gh-25829
2020-10-12 18:25:55 +02:00
Juergen Hoeller
21f2863d8e
ControllerAdvice resolution detects @Order declared on @Bean method as well
...
Closes gh-25872
2020-10-12 18:07:17 +02:00
Juergen Hoeller
83bfee9201
Return null in case of no matching part even for array/collection parameter
...
Closes gh-25819
2020-10-12 18:07:17 +02:00
Juergen Hoeller
50b9542402
Apply handleMissingValue in case of null conversion result as well
...
Closes gh-23939
2020-10-12 18:07:17 +02:00
Sébastien Deleuze
94a42a3086
Support suspending handler methods in Spring MVC
...
This commit adds support for Kotlin Coroutines suspending functions to
Spring MVC, by converting those to a Mono that can then be handled by
the asynchronous request processing feature.
It also optimizes Coroutines detection with the introduction of an
optimized KotlinDetector.isSuspendingFunction() method that does not
require kotlin-reflect.
Closes gh-23611
2020-10-09 12:25:32 +02:00