Commit Graph
266 Commits
Author SHA1 Message Date
Dmitry Sulman c7621bb6be Introduce Kotlin Serialization auto-configuration
See gh-46546

Signed-off-by: Dmitry Sulman <dmitry.sulman@gmail.com>
2025-09-10 20:53:40 +02:00
Andy Wilkinson 4b0b9e5e36 Merge branch '3.5.x'
Closes gh-47151
2025-09-10 17:16:52 +01:00
Andy Wilkinson 652401b76c Polish message converter references relating to Jackson 3 upgrade
See gh-45535
2025-09-10 15:23:22 +01:00
Stéphane Nicoll d7c482aa16 Replace @OptionalParameter with JSpecify's @Nullable
This commit removes OptionalParameter in favor of the nullness support
introduced in Spring Framework 7. The parameter of an action can now
be flagged as optional using JSpecify's @Nullable, and simplifies the
setup for those who are using JSpecify as only a single annotation is
required.

Closes gh-45390
2025-09-10 15:01:43 +02:00
Stéphane Nicoll ee83ff5f6a Revert "Only support @OptionalParameter annotation with endpoint methods"
This reverts commit 450eb48303.

See gh-47136
2025-09-10 14:31:35 +02:00
Andy Wilkinson d0c742bc7b Merge branch '3.5.x'
Closes gh-47146
2025-09-10 12:51:51 +01:00
Andy Wilkinson d3a9bc54a7 Merge branch '3.5.x'
Closes gh-47143
2025-09-10 11:18:42 +01:00
Phillip Webb 450eb48303 Only support @OptionalParameter annotation with endpoint methods
Remove `@Nullable` support for optional endpoint method parameters in
favor of only supporting `@OptionalParameter`. The annotation processor
now also only supports `@OptionalParameter` detection.

Closes gh-47136
2025-09-09 13:00:50 -07:00
Andy Wilkinson e764878b6d Address some missed parts of the Jackson 3 migration
See gh-45535
2025-09-09 18:09:35 +01:00
Andy Wilkinson c86eb5298a Add configuration property for Jackson's DateTimeFeature
See gh-45535
2025-09-09 17:58:16 +01:00
Stéphane Nicoll 7a73925c90 Adapt AMQP auto-configuration to core retry semantics
This commit adapts the auto-configuration of AMQP message listeners
and RabbitTemplate moving away from Spring Retry.

One important change is that message listeners now only require a
RetryPolicy. To make the callback explicit, two customizers have been
introduced to clearly separate the scope of the customization:

* RabbitTemplateRetrySettingsCustomizer for the client-side and usage
of RabbitTemplate.
* RabbitListenerRetrySettingsCustomizer for message listeners.

Closes gh-47122
2025-09-09 16:55:34 +02:00
Stéphane Nicoll 4dc1b644fe Adapt to change in MongoDB's BigDecimal and UUID default representations
See https://github.com/spring-projects/spring-data-mongodb/issues/5037
See gh-47041
2025-09-09 16:25:26 +02:00
Moritz Halbritter 0fc1a40f3b Polish nullability annotations
See gh-46926
2025-09-09 15:08:44 +02:00
Moritz Halbritter 2e8428b760 Remove NullAway suppressions where possible
See gh-46926
2025-09-09 12:02:19 +02:00
Stéphane Nicoll 5ca904c17a Adapt to latest change in Spring Batch snapshots
See https://github.com/spring-projects/spring-batch/issues/4971
2025-09-09 10:36:55 +02:00
Stéphane Nicoll 5da4913122 Adapt Kafka auto-configuration to core retry semantics
This commit adapts the auto-configuration of retry topics to Spring
Kafka moving away from Spring Retry. The random property has been
removed in favor of the new jitter value and default values have been
made more explicit.

Closes gh-47125
2025-09-09 10:27:43 +02:00
Stéphane Nicoll 3e0e7cde68 Upgrade to Jetty 12.1.1
Closes gh-47131
2025-09-09 09:52:47 +02:00
Jonatan Ivanov 9e9e412335 Use isNoop() instead of Observation.NOOP
See gh-47072
2025-09-09 08:58:17 +02:00
Stéphane Nicoll 6207e41473 Remove auto-configuration support for '@HttpServiceClient'
This reverts commit 7a8b337b1c.

Closes gh-47123
2025-09-08 16:13:38 +02:00
Phillip WebbandMoritz Halbritter 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 8d2c090af8 Move MongoDB health support into spring-boot-mongodb
Previously the MongoDB health indicates used Spring Data's templates
(imperative and reactive) to access MongoDB. This prevented health
information from being available in apps using Mongo's Java Driver
directly.

This commit updates the health indicates so that they no longer
depend upon Spring Data MongoDB and instead using MongoDB's Java
Driver directly. As they no longer depend on Spring Data MongoDB,
the indicators have also moved from spring-boot-data-mongodb to
spring-boot-mongodb.

Closes gh-47051
2025-09-05 15:07:52 +01:00
Andy Wilkinson a977d260bd Add a property for Data MongoDB's BigDecimal representation
Closes gh-47041
2025-09-05 15:07:52 +01:00
Andy Wilkinson 1554c74c2a Rename spring.data.mongodb.uuid-representation
Closes gh-47052
2025-09-05 15:07:52 +01:00
Andy Wilkinson ab9feff7fa Use mongodb consistently in property names
Closes gh-47050
2025-09-05 15:07:52 +01:00
Andy Wilkinson 08c42701d9 Rename MongoDB properties that don't require Spring Data MongoDB
Previously, all configuration properties for MongoDB used the
prefix spring.data.mongodb irrespective of whether or not they
required Spring Data MongoDB.

This commit renames the properties that do not require Spring Data
MongoDB to use the prefix spring.mongodb.

Closes gh-34954
2025-09-05 15:07:52 +01:00
Moritz Halbritter 63adb82145 Merge branch '3.5.x'
Closes gh-47055
2025-09-05 14:17:39 +02:00
Maziyar Bahramian 4a888ca1db Rename ConditionalOnEnabledTracing to ConditionalOnEnabledTracingExport
See gh-47029

Signed-off-by: Maziyar Bahramian <maziyar.bahramian@gmail.com>
2025-09-05 13:36:16 +02:00
Phillip Webb 92c3d1835a Adapt to Spring Kafka BackOff updates
See gh-47004
2025-09-04 15:53:38 -07:00
Andy Wilkinson aa3bed5e28 Remove GridFS from MongoConnectionDetails
GridFS is a concept specific to Spring Data MongoDB while
MongoConnectionDetails provides general details for connecting to
MongoDB, with or without Spring Data MongoDB. As such GridFS does not
belong on MongoConnectionDetails and this commit removes it.

Support for configuring GridFS through properties remains.

Closes gh-47044
2025-09-04 18:01:18 +01:00
Andy Wilkinson 42c494caa2 Rename …DataProperties to Data…Properties
Closes gh-47043
2025-09-04 17:47:18 +01:00
Andy Wilkinson b888ba46da Revert "Merge branch '3.5.x'"
This reverts commit fc2700674e, reversing
changes made to b1b5880f48.

See gh-47038
2025-09-04 16:03:50 +01:00
Andy Wilkinson 86deef6abf Polish "Add support for Elasticsearch API-key-based authentication"
See gh-46167
2025-09-04 12:08:25 +01:00
Laura Trotta 9a70591f31 Add support for Elasticsearch API-key-based authentication
See gh-46167

Signed-off-by: Laura Trotta <laura.trotta@elastic.co>
2025-09-04 12:01:28 +01:00
Andy Wilkinson fc2700674e Merge branch '3.5.x'
Closes gh-47038
2025-09-04 11:05:08 +01:00
Andy Wilkinson b1b5880f48 Merge branch '3.5.x'
Closes gh-47036
2025-09-04 09:56:46 +01:00
Andy Wilkinson 023cbd42f0 Adapt to changes in Spring Integration's Graph
See gh-47010
2025-09-04 08:02:33 +01:00
Moritz Halbritter 96d096e2f9 Improve null-safety of module/spring-boot-micrometer-metrics
See gh-46926
2025-09-03 15:12:20 +02:00
Moritz Halbritter 8001061a3c Improve null-safety of module/spring-boot-cache
See gh-46926
2025-09-03 15:12:06 +02:00
Moritz Halbritter f51f872c28 Improve null-safety of module/spring-boot-actuator
See gh-46926
2025-09-03 15:11:53 +02:00
Andy Wilkinson d353038c58 Update Jackson support to require Jackson 3
Closes gh-45535
2025-09-02 11:37:09 +01:00
Andy Wilkinson 8bfb170ebc Remove support for Jersey
Spring Boot 4 requires Jakarta EE 11. Jersey 4 will support EE 11 but
its release schedule is uncertain. Furthermore, Jersey does not yet
support Jackson 3 and there's no clear timeline for when Jackson 3
will be supported.

In light of the above, this commit removes support for Jersey.
Reinstating support can be considered once there's a Jersey GA that
supports Jakarta EE 11 or its clear that one will be available in
time for Boot's GA in November. Ideally, support for Jackson 3 would
also be available before reinstating Jersey support.

Closes gh-47017
2025-09-02 11:36:52 +01:00
Maziyar Bahramian 6d3cb8eff7 Rename ScheduledTasksObservabilityAutoConfiguration to ScheduledTasksObservationAutoConfiguration
See gh-46995

Signed-off-by: Maziyar Bahramian <maziyar.bahramian@gmail.com>
2025-09-01 16:57:00 +02:00
Moritz Halbritter d618f6b1ec Merge branch '3.5.x'
Closes gh-47014
2025-09-01 16:10:16 +02:00
Moritz Halbritter 71ff804717 Adapt to Neo4j image changes
The image has been switched in 4761e13228
2025-09-01 15:51:00 +02:00
Moritz Halbritter 2c4d162f40 Polish "Optimize DevTools resource lookup performance"
See gh-46289
2025-09-01 10:52:38 +02:00
DongHoon Lee 3e41807e1d Optimize DevTools resource lookup performance
The resource resolver in DevTools can cause performance degradation
during application restarts in large projects. Key methods like
isDeleted() and getAdditionalResources() rely on nested loops, leading
to O(n*m) complexity.

This commit refactors ClassLoaderFiles to use a pre-computed, flattened
map. This provides O(1) complexity for direct lookups and allows for
efficient single-loop iteration.

The ClassLoaderFilesResourcePatternResolver is updated to leverage this
new, efficient structure:

- getFile() and size() are improved from O(n) to O(1).
- isDeleted() and getAdditionalResources() are improved from O(n*m) to
  O(m) by eliminating nested loops.
- Data consistency is maintained across all operations.

This optimization significantly improves restart performance with a
minimal memory footprint, while preserving the existing API and
exception handling behavior.

See gh-46289

Signed-off-by: DongHoon Lee <dhl1924@naver.com>
2025-09-01 10:52:37 +02:00
Andy Wilkinson fe371aba17 Start building against Spring Framework 7.0.0-M9 snapshots
See gh-47008
2025-08-29 17:19:34 +01:00
Moritz Halbritter db5680a79c Merge branch '3.5.x' 2025-08-28 14:04:26 +02:00
Moritz Halbritter 12bf4507d8 Remove suppressions for module/spring-boot-graphql
See gh-46926
2025-08-28 09:44:25 +02:00
Moritz Halbritter 3dba915c01 Improve null-safety of module/spring-boot-webflux
See gh-46926
2025-08-28 09:40:23 +02:00