The enum itself is not specifically tied to auto-configuration so
spring-boot is a better place for it. The related condition,
`@ConditionalOnThreading`, remains in spring-boot-autoconfigure. This
aligns things with the similar `CloudPlatform` and
`@ConditionalOnCloudPlatform`.
Closes gh-46406
efde264 corrected spring-boot-webclient by adding to it an api
dependency on spring-webflux. This had an unwanted side-effect on
the classpath of anything that depends on spring-boot-starter-test.
That classpath now contained all of the classes that are needed to
deduce that the web application type should be reactive. This
caused some smoke tests to fail as they'd incorrectly try to start
a reactive web server.
This commit updates spring-boot-starter-test so that its dependencies
on spring-boot-restclient and spring-boot-webclient are not
transitive. This prevents them from pulling in unwanted dependencies
such as spring-webflux by default, while making their classes and
auto-configuration available for classes that already depend on
spring-webflux and the like through some other route.
See gh-46292
Replace the string based `JarFileUrlKey` and cache with a simple key
built directly from URL components. This should allow cache lookups
to remain fast whilst removing any `URLStreamHandler.getHostAddress`
calls.
Prior to this commit, we assumed that it was safe to use the URL
directly as a cache key as long as it had an empty or null `host`.
This assumption isn't correct when Palo Alto Network Cortex XDR agent
is present as it appears to intercept calls to `getHostAddress`
and, unlike the JDK code, always perform a DNS lookup.
Fixes gh-46401
Compilation of AOT-generated source code requires runtime
dependencies to be on the classpath. This is necessary as a class
from a runtime dependency may appear in the signature of a generated
method that defines a bean. To accomplish this, Boot's AOT plugin
sets the org.gradle.usage attribute of the compile classpath
configurations of the aot and aotTest source sets to java-runtime.
When the Kotlin plugin is applied after Boot's AOT plugin it breaks
this arrangement by setting org.gradle.usage to java-api. There
doesn't appear to be a way to prevent it from messing with the aot
and aotTest source sets despite them not using Kotlin. This commit
works around the problem by repairing the damage and setting the
attribute back to java-runtime again.
Fixes gh-46397