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
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
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
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
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>