Commit Graph
63 Commits
Author SHA1 Message Date
Andy Wilkinson 6a74bb85a3 Merge branch '4.0.x'
Closes gh-50440
2026-05-14 15:03:44 +01:00
Andy Wilkinson add52b6ccd Merge branch '3.5.x' into 4.0.x
Closes gh-50439
2026-05-14 15:02:24 +01:00
Phillip Webb ebce054028 Merge branch '4.0.x'
Closes gh-50266
2026-04-30 14:36:59 -07:00
Manu Sridharan 55a6b4525c Align @Nullable in returned Map with actual implementation
See gh-50265

Signed-off-by: Manu Sridharan <msridhar@gmail.com>

Closes gh-50265
2026-04-30 14:35:43 -07:00
Stéphane Nicoll ad1795bdc2 Merge branch '4.0.x'
Closes gh-50216
2026-04-25 10:40:20 +02:00
Stéphane Nicoll dfabb012e8 Merge branch '3.5.x' into 4.0.x
Closes gh-50215
2026-04-25 10:37:05 +02:00
Stéphane Nicoll 58c7a0f4e7 Merge branch '4.0.x'
Closes gh-50127
2026-04-20 08:21:39 +02:00
Stéphane Nicoll 1aaef07448 Apply API versioning path segment strategy last
This commit adapts the auto-configuration for API versioning to apply
the path segment last as this strategy is not meant to yield. It also
clarifies that configuration properties should not be used if ordering
of the strategies is important.

Closes gh-49800
2026-04-20 08:14:01 +02:00
Phillip Webb e1dd40a923 Fix test Timezone issue
Fix test that fails in certain timezones.

See gh-8923
2026-04-07 18:03:14 -07:00
Moritz Halbritter a04b65ea74 Set embeddedValueResolver on WebConversionService
Closes gh-8923
2026-04-02 08:57:22 +02:00
Brian Clozel 8bcb7fed18 Merge branch '4.0.x' 2026-03-19 09:40:36 +01:00
Brian Clozel 26edf79084 Merge branch '3.5.x' into 4.0.x 2026-03-19 09:40:05 +01:00
Brian Clozel 5b8246f9b7 Merge branch '4.0.x'
Closes gh-49647
2026-03-18 16:46:23 +01:00
Brian Clozel 1ead08b9d8 Merge branch '3.5.x' into 4.0.x
Closes gh-49646
2026-03-18 16:45:57 +01:00
Brian Clozel 228e885f01 Merge branch '4.0.x'
Closes gh-49303
2026-02-23 18:35:47 +01:00
Brian Clozel dd51ece7ac Merge branch '3.5.x' into 4.0.x
Closes gh-49302
2026-02-23 18:34:48 +01:00
Andy Wilkinson 0c8f95575e Merge branch '4.0.x'
Closes gh-49198
2026-02-12 10:31:17 +00:00
Andy Wilkinson 9c6d1d2944 Make additional health paths back off without health module
Fixes gh-49196
2026-02-12 10:31:00 +00:00
Stéphane Nicoll 01364b7099 Merge branch '4.0.x'
Closes gh-49027
2026-01-30 19:16:38 +01:00
Andy Wilkinson f8f1da605e Merge branch '4.0.x'
Closes gh-49011
2026-01-28 14:04:59 +00: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
Phillip Webb 0463b4d0bc Add @AutoConfigureWebServer test annotation
Introduce `@AutoConfigureWebServer` test annotation to support
`@SpringBootTest` with specific classes and a random port.

Closes gh-48815
2026-01-21 19:32:43 -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 ef1f4e2fa2 Merge branch '4.0.x'
Closes gh-48700
2026-01-08 12:01:09 +00:00
Andy Wilkinson 9bd1a460a1 Correct packaging of test code
Closes gh-48699
2026-01-08 11:43:43 +00: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
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
Kai Zander fb05d82650 Fix order comment in WebMvcWebApplicationTypeDeducer
See gh-48543

Signed-off-by: Kai Zander <61500114+kzander91@users.noreply.github.com>
2025-12-16 09:14:34 +01:00
Phillip Webb da516741b2 Consider modules when deducing WebApplicationType
Introduce a strategy to `WebApplicationType` to allow modules to
implement deduction logic.

Prior to this commit, modules played no part in deducing the
`WebApplicationType`. This meant that a user with `spring-webflux`
for client purposes would deduce `REACTIVE` despite no
`spring-boot-webflux` module being present.

The following deduction logic order is now implemented:

1) If the `spring-boot-webmvc` module is being used and Spring MVC
   classes are found then `SERVLET` is used.

2) If the `spring-boot-webflux` module is being used and Spring WebFlux
   classes are found then `REACTIVE` is used.

3) If `spring-web` is found and servlet classes are available then
   `SERVLET` is used.

4) If none of the above are satisfied, `NONE` is used.

This commit also updates `SpringBootTestContextBootstrapper` to use
the same deduction logic.

Fixes gh-48517
2025-12-15 20:30:16 -08:00
Phillip Webb e93f9c313c Guard against WebServerApplicationContext not being present
Update security matchers and WebFlux actuator support to guard against
the `WebServerApplicationContext` class not being present.

Fixes gh-48388
2025-12-03 22:41:32 -08:00
Andy Wilkinson 3becdc7d47 Move server.error properties to spring.web.error
Closes gh-48201
2025-11-20 11:55:23 +00:00
Stéphane Nicoll 3d23261f87 Merge branch '3.5.x'
Closes gh-48122
2025-11-13 14:55:19 +01:00
Stéphane Nicoll d1e5fe3248 Merge branch '3.5.x'
Closes gh-48106
2025-11-13 10:31:25 +01:00
Phillip WebbandAndy Wilkinson 619454548b Restore support for Jersey
Restore support for Jersey now that it supports JAX-RS 4.

Closes gh-47967

Co-authored-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
2025-11-05 10:51:08 -08:00
Phillip Webb 827b0c14a9 Rename OnlyOnceLoggingDenyMeterFilter
Rename `OnlyOnceLoggingDenyMeterFilter` to
`MaximumAllowableTagsMeterFilter`.

Closes gh-47925
2025-11-03 20:56:28 -08:00
Phillip Webb 7849474291 Merge branch '3.5.x'
Closes gh-47924
2025-11-03 20:41:23 -08:00
Andy Wilkinson bf8e0c45a8 Allow customizations of default customizers to be overridden
Previously, the default client and server HTTP message converter
customizers were ordered with lowest precedence. This made it
impossible to guarantee that another customizer would be able to go
after the default customizers, preventing their customizations from
being reliably overridden.

This commit updates the definitions of the default customizers to
order them at 0. This allows additional customizers to be ordered
either before or after them. Usage of the customizers is now always
ordered (previously Spring MVC's was not).

See gh-47798
2025-10-27 12:41:31 +00:00
Phillip Webb 183d765b4d Support actuator with Jackson 2 only
See gh-47688
2025-10-17 13:17:19 -07:00
Moritz Halbritter 73aa73f50d Add nullability annotations to tests in module/spring-boot-webmvc
See gh-47263
2025-10-16 11:24:40 +02:00
Phillip Webb cba4f7ae21 Consistently package mappings and exchanges classes
Mirror the package names used in actuator for classes to support
mappings and exchanges in `spring-boot-servlet`, `spring-boot-webmvc`
and `spring-boot-webflux`.

Closes gh-46217
2025-10-15 15:56:41 -07:00
Andy Wilkinson 55e7c83498 Allow modules to contribute to Devtools' default properties
Closes gh-44792
2025-10-15 20:19:02 +01:00
Phillip Webb 34e0382858 Move actuator heath code to spring-boot-health
Closes gh-46357
2025-10-14 21:51:24 -07:00
Andy Wilkinson 5afbec7033 Correct package in spring-boot-resttestclient to match module name
See gh-46356
See gh-47322
2025-10-10 12:50:48 +01:00
Phillip Webb e01b36216a Revert Support pluggable types for EndpointJsonMapper
Closes gh-46534
2025-10-09 22:48:45 -07:00
Andy WilkinsonandPhillip Webb 9eb05ebb10 Create spring-boot-resttestclient and spring-boot-webtestclient modules
Create `spring-boot-resttestclient` and `spring-boot-webtestclient`
modules to hold test client auto-configuration and `TestRestTemplate`
code.

Previous these classes were contained in `spring-boot-resetclient-test`
and `spring-boot-webclient-test` which was incorrect since the `-test`
modules should hold code need to test the given modules, not supporting
test classes.

See gh-46356

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2025-10-09 22:12:39 -07:00
Brian Clozel 92ee73df30 Deprecate HttpMessageConverters for Framework's
Prior to this commit, Spring Boot had an  `HttpMessageConverters` class
that allowed, to configure message converter instances for MVC server
applications and traditional Spring HTTP clients.

As of Spring Framework 7.0, Framework ships its own
`HttpMessageConverters` class, aligning with the existing codecs
configuration on the WebFlux side. As a result, a few methods taking
`List<HttpMessageConverter>` as arguments were deprecated in favor of
the new arrangement.

This commit adapts to the Framework changes by deprecating Boot's
`HttpMessageConverters` in favor of Framework's. This splits the client
and server configuration as they are meant to be managed separately.
Applications can still contribute `HttpMessageConverters` (Boot's
variant) beans but the type itself is now deprecated.
Instead, applications should now contribute
`ClientHttpMessageConvertersCustomizer` and
`ServerHttpMessageConvertersCustomizer` beans to customize message
converters.

Closes gh-46411
2025-10-02 15:22:13 +02:00
Phillip Webb 2a521ce4e9 Remove spring-boot-web-server-test module
Remove the `spring-boot-web-server-test` module, adding
`SpringBootTestRandomPortContextCustomizerFactory` to
`spring-boot-web-server` as a replacement for
`SpringBootTestRandomPortApplicationListener`.

See gh-46356
See gh-47322
2025-10-01 21:54:54 -07:00
Phillip Webb 97c89b480f Move @LocalServerPort and @LocalManagementServerPort
Move `@LocalServerPort` and `@LocalManagementServerPort` back to
`spring-boot-test`. The should help reduce upgrade pain since these
annotations are fairly commonly used. It also removes the need for
depending on `spring-boot-webserver-test`.

This is slight compromise with the module structure, since the
web-server module usually contributes the properties referenced
by the annotations.

See gh-46356
See gh-47322
2025-10-01 21:53:58 -07:00
Phillip Webb bba56ffc8b Move RestTestClientBuilderCustomizer to spring-boot-test
Relocate `RestTestClientBuilderCustomizer` to `spring-boot-test`
and break the direct link to web-server by making use of
`spring.factories` and the new `BaseUrlProviders` class.

See gh-46356
2025-10-01 21:51:20 -07:00