Commit Graph

885 Commits

Author SHA1 Message Date
Phillip Webb 5d2373eab8 Merge branch '3.5.x' into 4.0.x 2026-01-15 17:33:45 -08:00
Andy Wilkinson 4e6ce7b141 Merge branch '4.0.x'
Closes gh-48844
2026-01-15 14:31:24 +00:00
Andy Wilkinson 625571c3d1 Fix MVC and WebFlux validator creation in a native image
Following modularization, a presence check for ValidatorAdapter was
needed in the MVC and WebFlux auto-configuratiomn when creating
their Validators. Runtime hints to allow this check to work in a
native image were not added at the same time, resulting in the
class appearing to be absent. This caused message interpolation
for constraint violations to fail as newly created Validator was
being used which lacked the necessary MessageInterpolator
configuration.

This commit adds reflection hints for ValidatorAdapter, allowing
re-use of the context's main validator as the MVC and WebFlux
validators.

Fixes gh-48828
2026-01-15 14:12:33 +00:00
Andy Wilkinson e11994c54f Merge branch '4.0.x'
See gh-48823
2026-01-15 12:02:55 +00:00
Andy Wilkinson e8cea82772 Don't require …TestAutoConfiguration classes in imports file
See gh-48822
2026-01-15 12:01:46 +00:00
Andy Wilkinson d15ce76b7b Merge branch '4.0.x'
Closes gh-48843
2026-01-15 12:00:27 +00:00
Andy Wilkinson bd4c43bf53 Make s-b-restclient test autoconfigs package-private
Fixes gh-48820
2026-01-15 11:54:57 +00:00
Andy Wilkinson 2d53ffb955 Merge branch '4.0.x'
Closes gh-48842
2026-01-15 11:22:30 +00:00
mspiess ce20e1ed20 Move schema.graphqls into test module
Spring Projects that have the `spring.graphql.schema.locations` property
set to `"classpath*:graphql/**/"` as suggested in the documentation have
failing GraphQL tests after upgrading to Spring Boot 4.
The `Query` type definition in the books-domain schema clashes with the
schema of the application. Presumably the books-domain schema was never
meant to exist in the exported JAR file. This commit moves it into the
test module to stop it from being exported and causing problems.

Signed-off-by: mspiess <30656914+mspiess@users.noreply.github.com>

See gh-48829
2026-01-15 11:20:54 +00:00
Andy Wilkinson 6eaeeccd38 Merge branch '4.0.x'
Closes gh-48827
2026-01-14 15:48:58 +00:00
Andy Wilkinson 7af147d091 Fix CloudFoundry actuator auto-config in absence of RestTemplateBuilder
Previously, CloudFoundryActuatorAutoConfiguration required
RestTemplateBuilder, using it to create the RestTemplate that's used
the security interceptor. Following the modularization,
RestTemplateBuilder is only present when spring-boot-restclient is on
the classpath. In its absence, CloudFoundryActuatorAutoConfiguration
would fail.

This commit address this problem by using RestClient.Builder (and
RestClient) instead of RestTemplateBuilder (and RestTemplate). This
allows CloudFoundryActuatorAutoConfiguration to work without
spring-boot-restclient as RestClient.Builder and RestClient are
provided by spring-web that will always be there in an MVC webapp.

Fixes gh-48826
2026-01-14 15:45:08 +00:00
Andy Wilkinson 9ab0d28ceb Merge branch '4.0.x'
Closes gh-48822 in 4.1.x
Closes gh-48824
2026-01-14 11:27:10 +00:00
Andy Wilkinson e51fb2f8f0 Merge branch '3.5.x' into 4.0.x
Closes gh-48822
Fixes gh-48819
2026-01-14 11:25:01 +00:00
Andy Wilkinson 16c85ef903 Start building against Spring AMQP 4.1.0-M1 snapshots
See gh-48800
2026-01-12 14:46:16 +00:00
Andy Wilkinson c9246cec4f Disable HTTP client's built-in decompression
The built-in decompression support in HttpClient 5.6 breaks
Elasticsearch's Rest5Client as it results in double decompression.
The first decompression is performed by the Apache HTTP client. It
succeeds. The Elasticsearch Rest5Client then sees the
Content-Encoding: gzip header and makes a second attempt to inflate
the data. This fails as it has already been inflated.

Closes gh-48743
2026-01-09 15:28:15 +00:00
Andy Wilkinson 86fe6a316f Upgrade to HttpCore5 5.4
Closes gh-48744
2026-01-09 09:54:21 +00:00
Andy Wilkinson c6cf8ba732 Upgrade to HttpClient5 5.6
Closes gh-48743
2026-01-09 09:54:21 +00:00
Andy Wilkinson 86c17e6343 fixup! Start building against Micrometer 1.17.0-M1 snapshots 2026-01-08 16:46:01 +00:00
Andy Wilkinson b4b860435b Merge branch '4.0.x'
Closes gh-48704
2026-01-08 13:45:45 +00:00
Andy Wilkinson 1d67f86dc5 Merge branch '3.5.x' into 4.0.x
Closes gh-48703
2026-01-08 13:45:21 +00:00
Andy Wilkinson 3d6671d47a Merge branch '4.0.x'
Closes gh-48701
2026-01-08 12:14:50 +00:00
Andy Wilkinson ef1f4e2fa2 Merge branch '4.0.x'
Closes gh-48700
2026-01-08 12:01:09 +00:00
Andy Wilkinson 0ffffee4bf Upgrade to Nullability Plugin 0.0.9
Closes gh-48638
2026-01-08 11:59:51 +00:00
Andy Wilkinson 9bd1a460a1 Correct packaging of test code
Closes gh-48699
2026-01-08 11:43:43 +00:00
Phillip Webb d3bb525bc9 Merge branch '4.0.x'
Closes gh-48696
2026-01-07 17:47:19 -08:00
Phillip Webb 70ce043f80 Bind HttpServiceClientProperties directly
Update `HttpServiceClientProperties` to use direct binding rather than
using `@ConfigurationProperties`. The prevents metadata and IDE issues
and also allows the class API to be simplified.

Closes gh-48616
2026-01-07 17:39:56 -08:00
Andy Wilkinson 86330d8402 Merge branch '4.0.x'
Closes gh-48689
2026-01-07 09:27:15 +00:00
Andy Wilkinson 19be9b648f Remove unnecessary jetty-ee11-servlets dependency
Closes gh-48677
2026-01-07 09:21:30 +00:00
Andy Wilkinson 96865d341d Improve how system requirements config affects Eclipse
See gh-48684
2026-01-07 08:53:05 +00:00
Phillip Webb 7af5e6e244 Merge branch '4.0.x'
Closes gh-48687
2026-01-06 13:37:26 -08:00
Phillip Webb 72aea01732 Make spring-boot-security module optional from spring-boot-cloudfoundry
Fixes gh-48685
2026-01-06 13:36:31 -08:00
Phillip Webb c66ad70311 Merge branch '4.0.x' 2026-01-06 13:24:16 -08:00
Phillip Webb 581f648c3c Fix Assertions static imports
See gh-48630
2026-01-06 13:23:46 -08:00
Phillip Webb dad1ca5e95 Merge branch '4.0.x' 2026-01-06 12:54:30 -08:00
Phillip Webb a4f35688aa Merge branch '3.5.x' into 4.0.x 2026-01-06 12:54:11 -08:00
Andy Wilkinson 56928bbe38 Upgrade to jOOQ 3.20 and require Java 21 to use it
Closes gh-48619
2026-01-06 13:03:11 +00:00
Stéphane Nicoll 82cb083869 Merge branch '4.0.x'
Closes gh-48683
2026-01-06 12:36:06 +01:00
Stéphane Nicoll 2e2981bfe4 Merge branch '3.5.x' into 4.0.x
Closes gh-48682
2026-01-06 12:35:34 +01:00
Phillip Webb 21cf377f7e Add 'WAR_SOURCE_DIRECTORY' environment variable support
Add an escape hatch for users that deviate from the standard
`src/main/webbapp` directory structure.

Fixes gh-23829
2026-01-05 16:44:45 -08:00
Stéphane Nicoll 3e8df5d901 Merge branch '4.0.x'
Closes gh-48660
2026-01-02 14:03:07 +01:00
Stéphane Nicoll cb1596e8c8 Merge branch '3.5.x' into 4.0.x
Closes gh-48659
2026-01-02 14:02:59 +01:00
Stéphane Nicoll 754a3aa2ab Merge branch '4.0.x'
Closes gh-48654
2025-12-31 17:13:18 +01:00
Stéphane Nicoll 1f4a8dff98 Restore RANDOM_PORT handing in tests with a separate management port
This commit fixes a regression where RANDOM_PORT was no longer honored
if a defined management port is set. Due to the modularization efforts,
the code has moved from an EnvironmentPostProcessor to an
ApplicationListener. Unfortunately, the listener is registered too
late to handle the event it is listening to. While the event type could
have been changed, the listener was added on the ApplicationContext
which are not honored before the ApplicationContext is in a state to be
used.

The contract of ContextCustomizerFactory is already giving us everything
we need. While the environment is post-processed later than we would
like, it is still post-processed before the refresh state so that the
additional property is honored.

This commit also adds an integration test to cover this scenario.

Closes gh-48653
2025-12-31 17:10:39 +01:00
Stéphane Nicoll 12652a313e Deprecate Derby support since Apache Derby is retired
Closes gh-48567
2025-12-30 17:36:53 +01:00
Brian Clozel 9d1db6830f Fix message converter customizers order
Prior to this commit, gh-48310 separated client and server message
converter configurations by switching from message converter instances
as beans in the application context, to server/client customizers that
are applied to the `HttpMessageConverters` instances while being built.

This change did not order the new ClientHttpMessageConvertersCustomizer
or ServerHttpMessageConvertersCustomizer, letting those being at the
"lowest precedence" default. As customizers, this means they are applied
last and custom instances cannot take over.

This commit ensures that such customizers provided by Spring Boot are
now ordered at "0" to let applications ones take over.

Fixes gh-48635
2025-12-29 14:39:43 +01:00
Brian Clozel 3948e7c4da Fix message converter customizers order
Prior to this commit, gh-48310 separated client and server message
converter configurations by switching from message converter instances
as beans in the application context, to server/client customizers that
are applied to the `HttpMessageConverters` instances while being built.

This change did not order the new ClientHttpMessageConvertersCustomizer
or ServerHttpMessageConvertersCustomizer, letting those being at the
"lowest precedence" default. As customizers, this means they are applied
last and custom instances cannot take over.

This commit ensures that such customizers provided by Spring Boot are
now ordered at "0" to let applications ones take over.

Fixes gh-48609
2025-12-29 13:41:12 +01:00
Stéphane Nicoll 4fd2dc50cb Merge branch '4.0.x'
Closes gh-48633
2025-12-29 13:15:48 +01:00
Stéphane Nicoll 22d6f6a7de Allow a custom JsonFactory to be used with JsonMapper.Builder
This commit improves the auto-configuration of the JSonMapper.Builder
to accept a custom JsonFactory if a bean of this type is present.

Closes gh-48594
2025-12-29 13:11:03 +01:00
Stéphane Nicoll c2b20009cc Merge branch '4.0.x'
Closes gh-48626
2025-12-27 10:09:21 +01:00
Stéphane Nicoll 2c55ccfa7f Provide Micrometer's observation test with micrometer test modules
Closes gh-48386
2025-12-27 10:05:32 +01:00