Commit Graph
766 Commits
Author SHA1 Message Date
Andy Wilkinson 6c8cd183bd Merge branch '3.5.x' into 4.0.x
Closes gh-49327
2026-02-26 09:38:10 +00:00
Andy Wilkinson 20ff2b7ff1 Register reflection hints for HTTP service client property binding
Fixes gh-49274
2026-02-25 15:12:55 +00:00
Andy Wilkinson 75ccf2cdba Merge branch '3.5.x' into 4.0.x
Closes gh-49314
2026-02-24 16:26:50 +00:00
Andy Wilkinson e808d7a7de Align server.tomcat.max-part-count default with Tomcat's default
Fixes gh-49311
2026-02-24 15:32:50 +00:00
Brian Clozel dd51ece7ac Merge branch '3.5.x' into 4.0.x
Closes gh-49302
2026-02-23 18:34:48 +01:00
Phillip Webb 1d054e8a12 Ensure HttpMessageConverters are configured before RestClients
Update `RestClientAutoConfiguration` to ensure that it applies after
`HttpMessageConvertersAutoConfiguration`.

Prior to this commit, the `HttpMessageConvertersRestClientCustomizer`
bean might not get created due to the `@ConditionalOnBean` guard not
finding any `ClientHttpMessageConvertersCustomizer` beans.

Since the issue is surprising hard to replicate in a unit test, a new
smoke test has been added to ensure the problem doesn't return.

Fixes gh-49223
2026-02-17 22:26:02 -08:00
Phillip Webb 362b3e3f20 Polish 2026-02-17 20:55:20 -08:00
Moritz Halbritter cdf8d2e9c8 Back off on Propagator in Brave and Otel auto-configurations
This also fixes the bug that both auto-configurations couldn't be used
together.

Closes gh-49183
2026-02-13 13:48:38 +01:00
Andy Wilkinson 9c6d1d2944 Make additional health paths back off without health module
Fixes gh-49196
2026-02-12 10:31:00 +00:00
Phillip Webb e276b28311 Polish 2026-02-06 19:04:57 -08:00
Andy Wilkinson dfd4b85289 Upgrade to Tomcat 11.0.18
Tomcat 9.0.115, 10.1.52, and 11.0.18 include a breaking change [1] to
how ciphers are configured when using HTTPS. Previously, a single
setting was used but this has now been split in two; the existing
ciphers setting for TLSv1.2 ciphers and a new ciperSuites setting for
TLSv1.3. As part of this split, the behavior of the ciphers setting
has been changed such that any TLSv1.3 ciphers are ignored and a
warning is logged.

This change in Tomcat is problematic without also making some changes
in Boot. If we had done nothing, a user that had configured only
TLSv1.3 cipers would have them all ignored, leaving their SSL
connection unexpectedly using all of the default ciphers which may be
less secure.

This commit adapts to the breaking change in Tomcat by taking the
user's list of ciphers and splitting into into TLSv1.2 and TLSv1.3
ciphers before passing them into Tomcat's two settings (ciphers and
cipherSuites respectively). This is done defensively for backwards
compatibility. If the methods to identify and configure the TLSv1.3
ciphers are not present, we assume that we're running with an earlier
version of Tomcat and fall back to passing them all into the ciphers
setting as we did previously.

Closes gh-49108

[1] https://github.com/apache/tomcat/commit/9abf6bddb2e84ecf1668780bb3150b799f832ccf
2026-02-05 15:14:09 +00:00
Andy Wilkinson 4bbb0f731c Upgrade to Jetty 12.1.6
Closes gh-49102
2026-02-05 15:14:08 +00:00
Andy Wilkinson 0401000ae2 Merge branch '3.5.x' into 4.0.x
Closes gh-49034
2026-02-02 10:45:15 +00:00
Stéphane Nicoll 3bbf3c79ef Merge branch '3.5.x' into 4.0.x
Closes gh-49026
2026-01-30 19:14:51 +01:00
Brian Clozel 53c1f424ce Fix Jackson3 class reference in condition
Prior to this commit, the `XmlMapper` auto-configuration for Jackson2
would refer to Jackson3's `XmlMapper` instead of Jackson2. This would
not only make the condition invalid, but it could also lead to
`NoClassDefFoundError` at runtime if the application mixed Jackson 2 and
3 on the classpath.

Fixes gh-49015
2026-01-29 09:45:00 +01:00
Andy Wilkinson 5826200520 Delay removal of Jackson 2 support until 4.3.0 at the earliest
Closes gh-49010
2026-01-28 13:52:00 +00:00
Andy Wilkinson cbfbe59581 Upgrade to Nullability Plugin 0.0.11
In addition to the upgrade, this commit also fixes some contract
violations in non-public APIs that are now detected as the new
version of the plugin enables contract checking by default.

Closes gh-49000
2026-01-28 10:46:42 +00:00
Moritz Halbritter b38338fe32 Merge branch '3.5.x' into 4.0.x
Closes gh-48989
2026-01-27 13:41:04 +01:00
Andy Wilkinson 78fbd12510 Merge branch '3.5.x' into 4.0.x
Closes gh-48987
2026-01-27 11:08:52 +00:00
Yanming Zhou 5733ee723e Remove unnecessary @ConfigurationPropertiesSource
Remove @ConfigurationPropertiesSource from classes that reside in
the same module as all referencing @ConfigurationProperties classes.

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>

See gh-48934
2026-01-23 10:33:35 +00:00
Andy Wilkinson df5014a29d Revert "Temporarily add hints needed for Hibernate 7.2"
This reverts commit 1a4426a369.

Closes gh-48550
2026-01-20 18:05:52 +00:00
Johnny Lim 485b16ad0a Remove @ConditionalOnClass(Sniffer.class) on RestClientSnifferConfiguration
The condition is unnecessary as the sniifer is now included in the
same jar as the REST client itself.

See gh-48900

Signed-off-by: Johnny Lim <izeye@naver.com>
2026-01-20 09:59:59 +00:00
Andy Wilkinson 85f3f3856d Revert "Allow a custom JsonFactory to be used with JsonMapper.Builder"
This reverts commit 22d6f6a7de.

See gh-48594
2026-01-20 09:34:39 +00:00
Andy Wilkinson 6df1caf8f9 Auto-configure transactions when using spring-boot-kafka
spring-kafka has an api dependency on spring-tx, placing
the latter on the compile classpath of the former's consumers.
Additionally, when spring.kafka.producer.transaction-id-prefix is
set, the Kafka auto-configuration will define a Kafka-based
transaction manager. However, the transaction manager won't be used
without some configuration from the user as there's no dependency on
spring-boot-transaction and, therefore, no auto-configuration of
@EnableTransactionManagement.

This commit adds a spring-boot-transaction dependency to
spring-boot-kafka, aligning it with the spring-tx dependency that
spring-kafka already has.

Fixes gh-48880
2026-01-19 10:23:12 +00:00
Phillip Webb ea564d21e0 Ensure that the session same site defaults to "lax"
Remove the `always()` call from the same site mapping and replace `as`
with a direct call. This update means that mapping only occurs when
`getSameSite` is not `null`, but mapping can still be applied if
`sameSite.getAttributeValue()` returns `null`.

Closes gh-48830
2026-01-15 17:36:56 -08:00
Phillip Webb 5d2373eab8 Merge branch '3.5.x' into 4.0.x 2026-01-15 17:33:45 -08: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 e8cea82772 Don't require …TestAutoConfiguration classes in imports file
See gh-48822
2026-01-15 12:01:46 +00:00
Andy Wilkinson bd4c43bf53 Make s-b-restclient test autoconfigs package-private
Fixes gh-48820
2026-01-15 11:54:57 +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 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 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 1d67f86dc5 Merge branch '3.5.x' into 4.0.x
Closes gh-48703
2026-01-08 13:45:21 +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 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 19be9b648f Remove unnecessary jetty-ee11-servlets dependency
Closes gh-48677
2026-01-07 09:21:30 +00: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 581f648c3c Fix Assertions static imports
See gh-48630
2026-01-06 13:23:46 -08:00
Phillip Webb a4f35688aa Merge branch '3.5.x' into 4.0.x 2026-01-06 12:54:11 -08: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
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 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
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
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 2c55ccfa7f Provide Micrometer's observation test with micrometer test modules
Closes gh-48386
2025-12-27 10:05:32 +01:00
Stéphane Nicoll 9b7451ed9d Merge branch '3.5.x' into 4.0.x
Closes gh-48622
2025-12-26 09:01:59 +01:00
Moritz Halbritter 77807f53ee Add dependency to spring-boot-opentelemetry module
Closes gh-48585
2025-12-19 11:53:14 +01:00
Moritz Halbritter ce1efb02a1 Back off if spring-boot-micrometer-observation or spring-boot-micrometer-metrics is missing
Closes gh-48581
2025-12-19 11:25:32 +01:00
Stéphane Nicoll d489aa685c Polish "Update AOT tests to fail if deprecated code is not suppressed"
Include use of API that has been marked for removal.

See gh-48566
2025-12-17 15:41:26 +01:00