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>
This also removes the 'requiredVersion' setting from the
native-maven-plugin configuration, as this is deprecated in the native
build tools.
Close gh-47433
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>
Polish test starter to:
- Align dependencies of starters and their -test companions
- Pull in regular starters from test starters
See gh-46356
Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
This commit moves the spring-web dependency from implementation to
optional. It also adds an api dependency to spring-web in the rsocket
starter.
The reasoning behind this change is that RSocket can be used without
spring-web, and we want to make sure that consumers of the dependency
can achieve that goal, as they were able to in previous versions.
However, we believe that most RSocket-based applications need spring-web
as, without it, only the simple and not efficient implementation of
RouterMatcher is available. With the addition of exception handling
using ControllerAdvice, this change makes also sure that it works out
of the box with the starter.
Closes gh-47409
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
Make `spring-boot-test-autoconfigure` optionally depend on
`spring-boot-autoconfigure` so that it can be an `api` dependency
for `*-test` modules. Also relocate it to core.
See gh-47322
This commit moves the existing JDBC-based Spring Batch infrastructure
to a new 'spring-boot-batch-jdbc' module, while the existing module
only offers in-memory (aka resourceless) support.
The commit also updates the reference guide to provide some more
information about what's available and how to use it.
Closes gh-46307
Previously, spring-boot-devtools was only excluded from native images
built with Gradle but not with Maven. This inconsistency meant that
Maven builds would include devtools in the AOT processing classpath
and in the native image, causing build failures.
This commit harmonizes the situation and excludes devtools in a similar
fashion with Maven.
See gh-46533
Signed-off-by: academey <academey@gmail.com>
Spring Boot 4 requires Jakarta EE 11. Jersey 4 will support EE 11 but
its release schedule is uncertain. Furthermore, Jersey does not yet
support Jackson 3 and there's no clear timeline for when Jackson 3
will be supported.
In light of the above, this commit removes support for Jersey.
Reinstating support can be considered once there's a Jersey GA that
supports Jakarta EE 11 or its clear that one will be available in
time for Boot's GA in November. Ideally, support for Jackson 3 would
also be available before reinstating Jersey support.
Closes gh-47017
Spring Framework 7.0 requires a Servlet 6.1 baseline for Servlet containers.
Partial Servlet 6.1 support is available on the `main` Undertow branch,
but there isn't any milestone version available for the undertow 2.4
generation. At this stage of our 4.0 schedule, we think it's safer to drop
Undertow support now.
Closes: gh-46917
Restore the `spring-boot-autoconfigure-classic` module, but add
a starter and an extra `spring-boot-autoconfigure-classic-modules`
POM in order to push the exclusions further away.
This should allow `spring-boot-starter-classic` to be combined
with other starters and hopefully have the expected dependencies
resolved.
See gh-46233
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.
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Has been cancelledDetails
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:24], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Has been cancelledDetails
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:24], map[id:windows-latest name:Windows]) (push) Has been cancelledDetails
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:17], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Has been cancelledDetails
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:17], map[id:windows-latest name:Windows]) (push) Has been cancelledDetails
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Has been cancelledDetails
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:windows-latest name:Windows]) (push) Has been cancelledDetails
Run CodeQL Analysis / run-analysis (push) Has been cancelledDetails
Run System Tests / Java ${{ matrix.java.version}} (map[toolchain:false version:17]) (push) Has been cancelledDetails
Run System Tests / Java ${{ matrix.java.version}} (map[toolchain:true version:21]) (push) Has been cancelledDetails
Build and Deploy Snapshot / Trigger Docs Build (push) Has been cancelledDetails
Build and Deploy Snapshot / Verify (push) Has been cancelledDetails
108ca649 trimmed down the dependencies of spring-boot-starter-test
but it went too far. Marking spring-boot-webclient as non-transitive
meant that spring-boot-http-codec was no longer on the classpath.
However, it's a required dependency of the spring-boot-webclient
auto-configuration due to an auto-configuration after reference to
CodecsAutoConfiguration.class.
This commit adds spring-boot-http-codec as a direct non-transitive
dependency. This should be sufficient to allow
spring-boot-webclient's auto-configuration to function while still
minimizing the effects of adding spring-boot-starter-test to an app.
See gh-4629
efde264 corrected spring-boot-webclient by adding to it an api
dependency on spring-webflux. This had an unwanted side-effect on
the classpath of anything that depends on spring-boot-starter-test.
That classpath now contained all of the classes that are needed to
deduce that the web application type should be reactive. This
caused some smoke tests to fail as they'd incorrectly try to start
a reactive web server.
This commit updates spring-boot-starter-test so that its dependencies
on spring-boot-restclient and spring-boot-webclient are not
transitive. This prevents them from pulling in unwanted dependencies
such as spring-webflux by default, while making their classes and
auto-configuration available for classes that already depend on
spring-webflux and the like through some other route.
See gh-46292