21 Commits
Author SHA1 Message Date
Tiziano Basile f119e58767 Default use-relative-redirects to true
Spring Boot unconditionally set useRelativeRedirects on the Tomcat
Context, defaulting it to false. That overrode Tomcat's own default and
forced absolute Location headers on every sendRedirect.

Keep server.tomcat.use-relative-redirects a simple boolean, but default
it to true so that relative Location headers are used out of the box.
The property can still be set to false to opt back into absolute
redirects.

Smoke tests that asserted a port-qualified absolute Location are updated
to the relative form, and the proxy tip in the reference documentation is
qualified since the context root redirect no longer carries a scheme.

Signed-off-by: Tiziano Basile <tiz.basile@gmail.com>

See gh-51173
2026-09-07 08:50:09 +01:00
Phillip Webb ef4f1404a1 Merge branch '4.1.x'
Closes gh-51455
2026-08-25 14:19:47 -07:00
Phillip Webb 5a21e0d698 Upgrade to spring-javaformat 0.0.48
Closes gh-51452
2026-08-25 13:58:58 -07:00
Brian Clozel 2f9933e3cb Replace TestRestTemplate with RestTestClient in smoke tests
Before deprecating `TestRestTemplate`, we must first stop using it in
smoke tests and replace it with:
* `RestTestClient` when the Spring MVC infrastructure is present
* `RestClient` when the test does not have Spring MVC on classpath

See gh-46632
2026-07-27 16:09:12 +02:00
Andy Wilkinson add52b6ccd Merge branch '3.5.x' into 4.0.x
Closes gh-50439
2026-05-14 15:02:24 +01:00
Andy Wilkinson 3e82ede609 Require spring-boot-restclient dependency to use TestRestTemplate
Previously, spring-boot-restclient was a required dependency of
spring-boot-resttestclient. This had the unwanted side-effect of
increasing the risk of the test classpath enabling auto-configuration
for RestClient.Builder when it was main code that needed such a bean.
This could lead to integration tests passing but the application
itself failing to start when its run through its main method.

This commit makes spring-boot-restclient an optional dependency of
spring-boot-resttestclient. As a result, a dependency on
spring-boot-resttestclient is no longer sufficient to auto-configure
a RestClient.Builder bean, although it is still sufficient to
auto-configure a RestTestClient bean.

Those that wish to use TestRestTemplate rather than migrating to
RestTestClient will now have to add a dependency on
spring-boot-restclient. This makes it presence more obvious. It now
has to be declared directly rather than being somewhat hidden due to
being pulled in transitively. The hope is that this will reduce the
chances of the dependency being accidentially on the test classpath
when main code requires it to be on the runtime classpath.

Fixes gh-48253
2025-11-25 14:38:33 +00: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 cd1424d04b Simplify dependencies arrangement in smoke tests
This commit harmonizes dependencies used in smoke tests, in particular
by using the starters consistently. This serves not only as a validation
but also a showcase of how to use them.

Closes gh-47836
2025-10-28 11:16:23 +01:00
Moritz Halbritter a1a7d8d989 Add nullability annotations to tests in smoke-test/spring-boot-smoke-test-web-secure
See gh-47263
2025-10-16 11:24:50 +02:00
Phillip Webb 8f89bd304f Polish code to fix warnings 2025-10-14 21:51:25 -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
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
Andy Wilkinson 3bf53f8bf5 Introduce @AutoConfigureTestRestTemplate
Add `@AutoConfigureTestRestTemplate` which can be used to
auto-configure a `TestRestTemplate`.

See gh-46356
2025-10-09 22:09:36 -07:00
Phillip Webb ee72caf7dc Drop spring-boot-rest-client-test dependency from test starter
See gh-46356
See gh-47322
2025-10-01 21:55:25 -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
Andy Wilkinson d353038c58 Update Jackson support to require Jackson 3
Closes gh-45535
2025-09-02 11:37:09 +01:00
Moritz Halbritter 2a90172e7d Add nullability annotations to smoke-test/spring-boot-smoke-test-web-secure
See gh-46587
2025-08-13 11:50:56 +02:00
Andy Wilkinson 96ff9e59ad Remove non-transitive dependencies from spring-boot-starter-test
transitive = false maps to a wildcard exclusion in the published pom.
Unfortunately, this causes problems with Maven as any dependency
on one of the transitive = false modules then has all of its
dependencies excluded, even when it appears elsewhere in the
dependency graph without any exclusions.

Gradle is not affected as it requires an exclusion to be declared
on every route to a dependency for it to be effective. Maven is
affected as it requires the exclusion to be present on only one
route.
2025-07-24 13:20:24 +01:00
Phillip Webb 5e90415880 Rationalize starters following modularization
Update dependencies and starters following modularization. New
starters have been added for each user-facing module.

Closes gh-46245
2025-07-22 18:27:27 +01:00
Phillip Webb decc32dde3 Restructure project directories to better fit Gradle
Closes gh-46358
2025-07-10 17:54:08 -07:00