304 Commits
Author SHA1 Message Date
Andy Wilkinson 11510e621a Merge branch '4.1.x'
Closes gh-51638
2026-09-09 08:08:09 +01:00
Andy Wilkinson fd1dec5794 Merge branch '4.0.x' into 4.1.x
Closes gh-51637
2026-09-09 08:07:53 +01:00
Hyunwoo Jung fd1fd6d285 Avoid implicit property lookup in parent projects
Gradle 9.6 deprecated the implicit lookup of properties in parent
projects, which currently causes the build to emit deprecation
warnings and will become an error in Gradle 10.

The settings script for the gradle/plugins build sets properties
from the root gradle.properties file only on its root project. The
cycle-detection-plugin subproject then resolves javaFormatVersion
and checkstyleToolVersion by walking up to its parent, which
triggers the deprecation.

This commit uses GradleLifecycle#beforeProject rather than
Gradle#rootProject so that the properties are defined directly on
every project in the build. As an isolated action, it also avoids
carrying the settings script into each project's configuration,
which keeps the build friendlier to the configuration cache.

It also enables the NO_IMPLICIT_LOOKUP_IN_PARENT_PROJECTS feature
preview so that any reintroduction of the deprecated behavior fails
the build rather than only emitting a warning.

Signed-off-by: Hyunwoo Jung <hyunwoojung@kakao.com>

See gh-51625
2026-09-09 08:00:59 +01:00
Stéphane Nicoll 21f7390944 Polish "Add AMQP 1.0 RabbitMQ auto-configuration"
See gh-49857
2026-07-15 18:11:53 +02:00
Eddú Meléndez 0ed57a6109 Add AMQP 1.0 RabbitMQ auto-configuration
See gh-49857

Signed-off-by: Eddú Meléndez <eddu.melendez@gmail.com>
2026-07-15 18:11:45 +02:00
Stéphane Nicoll b5ba1ec85c Add AMQP 1.0 generic auto-configuration
This commit adds auto-configuration for the generic AMQP 1.0 client
in Spring AMQP 4.1, using Qpid ProtonJ. Support for connection factory,
client and listener endpoints are available.

The "spring.amqp" namespace exposes settings to connect to an AMQP 1.0
compliant broker and customize client and listeners settings. Docker
compose and testcontainers support using RabbitMQ, ActiveMQ, and Artemis
have been added too.

Closes gh-49678
2026-07-15 15:21:10 +02:00
Stéphane Nicoll f48cc3ac10 Move Spring AMQP 0.9 support to spring-boot-rabbitmq
Now that Spring AMQP supports AMQP 1.0 as well, we need to straighten
out our existing support. AMQP 0.9 is RabbitMQ specific, so we can no
longer refer it to "amqp". This commit migrates the existing support
to spring-boot-rabbitmq and renames the starters as well.

For continuity, users should migrate from "spring-boot-starter-amqp"
to "spring-boot-starter-rabbitmq". While the root package has been
changed for consistency, most names are the same, including
configuration properties still in the "spring.rabbitmq" namespace.

Keys to configure the version of the RabbitMQ clients have migrated to
'rabbitmq.client' and 'rabbitmq.stream.client' respectively.

Closes gh-49677
2026-07-15 15:10:09 +02: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 e96ca4af56 Update headers to use quotes consistently
Closes gh-50397
2026-05-14 14:59:43 +01:00
Stéphane Nicoll 9ad6722f00 Add dependency management for spring-boot-web-server-test
Closes gh-50224
2026-04-26 21:20:35 +02: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
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
Stéphane Nicoll f728235906 Revert "Introduce Generic AMQP 1.0 client support"
This reverts commit 8dde82b557, c388dc92
5b7f0f726b, and
2d71ef94ed.

See gh-49621
2026-03-20 11:02:35 +01: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 Nicoll c388dc92f1 Add AMQP 1.0 client auto-configuration
This commit adds auto-configuration for the generic AMQP 1.0 client
in Spring AMQP 4.1, using Qpid ProtonJ. The auto-configuration provides
an AmqpConnectionFactory as well as an AmqpClient with standard
customizer callbacks. The "spring.amqp" namespace exposes settings to
connect to an AMQP 1.0 compliant broker. Docker compose and
testcontainers support using RabbitMQ have been added too.

Closes gh-49621
2026-03-19 15:46:47 +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
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
Andy Wilkinson 6cc6ec06a0 Merge branch '4.0.x'
Closes gh-49524
2026-03-09 11:53:13 +00:00
Andy Wilkinson 1e09be7f1c Adding missing starter for Spring REST Docs
Closes gh-48289
2026-03-09 11:50:17 +00:00
Phillip Webb b0f9cee6f0 Merge branch '4.0.x'
Closes gh-49250
2026-02-17 22:27:01 -08: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 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 b6ba0cd141 Merge branch '3.5.x' into 4.0.x
Closes gh-48916
2026-01-20 18:02:33 +00:00
Andy Wilkinson 30b5b73f5f Upgrade to Develocity Conventions 0.0.25
Closes gh-48915
2026-01-20 18:01:38 +00:00
Andy Wilkinson 252b218ac9 Correct renaming of Kotlinx Serialization JSON starters
Closes gh-48262
2025-12-18 14:42:24 +00:00
Stéphane Nicoll 61e427c101 Merge branch '3.5.x'
Closes gh-48516
2025-12-12 16:24:45 +01:00
Phillip Webb 64ea2fdd24 Fix spring-boot-kotlin-serialization-json starter name
Rename `spring-boot-starter-kotlin-serialization` to
`spring-boot-starter-kotlin-serialization-json` to align with module.

Fixes gh-48262
2025-12-01 11:51:53 -08: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
Andy Wilkinson 5699915383 Rename module for Kotlinx Serialization JSON support
Closes gh-48076
2025-11-12 17:34:28 +00: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
Moritz Halbritter e9172d9f51 Split spring-boot-micrometer-tracing into Brave and OpenTelemetry specific module
Closes gh-47953
2025-11-05 12:14:13 +01:00
Andy Wilkinson 635e766aaf Make it easier to create executable and deployable war
Closes gh-46944
2025-10-22 10:13:46 +01:00
Stéphane Nicoll 2ae72ecf4b Drop some transitive starters
This commit removes the SQL and Reactive starters as their only usage
is transitive.

Closes gh-47378
2025-10-21 14:57:52 +02:00
Andy Wilkinson 81aa674adb Remove support for embedded launch scripts
Closes gh-47666
2025-10-20 20:03:14 +01:00
onobc 4aaa1dfb5f Remove Spring Pulsar Reactive support
This removes the auto-configuration for Spring Pulsar Reactive.

Consolidates the PulsarConfiguration into the PulsarAutoConfiguration because
there is no longer a need to factor out the common components between Spring
Pulsar and Spring Pulsar Reactive.

See gh-47707

Signed-off-by: onobc <chris.bono@gmail.com>
2025-10-20 18:15:34 +02:00
Phillip WebbandAndy Wilkinson e7f3ae19f8 Add Jackson 2 smoke tests
See gh-47688

Co-authored-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
2025-10-17 13:17:37 -07:00
Andy Wilkinson e9084ddd86 Provide auto-configuration for Jackson 2
See gh-47688
2025-10-17 13:17:08 -07:00
Phillip Webb 61c8fa2e1c Remove support for Spring Session Hazelcast
Closes gh-47661
2025-10-16 10:42:14 -07:00
Phillip Webb c477d3b8b4 Remove support for Spring Session Data MongoDB
Closes gh-47662
2025-10-16 10:38:45 -07:00
Stéphane Nicoll 36c2432f69 Rename 'spring-boot-tx' module to 'spring-boot-transaction'
Closes gh-47603
2025-10-16 09:14:20 +02:00
Moritz Halbritter 2890bd8382 Add missing "spring-boot-starter-batch-jdbc-test" to the Gradle build 2025-10-15 12:01:55 +02:00
Andy Wilkinson 885f90da0c Introduce spring-boot-webclient-test
See gh-46356
See gh-47322
2025-10-10 12:11:43 +01:00
Phillip Webb f4e8cacbcd Polish 2025-10-09 22:17:24 -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