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
Rossen Stoyanchev
d8dafbc49d
Add DEBUG log message in MetadataExtractor
...
Closes gh-26130
2020-11-23 17:22:09 +00:00
Juergen Hoeller
b25637e8ad
Make setTaskScheduler and setTcpClient chaining-friendly
...
Closes gh-26049
2020-11-09 13:32:34 +01:00
Juergen Hoeller
0aa3205e38
Fix nullability warnings
2020-10-26 22:19:26 +01:00
Sébastien Deleuze
3f01af6f7c
Add kotlinx.serialization JSON support to Spring Messaging
...
Closes gh-25883
2020-10-26 20:10:54 +01:00
Sébastien Deleuze
efe933ad83
Polish Coroutines detection
2020-10-25 18:33:57 +01:00
Rossen Stoyanchev
51fb49be34
Correct outdated error message
2020-10-23 17:05:00 +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
bfb2ce6e2a
SimpUser exposes Principal
...
Closes gh-25191
2020-10-19 21:40:09 +01:00
Rossen Stoyanchev
76eb5e6e2c
Use of TcpClient extensible per connection
...
Closes gh-25889
2020-10-19 21:40:09 +01:00
Rossen Stoyanchev
6f131ba1c4
Polishing
2020-10-19 13:10:56 +01:00
Rossen Stoyanchev
d18fbab7a8
Heartbeat in lieu of non-broker destination message
...
Closes gh-22822
2020-10-19 13:06:30 +01:00
Sébastien Deleuze
3ed8813bbf
Upgrade to Coroutines 1.4.0-M1 and use awaitSingle()
...
This commit raises the minimum Coroutines version supported
to 1.4.0-M1 and above, and changes usages of awaitFirst() or
awaitFirstOrNull() to awaitSingle() or awaitSingleOrNull()
to fix gh-25007.
Closes gh-25914
Closes gh-25007
2020-10-13 15:26:39 +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
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
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
50b9542402
Apply handleMissingValue in case of null conversion result as well
...
Closes gh-23939
2020-10-12 18:07:17 +02:00
Rossen Stoyanchev
809851c0fe
Replace MonoProcessor with AtomicRef for RSocket RESPONSE_HEADER
...
See gh-25884
2020-10-12 11:55:20 +01: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
cdd48ddd7f
Improve Coroutines support consistency
2020-10-09 12:51:08 +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
Сергей Цыпанов
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
dfb7ca733a
Merge branch '5.2.x' into master
2020-09-30 22:10:42 +01:00
Rossen Stoyanchev
86f2ebec1b
Fix recursion issue caused by previous commit
...
See gh-25821
2020-09-30 22:03:46 +01:00
Rossen Stoyanchev
7ad60d385b
Fix issue with copying headers in NativeMessageHeaderAccessor
...
Closes gh-25821
2020-09-30 21:42:26 +01:00
Rossen Stoyanchev
4b9c3fa739
Polishing Javadoc
...
See gh-25821
2020-09-30 21:42:26 +01: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
Juergen Hoeller
214bc407b4
Provide Gson/JSON-B MessageConverter for spring-messaging (aligned with spring-web)
...
Closes gh-21496
2020-09-25 10:48:25 +02:00
Juergen Hoeller
bbe74635eb
Merge branch '5.2.x'
2020-09-18 18:16:33 +02:00
Juergen Hoeller
9dfef59af2
Construct StringWriter instances with appropriate initial size
...
Closes gh-25789
2020-09-18 18:14:57 +02:00
Rossen Stoyanchev
29885e2b9f
Upgrade to RSocket 1.1-M2 and Reactor 2020.0.0-RC1
...
Closes gh-25729
Closes gh-25728
2020-09-14 20:12:04 +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
Brian Clozel
b61d0584a9
Update after RSocket SNAPSHOT changes
2020-09-11 13:45:22 +02:00
Rossen Stoyanchev
30d556b9ef
Support for LoadbalanceRSocketClient
...
Closes gh-25333
2020-09-07 16:31:12 +01:00
Rossen Stoyanchev
71ecca7443
DefaultRSocketRequesterBuilder internal refactoring
2020-09-07 13:48:27 +01:00
Rossen Stoyanchev
8c2852607d
Switch to Reactor and RSocket snapshots
2020-09-07 13:30:28 +01:00
Rossen Stoyanchev
bb941b6180
OrderedMessageChannelDecorator doesn't preclude send limits
...
Closes gh-25581
2020-08-28 20:40:55 +01:00
Rossen Stoyanchev
f4f1abb27a
Revert "OrderedMessageSender throughput improvement"
...
This reverts commit f5c287a6e6 .
See gh-25581
2020-08-28 09:43:51 +01:00
Rossen Stoyanchev
f98719902b
Revert "Polishing OrderedMessageSender"
...
This reverts commit d014d88937 .
See gh-25581
2020-08-28 09:43:01 +01:00
Juergen Hoeller
cf2e0c7959
Selected use of ArrayList instead of LinkedList in common places
...
See gh-25652
2020-08-27 14:14:44 +02:00