Commit Graph

9 Commits

Author SHA1 Message Date
Stéphane Nicoll 7db43ef820 Mark spring-web optional in spring-boot-rsocket
This commit moves the spring-web dependency from implementation to
optional. It also adds an api dependency to spring-web in the rsocket
starter.

The reasoning behind this change is that RSocket can be used without
spring-web, and we want to make sure that consumers of the dependency
can achieve that goal, as they were able to in previous versions.

However, we believe that most RSocket-based applications need spring-web
as, without it, only the simple and not efficient implementation of
RouterMatcher is available. With the addition of exception handling
using ControllerAdvice, this change makes also sure that it works out
of the box with the starter.

Closes gh-47409
2025-10-06 16:31:09 +02:00
Stéphane Nicoll 485180df4f Polish "Register controller advices to RSocket messaging"
See gh-45360
2025-10-06 11:29:16 +02:00
Dmitry Sulman 94fce6f689 Register controller advices to RSocket messaging
See gh-45360

Signed-off-by: Dmitry Sulman <dmitry.sulman@gmail.com>
2025-10-06 11:24:35 +02:00
Phillip Webb 239f384ac0 Update PropertyMapper to better support nullability
Refactor `PropertyMapper` so that it no longer calls adapter or
predicate methods by default when the source value is `null`. This
effectively makes all default calls the same as using
`alwaysWhenNotNull` in the previous generation of the code.

For the limited times when you do need to deal with `null` values, the
new `always()` method can be used.

For example,

	map.from(source::method).to(destination::method);

Will not call `destination.method(...)` if `source.method()` returns
`null`.

Where as:

	map.from(source::method).always().to(destination::method);

Will call  `destination.method(null)` if `source.method()` returns
`null`.

This update provides clearer semantics for the API and allows for better
JSpecify nullability annotations. It has also simplified much of our
existing property mapper code.

Closes gh-47024

Co-authored-by: Moritz Halbritter <moritz.halbritter@broadcom.com>
2025-09-05 14:43:33 -07:00
Andy Wilkinson d353038c58 Update Jackson support to require Jackson 3
Closes gh-45535
2025-09-02 11:37:09 +01:00
Moritz Halbritter 72e6ddd919 Improve null-safety of module/spring-boot-rsocket
See gh-46926
2025-08-26 14:22:56 +02:00
Moritz Halbritter 8434446fe2 Add nullability annotations to module/spring-boot-rsocket
See gh-46587
2025-08-06 10:13:38 +02:00
Moritz Halbritter c0f1f641ce Make auto-configurations final and remove public members
Closes gh-32883
2025-07-29 09:48:49 +02:00
Phillip Webb decc32dde3 Restructure project directories to better fit Gradle
Closes gh-46358
2025-07-10 17:54:08 -07:00