Commit Graph
321 Commits
Author SHA1 Message Date
Stéphane Nicoll 9821dade80 Merge branch '4.0.x' into 4.1.x
Closes gh-51121
2026-07-24 15:19:14 +02:00
Stéphane Nicoll b9ebff0084 Use RestClient in tests and infrastructure code
Closes gh-51120
2026-07-24 15:10:43 +02:00
Andy Wilkinson c5261cf0eb Merge branch '4.0.x'
Closes gh-50878
2026-06-28 12:14:56 +01:00
Yanming Zhou dff33aec55 Remove unnecessary @Nullables from local variable declarations
See gh-50866

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2026-06-28 10:39:07 +01:00
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
Andy Wilkinson 9446dbb106 Merge branch '4.0.x'
Closes gh-50357
2026-05-07 15:46:35 +01:00
Andy Wilkinson 5257df1bb1 Take async cache writes into consideration
Since Spring Data Redis 4.0 and when using Lettuce, entries may be
written to the cache asynchronously. This means that they may not
be immediately visible to a subsequent read. This commit adapts the
test to use Awaitility to wait for the expected entry to become
visible in the cache.

Closes gh-50356
2026-05-07 15:42:50 +01:00
Andy Wilkinson 9f97f11964 Merge branch '4.0.x'
See gh-50279
2026-05-02 07:12:08 +01:00
Andy Wilkinson ee6f1e6256 Merge branch '3.5.x' into 4.0.x
See gh-50278
2026-05-02 07:11:37 +01:00
Phillip Webb 3bafd4994e Document gRPC support
Closes gh-49291
2026-04-21 20:03:28 -07:00
Phillip Webb 9bf698d564 Add missing gRPC test starters
Add `spring-boot-starter-grpc-client-test` and
`spring-boot-starter-grpc-server-test` to align with the client
and server modules. Also refine dependencies for common test
usage patterns.

`spring-boot-starter-grpc-server-test` has been removed.

Closes gh-49690
2026-04-21 20:01:05 -07:00
Phillip Webb 6f409f7dd6 Polish code for upcoming Spring Security nullability changes
Update code and tests in preparation of upcoming Spring Security
`Nullable` annotation updates.
2026-04-07 22:27:19 -07:00
Eric Haag e0aa86fdb3 Improve GenerateProtoTask relocatability by clearing javaExecutablePath
Clears the `javaExecutablePath` on the Protobuf extension. This prevents
absolute Java installation paths from being tracked as task inputs,
avoiding cross-machine build cache misses and ensuring the task is fully
relocatable. This is safe because `protoc` and `grpc` are configured
to use native binaries rather than executable JARs.

See: https://github.com/google/protobuf-gradle-plugin/issues/785

Signed-off-by: Eric Haag <ehaag@gradle.com>

See gh-49842
2026-04-07 10:17:11 +01:00
Moritz Halbritter 09ece896a5 Merge branch '4.0.x'
Closes gh-49870
2026-04-02 11:16:36 +02:00
Moritz Halbritter d437c11761 Merge branch '3.5.x' into 4.0.x
Closes gh-49869
2026-04-02 11:12:20 +02:00
Moritz Halbritter dc375134f9 Merge branch '4.0.x'
Closes gh-49867
2026-04-02 10:47:07 +02:00
Moritz Halbritter 4f47202910 Merge branch '3.5.x' into 4.0.x
Closes gh-49866
2026-04-02 10:46:26 +02:00
Moritz Halbritter c56cbd46b2 Map OpenTelemetry environment variables to properties
Closes gh-48799
2026-03-30 15:28:42 +02:00
Stéphane Nicoll 5296a5bbfd Revert "Rename spring-boot-amqp to spring-boot-rabbitmq"
This reverts commit 72b8a6ca05,
b820d9feac, and
edadf816ab.

See gh-49620
2026-03-20 11:03:28 +01:00
Phillip Webb 328e91b492 Use testcontains mechanism to find access local gRPC address
See gh-49540
2026-03-19 16:47:06 -07:00
Chris BonoandPhillip Webb 1cb8d02ed7 Add Spring gRPC server and client security support
Add auto-configuration to integrate gRPC server applications
with Spring Security. This commit provides both standard
Spring Security support as well as OAuth support.

Closes gh-49047

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2026-03-19 15:12:31 -07:00
Chris BonoandPhillip Webb be3a1b7117 Add Spring gRPC test support
Add a testing module that can be used for testing Spring gRPC
server or client applications.

Closes gh-49046

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2026-03-19 15:12:30 -07:00
Chris BonoandPhillip Webb c35b21adb4 Add Spring gRPC client support
Add support for Spring gRPC client applications.

Closes gh-49045

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2026-03-19 15:12:30 -07:00
Chris BonoandPhillip Webb e61bb6df5b Add Spring gRPC server support
Add support for Spring gRPC server applications.

Closes gh-49044

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2026-03-19 15:12:30 -07:00
Stéphane NicollandEddú Meléndez edadf816ab Rename package for RabbitMQ support
This commit renames the RabbitMQ root packages from amqp to rabbitmq.

See gh-49620

Co-authored-by: Eddú Meléndez <eddu.melendez@gmail.com>
2026-03-19 08:04:16 +01:00
Stéphane NicollandEddú Meléndez b820d9feac Harmonize support to refer to RabbitMQ
This commit adapts description to refer to RabbitMQ rather than AMQP.

See gh-49620

Co-authored-by: Eddú Meléndez <eddu.melendez@gmail.com>
2026-03-19 08:04:16 +01:00
Stéphane NicollandEddú Meléndez 72b8a6ca05 Migrate Spring RabbitMQ support to spring-boot-rabbitmq
See gh-49620

Co-authored-by: Eddú Meléndez <eddu.melendez@gmail.com>
2026-03-19 08:04:14 +01:00
Andy Wilkinson 684e279d6f Merge branch '4.0.x'
Closes gh-49618
2026-03-16 18:01:32 +00:00
Andy Wilkinson 797253a447 Merge branch '3.5.x' into 4.0.x
Closes gh-49617
2026-03-16 18:00:39 +00:00
Stéphane Nicoll b12d40e8e5 Add support for Spring Batch MongoDB
This commit adds support for running Spring Batch jobs with a MongoDB
store. It aligns as much as possible to the JDBC counterpart, with
spring-boot-starter-batch-data-mongodb and spring-boot-starter-batch-data-mongodb-test.

As we do not have a way to initialize a MongoDB store at the moment,
this commit adds a conservative approach of executing commands defined
by the standard Spring Batch schema script.

Closes gh-43236
2026-03-16 12:11:19 +01:00
Brian Clozel 4b11e04e78 Deprecate RestTemplateBuilder#rootUri with replacement
This commit deprecates both `RootUriTemplateHandler` and
`RootUriBuilderFactory` types, along their usage in places like
`RestTemplateBuilder`.

`RestTemplateBuilder#rootUri` is now deprecated in favor of
`RestTemplateBuilder#baseUri`, which leverages Framework's
`DefaultUriBuilderFactory`.

Closes gh-48350
2026-02-24 16:18:09 +01:00
Phillip Webb 280af06373 Polish 2026-02-18 15:10:07 -08:00
Stéphane Nicoll f4156197b5 Fix checks 2026-02-18 08:17:51 +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
Andy Wilkinson 3100599005 Upgrade to Hibernate 7.2.1.Final
Closes gh-48857
2026-01-15 15:36:17 +00:00
Andy Wilkinson 0ffffee4bf Upgrade to Nullability Plugin 0.0.9
Closes gh-48638
2026-01-08 11:59:51 +00: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
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
Stéphane Nicoll 61e427c101 Merge branch '3.5.x'
Closes gh-48516
2025-12-12 16:24:45 +01:00
Stéphane Nicoll b05b01b0a7 Polish 2025-12-08 15:17:54 +01:00
Stéphane Nicoll a98b36efbb Start building against Spring Framework 7.0.2 snapshots
See gh-48439
2025-12-08 14:54:53 +01:00
Tran Ngoc Nhan 58d42475f3 Fix Javadoc reference for SampleJackson2OnlyApplication
See gh-48396

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
2025-12-05 10:13:04 -08:00
Andy Wilkinson cf1ecca81c Add missing spring-boot-restclient for Docker-based test
See gh-48253
2025-11-25 15:30:48 +00: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
Andy Wilkinson 81ec7aeb70 Fix clashing bean name with JsonTest and Jacksons 2 and 3
Fixes gh-48198
2025-11-20 09:14:46 +00:00
Phillip Webb 2685f4bf29 Change tomcat and jetty runtime modules to starters
Change `spring-boot-tomcat-runtime` and `spring-boot-jetty-runtime`
into starter POMs and reduce the number of dependencies needed for
`spring-boot-tomcat` and `spring-boot-jetty`.

The runtime starters provide only the jars required to run the
embedded server along with the module jar itself (excluding transitive
dependencies) and `spring-boot-webserver` (excluding transitive
dependencies).

The build setup required for an executable jar is slightly different
between Maven and Gradle. For Maven, the regular module is put in the
`provided` scope. For Gradle, the regular module remains in main
configuration and the runtime jar is put in the `providedRuntime`
configuration. The reference documentation has been updated to
show how to configure things if starters are being used.

Manual testing has been performed to ensure that wars build with Maven
and Gradle work with both Tomcat and Jetty in both deployed and
`java -jar` modes.

Closes gh-48175
2025-11-19 21:59:03 -08:00
Moritz Halbritter 4af532b8ee Add starters for Micrometer Metrics
This commit adds spring-boot-starter-micrometer-metrics and
spring-boot-starter-micrometer-metrics-test.

It also uses the new starters in smoke tests and in other starters,
which depended on spring-boot-micrometer-metrics.

Closes gh-48161
2025-11-18 09:28:53 +01:00
Phillip Webb 2e54aa6760 Merge branch '3.5.x'
Closes gh-48160
2025-11-17 21:00:09 -08:00