META-INF/spring.factories and META-INF/spring/aot.factories in the
main source set are now checked. The checks verify that:
- Each class listed in the values exists in the source set's output
- The classes are listed alphabetically
- Nested classes are identified using their binary name
Closes gh-44676
Update `Restarter` to prevent 'Recursive update' `IllegalStateException`
from being thrown. Calls to `objectFactory.getObject()` now happen
outside of `computeIfAbsent`.
Fixes gh-41571
Update `MainMethod` discovery so that launcher classes from the
`org.springframework.boot.loader` code are not considered. This restores
the behavior of Spring Boot 2.7.11 and allows remote restart of uber
jars without pulling the loader classes into the `RestartClassLoader`.
Fixes gh-39733
- on AtomicBoolean in SpringApplicationBuilder
- on SimpleFormatter
- in a private method in FileSystemWatcher which is always called in a
synchronized block
- Replaced synchronized guarded HashMap with ConcurrentHashMap
- Replace synchronized with Lock when guarding long-running operations
- Remove unnecessary synchronization in FileSystemWatcher
- Replace HashMap with ConcurrentHashMap in Restarter
- Remove unnecessary locking on AtomicBoolean in
SpringApplicationBuilder
- Remove unnecessary locking in SimpleFormatter
Closes gh-36670
Update `MainMethod` to search from the bottom of the stack rather than
the start. Prior to this commit, an incorrect `main` method would be
found if more than one `main` was in the stack.
Fixes gh-35214
Update the auto-configuration gradle plugin so that the
configuration-properties plugin is not longer automatically applied.
This allows us to have auto-configuration modules that don't ship
configuration properties.
Closes gh-35028