This commit preserves the classpath-relative path for Flyway migration
discovered by the native image resource provider so nested migrations
remain readable.
See gh-50433
Signed-off-by: Dongliang Xie <dragonfsky@gmail.com>
Previously, the `entityManagerFactoryBuilder` bean method injected a
`Map<String, AsyncTaskExecutor>` to determine the fallback executor used
for background JPA bootstrapping. A `Map` parameter is resolved eagerly,
so this forced early initialization of every `AsyncTaskExecutor` bean
whenever the builder was created, even when background bootstrapping was
not in use. When an `AsyncTaskExecutor` directly or transitively
depended on the `EntityManagerFactory`, this resulted in a
`BeanCurrentlyInCreationException`.
The fallback executor is now resolved lazily.
`EntityManagerFactoryBuilder` holds a `Supplier` that is only invoked
when background bootstrapping is actually required, and the executor is
then looked up from the `BeanFactory` rather than eagerly injected. A
new `Supplier`-based constructor is added for this purpose; the existing
constructor that accepts an `AsyncTaskExecutor` is retained and
delegates to it.
The same eager `Map<String, AsyncTaskExecutor>` injection, along with an
unused private method, is also removed from
`DataJpaRepositoriesAutoConfiguration`.
See gh-50801
Signed-off-by: Ns <397827222@qq.com>
Move the reactive Cloud Foundry health endpoint extension into a
health-specific configuration guarded by @ConditionalOnClass. When
spring-boot-health is absent, scanning the outer configuration attempts
to resolve ReactiveHealthEndpointWebExtension and causes context refresh
to fail.
See gh-50916
Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>
Move the Jersey additional health endpoint paths registrar into a
health-specific configuration so Jersey management endpoint support can
refresh when spring-boot-health is absent.
See gh-50858
Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>
Move the Cloud Foundry health endpoint extension bean into a
health-specific configuration. This lets the actuator configuration
refresh when spring-boot-health is absent.
See gh-50857
Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>
Replace `URLDecoder.decode` with `StringUtils.uriDecode` to ensure
RFC 3986-compliant decoding. Unlike `URLDecoder`, URI decoding does
not treat `+` as a space and only decodes percent-encoded sequences.
See gh-50650
Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
The MongoDB health indicators ran the `hello` command against every
database returned by `listDatabaseNames()`. For the reactive
indicator these commands were issued in parallel via `flatMap`, so a
deployment with many databases per connection could open a connection
per database on each health check, dramatically increasing connection
usage (a regression from the Spring Data based implementation used
previously).
Since `hello` is a server-level command whose result is independent
of the target database, run it only once, against the `admin`
database if available or the first returned database otherwise. The
`databases` and `maxWireVersion` details are preserved.
See gh-50734
Signed-off-by: seonwoo_jung <79202163+seonwooj0810@users.noreply.github.com>
Apply the same fix as 72eaeecd5c to the WebClient sibling so that a
WebClientHttpServiceGroupConfigurer can be ordered ahead of the
properties configurer to supply an initial WebClient.Builder.
Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>
See gh-50737
The session cookie's Partitioned attribute was set to "" for any
non-null value, so an explicit `partitioned=false` was rendered the
same as `true`. PropertyMapper.to() only filters null, so
Boolean.FALSE reached the consumer and the attribute was always set.
Use whenTrue() so the attribute is set only when partitioned is true,
leaving false and unset to fall through to the container default.
Closes gh-50781
Signed-off-by: Lee JiWon <dlwldnjs1009@gmail.com>
SpringReactiveOpaqueTokenIntrospector uses WebClient in its
implementation so the auto-configuration of it must back off when
spring-webflux is not on the classpath. Failing to do so results in
a ClassNotFoundException for WebFlux's BodyInserters if the
auto-configuration's other conditions are met.
Fixes gh-50764