Rossen Stoyanchev
5328184f3a
ContentCachingResponseWrapper skips contentLength for chunked responses
...
Closes gh-26182
2020-12-01 17:46:12 +00:00
Rossen Stoyanchev
0c825621b8
Avoid use of Optional wrapper to get List<MediaType>
...
See gh-26170
2020-11-30 17:30:45 +00:00
Сергей Цыпанов
42216b77df
Remove unused package-private class o.s.w.u.p.SubSequence
2020-11-26 15:31:21 +01:00
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
19911af30a
Polishing
2020-11-05 19:09:58 +01:00
Juergen Hoeller
f2f84bfa7a
Polishing
2020-11-05 00:04:33 +01: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
Sam Brannen
705cf09ad7
Merge branch '5.2.x'
2020-10-26 15:05:35 +01:00
Sam Brannen
449377908f
Fix JUnit 4 to AssertJ migration bugs
...
The migration from JUnit 4 assertions to AssertJ assertions resulted in
several unnecessary casts from int to long that actually cause
assertions to pass when they should otherwise fail.
This commit fixes all such bugs for the pattern `.isNotEqualTo((long)`.
2020-10-26 14:53:09 +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
Juergen Hoeller
621295dbd8
Deprecate StringUtils.isEmpty(Object) and replace remaining usage
...
Closes gh-25945
2020-10-21 16:09:26 +02: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
cd835b3124
Merge branch '5.2.x'
...
# Conflicts:
# spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilderTests.java
# spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBeanTests.java
2020-10-13 11:35:36 +02:00
Juergen Hoeller
7b6293fa05
Avoid outdated Jackson API in tests
...
See gh-25907
2020-10-13 11:13:54 +02: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
Rossen Stoyanchev
5b1b20c8c0
Polishing and minor refactoring
...
See gh-25884
2020-10-12 11:55:20 +01:00
Rossen Stoyanchev
e73e489fd8
Remove use of MonoProcessor.fromSinks
...
See gh-25884
2020-10-09 20:46:21 +01: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
Rossen Stoyanchev
fee8abfa5f
Drop "[]" from parameter names in data binding
...
Closes gh-25836
2020-10-07 16:44:58 +01:00
Rossen Stoyanchev
1c1bc41e24
Merge branch '5.2.x' into master
2020-10-07 12:45:51 +01:00
Rossen Stoyanchev
eb11c6fa23
Reinstate removal of jsessionid from lookup path
...
Closes gh-25864
2020-10-07 11:31:52 +01:00
Sébastien Deleuze
9990bd2ea8
Fix checkstyle errors
...
See gh-25771
2020-10-06 23:13:38 +02:00
Sébastien Deleuze
92b2c45281
Add kotlinx.serialization JSON support to Spring WebFlux
...
Flow decoding is not supported yet since it depends on
kotlin/kotlinx.serialization#1073 , but it will be
enabled when this issue will be fixed.
Closes gh-25771
2020-10-06 23:02:33 +02:00
Rossen Stoyanchev
1cd8871d7f
FormHttpMessageConverter preserves MediaType parameters
...
Closes gh-25839
2020-10-06 18:28:39 +01:00
Rossen Stoyanchev
1c5b95db0b
Revert workaround in Jetty connector
...
The workaround was removed in the 5.3 milestone phase and in master
only because the referenced Jetty issue is marked fixed. However,
what we need to replace it with should be a little more involved
and also it's not entirely clear if the fixes in Jetty aligns with
our release and retain semantics so that needs to be investigated
more thoroughly.
2020-10-06 18:18:26 +01:00
Сергей Цыпанов
8a04910bdd
Drop explicit zeroing at instantiation of Atomic* objects
2020-10-06 15:45:12 +02:00
Juergen Hoeller
b7e1553c9d
Merge branch '5.2.x'
...
# Conflicts:
# build.gradle
# spring-orm/src/main/java/org/springframework/orm/hibernate5/LocalSessionFactoryBuilder.java
2020-10-06 15:37:54 +02:00
Juergen Hoeller
f83bb7183e
Polishing
2020-10-06 15:31:34 +02:00
Rossen Stoyanchev
d3087537d5
Merge branch '5.2.x' into master
2020-10-02 14:39:27 +01:00
Rossen Stoyanchev
2533ba5253
Use Mono.fromDirect for Jetty ReactiveRespnose
...
Closes gh-25849
2020-10-02 13:43:42 +01:00
Rossen Stoyanchev
e44b08f1fc
Minor refactoring in JettyClientHttpConnector
...
See gh-25849
2020-10-02 13:32:00 +01:00
Sam Brannen
ba94a1216c
Deprecate HttpStatus.Series.valueOf(HttpStatus) and polish
...
See gh-22366
2020-09-26 16:06:31 +02:00
Nico Heller
97cc89630d
Remove inefficiency in HttpStatus.series()
...
Prior to this commit, the Series value for an HttpStatus was always
evaluated which resulted in an allocation of a Series array by invoking
Series.values() which makes a defensive copy.
This commit addresses this issue by hardcoding the corresponding Series
within the HttpStatus constructor, thereby avoiding any unnecessary
computations. In addition, a unit test has been added to verify that
all HttpStatus enum constants have a properly configured Series.
Closes gh-22366
2020-09-26 15:04:15 +02:00
Sam Brannen
b34778d220
Polishing
2020-09-26 15:02:15 +02:00
Rossen Stoyanchev
852e904b08
Exposes getter for part converters in FormHttpMessageConverter
...
Closes gh-25817
2020-09-25 21:31:44 +01:00
Juergen Hoeller
7116e5f755
Polishing
2020-09-25 20:40:54 +02:00
Sébastien Deleuze
2dbceb9053
Deprecate LiveBeansView
...
This commit deprecates LiveBeansView and related classes in order to allow
a future removal in order to increase the separation of concerns between
Spring Framework and Spring Boot, and the consistency between JVM
and native.
Closes gh-25820
2020-09-25 20:04:34 +02:00
Brian Clozel
61d893257e
Rewrite "performance" test to JMH benchmarks
...
This commit rewrites the remaining "fastEnough" performance tests into
proper JMH benchmarks.
See gh-24830
2020-09-25 13:43:38 +02:00
Juergen Hoeller
6c631e3d5c
Merge branch '5.2.x'
...
# Conflicts:
# spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java
2020-09-25 11:36:18 +02:00
Juergen Hoeller
6e4fcb69f0
Polishing
2020-09-25 11:26:01 +02:00
Rossen Stoyanchev
1061bcdba2
Set sameSite in ClientHttpResponse implementations
...
Closes gh-25785
2020-09-22 07:36:29 +01:00
Juergen Hoeller
bbe74635eb
Merge branch '5.2.x'
2020-09-18 18:16:33 +02:00
Juergen Hoeller
c1617d3c52
Polishing
2020-09-18 18:15:36 +02:00
Juergen Hoeller
d5fed34642
Merge branch '5.2.x'
2020-09-15 10:09:18 +02:00
Juergen Hoeller
f010368a66
Polishing
2020-09-15 10:08:01 +02:00
Juergen Hoeller
f4bdc0284e
Polishing
2020-09-15 09:56:53 +02:00
Juergen Hoeller
801c8ed8ac
Revise type resolution for alignment with AbstractJsonHttpMessageConverter
...
See gh-21188
2020-09-15 09:41:14 +02:00
Andreas Ahlenstorf
cd6085a310
Add kotlinx.serialization JSON support to Spring MVC
...
Closes gh-21188
Co-authored-by: Sebastien Deleuze <sdeleuze@vmware.com>
2020-09-14 23:25:16 +02:00
Juergen Hoeller
b8c12a3aa1
Upgrade to Undertow 2.2 (and R2DBC Arabba-SR7)
2020-09-14 22:59:46 +02:00
Juergen Hoeller
07b3e92bae
Merge branch '5.2.x'
...
# Conflicts:
# build.gradle
# src/docs/asciidoc/core/core-aop-api.adoc
2020-09-14 22:22:02 +02:00
Juergen Hoeller
3c84863271
Polishing
2020-09-14 22:18:30 +02:00
Juergen Hoeller
c2f6a98c90
Lenient handling of empty Content-Disposition filename
...
Closes gh-25769
2020-09-14 22:16:12 +02:00
Rossen Stoyanchev
b50ad1b9aa
AbstractServerHttpResponse skips commit actions on 2nd pass
...
Closes gh-25753
2020-09-13 21:21:07 +01:00
Brian Clozel
b2a0978c12
Prepare for Sinks API updates in Reactor
...
See reactor/reactor-core#2374
All usages of this API are in tests, which are not checking overflow or
concurrent emissions - so a simple replacement with `try***` equivalents
is fine.
2020-09-11 16:34:31 +02:00
Arjen Poutsma
3bd96a665f
Merge branch '5.2.x' into master
2020-09-10 11:34:44 +02:00
Arjen Poutsma
07d2c08f48
Do not tokenize Forward header value
...
This commit remove the tokenization previously used in
UriComponentsBuilder#adaptFromForwardedHeaders, in order to support
Forwarded headers that have multiple, comma-separated 'for' elements.
Closes gh-25737
2020-09-09 16:31:24 +02:00