Commit Graph

29141 Commits

Author SHA1 Message Date
Yanming Zhou 658764bfd8 Polish MetricsAutoConfiguration
Align `meterRegistryPostProcessor` with `meterRegistryCloser`, the
`@Bean` method shouldn't be public if the return type is not public.

See gh-45521

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2025-05-13 16:18:25 +02:00
Yanming Zhou 1325429e5e Polish PrometheusProperties
See gh-45503

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2025-05-13 16:14:52 +02:00
Stéphane Nicoll 1dfa5c721c Upgrade to Tomcat 11.0.7
Closes gh-45533
2025-05-13 15:58:00 +02:00
Stéphane Nicoll 84578d12a7 Upgrade to Micrometer Tracing 1.5.0
Closes gh-45532
2025-05-13 15:52:09 +02:00
Stéphane Nicoll f866339e2a Upgrade to Micrometer 1.15.0
Closes gh-45531
2025-05-13 15:52:05 +02:00
Stéphane Nicoll f3f6152502 Upgrade to Jetty 12.0.21
Closes gh-45530
2025-05-13 15:52:01 +02:00
Stéphane Nicoll 19d0af9d2d Upgrade to Jakarta Validation 3.1.1
Closes gh-45529
2025-05-13 15:51:57 +02:00
Stéphane Nicoll c19fa8062e Upgrade to Hibernate 7.0.0.CR1
Closes gh-45528
2025-05-13 15:51:53 +02:00
Stéphane Nicoll 7393418a36 Upgrade to Couchbase Client 3.8.1
Closes gh-45527
2025-05-13 15:51:49 +02:00
Stéphane Nicoll 7bb00396a1 Upgrade to Commons Logging 1.3.5
Closes gh-45526
2025-05-13 15:51:45 +02:00
Stéphane Nicoll 2a7dcd0eb7 Switch to task for dependency upgrades
Closes gh-45525
2025-05-13 15:47:57 +02:00
Stéphane Nicoll d8a9db534f Apply ConfigurationPropertySource where possible
See gh-18366
2025-05-13 13:42:55 +02:00
Stéphane Nicoll b3f35baed3 Add metadata support for types in arbitrary modules
Previously, if a ConfigurationProperties had a nested type or was
extending from a type located outside the compilation unit, no
metadata discovered on the source code was available (documentation and
explicit default value, if any). This typically happens when such a type
resides in another module.

This commit introduces `@ConfigurationPropertiesSource` as a way to
annotate such type and have metadata generated for them in their own
module.

Type-metadata is generated as one file per type and is reused
transparently whenever that type is used. As for module metadata, an
additional file can be crafted manually and will be merged when the
metadata for the type is generated.

The following is an example structure with two types where one has
an additional metadata:

META-iNF/
  spring/
    configuration-properties/
      additional/
        com.example.SourceOne.json
      com.example.SourceOne.json
      com.example.SourceTwo.json

Those files are used only by the annotation processor and are not meant
to be public API.

See gh-18366
2025-05-13 13:42:55 +02:00
Stéphane Nicoll 2fa8d38aa7 Move web-specific FailureAnalyzer to a more focused package
This commit moves PortInUseFailureAnalyzer to o.s.b.web.server as its
current location means the whole general failure analyzer package has
to know about web servers.

Closes gh-45524
2025-05-13 13:42:17 +02:00
Phillip Webb 7b08c07e7e Replace ClientHttpRequestFactorySettings.Redirects with HttpRedirects
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run Details
Build and Deploy Snapshot / Trigger Docs Build (push) Blocked by required conditions Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:24], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:24], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:17], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:17], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:21], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:22], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:22], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:windows-latest name:Windows]) (push) Waiting to run Details
Run System Tests / Java ${{ matrix.java.version}} (map[toolchain:false version:17]) (push) Waiting to run Details
Run System Tests / Java ${{ matrix.java.version}} (map[toolchain:true version:21]) (push) Waiting to run Details
Closes gh-45505
2025-05-12 21:58:00 -07:00
Olga Maciaszek-Sharma 8f6a9b9440 Support declarative HTTP Service clients
Add auto-configuration support for Spring Framework's HTTP Service
clients, supporting both `RestClient` and `WebClient` client types.

Configuration properties are provided under `spring.http.client.service`
and `spring.http.reactiveclient.service` names. Group specific
properties are available under `....service.group.<name>.`.

Auto-configuration support includes automatic registration of user
defined `HttpServiceGroupConfigurer` beans. `RestClientCustomizer` and
`WebClientCustomizer` beans are also supported.

Closes gh-31337

Co-authored-by: Rossen Stoyanchev <rossen.stoyanchev@broadcom.com>
Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2025-05-12 21:21:49 -07:00
Phillip Webb f1f54382ed Merge branch 'main' into 4.0.x 2025-05-12 17:58:06 -07:00
Phillip Webb 48ed394679 Remove `settings` suffix from http client properties
Build and Deploy Snapshot / Build and Deploy Snapshot (push) Waiting to run Details
Build and Deploy Snapshot / Trigger Docs Build (push) Blocked by required conditions Details
Build and Deploy Snapshot / Verify (push) Blocked by required conditions Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[early-access:true toolchain:true version:24], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[early-access:true toolchain:true version:24], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:17], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:21], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:21], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:22], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:false version:22], map[id:windows-latest name:Windows]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} name:Linux]) (push) Waiting to run Details
CI / ${{ matrix.os.name}} | Java ${{ matrix.java.version}} (map[toolchain:true version:23], map[id:windows-latest name:Windows]) (push) Waiting to run Details
Run System Tests / Java ${{ matrix.java.version}} (map[toolchain:false version:17]) (push) Waiting to run Details
Run System Tests / Java ${{ matrix.java.version}} (map[toolchain:true version:21]) (push) Waiting to run Details
Remove `spring.http.client` deprecation and change
`spring.http.reactiveclient.settings` to `spring.http.reactiveclient`.

Closes gh-45507
2025-05-12 17:55:02 -07:00
Yanming Zhou ef5031fd0e Stop considering "spring.batch.initialize-schema"
See gh-45380

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
2025-05-12 16:33:56 +02:00
Phillip Webb 1308629ae4 Disable GraphQL tests until we have a compatible release
See gh-45494
2025-05-09 17:38:12 -07:00
Stéphane Nicoll e7b4f65c68 Suppress `@Nullable` usage warnings in GraphQL tests
See gh-45494
2025-05-09 17:38:12 -07:00
Stéphane Nicoll 564bfeef95 Introduce GraphQL media type static final
See gh-45487
See gh-45494
2025-05-09 17:38:12 -07:00
Phillip Webb 36fb1e9b4b Replace Actuator @Nullable with @OptionalParameter
Closes gh-45389
2025-05-09 17:38:12 -07:00
Stéphane Nicoll a0944b00d0 Migrate to updated native hints API and new reachability JSON
Replace hint API calls with updated version and fix tests that
relied on previous JSON files.

See gh-45487

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2025-05-09 17:38:12 -07:00
Stéphane Nicoll 5ea0674bad Migrate to new HttpHeaders API
See gh-45487

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2025-05-09 17:38:12 -07:00
Stéphane Nicoll 6fceab2c90 Replace spring-jcl with vanilla commons-logging
See gh-45487

Co-authored-by: Phillip Webb <phil.webb@broadcom.com>
2025-05-09 17:38:11 -07:00
Stéphane Nicoll 111e710576 Deprecate ANT_PATH_MATCHER
Closes gh-45493
2025-05-09 17:38:11 -07:00
Stéphane Nicoll 05fb37d046 Adapt to Spring MVC API updates
See gh-45487
2025-05-09 17:38:11 -07:00
Phillip Webb c15418b693 Update actuator support to ensure CORS properties always apply
Update `AbstractWebFluxEndpointHandlerMapping` and
`AbstractWebMvcEndpointHandlerMapping` to ensure cors
configuration is applied.

See gh-45487
2025-05-09 17:38:11 -07:00
Phillip Webb 234e7414e2 Fix Jersey test by waiting for metrics
For some reason metrics are not always being recorded before the check
runs when a full build is running. Adding a sleep seems to "solve" the
problem.

See gh-45483
See gh-45404
2025-05-09 17:38:11 -07:00
Phillip Webb 69fb56a5e1 Fix test failures due to updated classpath
JSpecify is a new dependency and The Kafka upgrade now means
that Jackson YAML is on the classpath.

See gh-45487
See gh-45485
2025-05-09 17:38:11 -07:00
Stéphane Nicoll 69101f2ec6 Migrate from missing JettyHttpHandlerAdapter
Migrate to `ServletHttpHandlerAdapter` from `JettyHttpHandlerAdapter`
which has been removed in Spring Framework 7.

See gh-45487
2025-05-09 17:38:11 -07:00
Phillip Webb 3c9e4d69d8 Downgrade Elastic Client and Neo4J Driver for compatibility 2025-05-09 17:38:10 -07:00
Phillip Webb dde1ab4aa8 Fix spring-data relational imports
See gh-45488
2025-05-09 17:38:10 -07:00
Stéphane Nicoll 3b2c5e86da Upgrade Spring Projects to latest available Snapshot / Milestones
See gh-45487
See gh-45488
See gh-45489
See gh-45490
See gh-45491
See gh-45492
2025-05-09 17:38:10 -07:00
Stéphane Nicoll 0510cfa684 Refine '?' use in Kotlin code 2025-05-09 17:38:10 -07:00
Stéphane Nicoll 7035c0fa0a Upgrade to Kotlin 2.1.0
This commit upgrades to Kotlin 2.1.0. Two related dependencies have been
updated as well: Kotlin Coroutines to 1.10, and Kotlin Serialization to
1.8.

As of Kotlin 2, it is no longer possible to have a Java type and a
Kotlin type with the same name. As our code samples follow that
unfortunate pattern, this commit makes sure that the Kotlin sample code
does not depend on any of the Java counterpart and configure the kotlin
compilation plugin to ignore Java sources.

The minimum version of Gradle is 7.6.4. It bundles a version of Kotlin
that cannot compile a Kotlin build script when spring-core, compiled
with Kotlin 2.1, is on the classpath. Using Gradle 8.12 to run the DSL
tests avoids the problem.

Closes gh-45486

Co-authored-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
2025-05-09 17:38:10 -07:00
Stéphane Nicoll 5ce080f1bb Upgrade to Kafka 4.0.0
Closes gh-45485
2025-05-09 17:38:10 -07:00
Stéphane Nicoll 4b74619f47 Upgrade to Jakarta Annotation 3.0.0
Closes gh-45484
2025-05-09 17:38:10 -07:00
Stéphane Nicoll f1629ceba3 Upgrade to Jersey 4.0.0-M2
Closes gh-45483
2025-05-09 17:38:10 -07:00
Stéphane Nicoll e7588ac300 Upgrade to Jakarta WebSocket 2.2.0
Closes gh-45482
2025-05-09 17:38:10 -07:00
Stéphane Nicoll 9f02875d90 Upgrade to Hibernate Validator 9.0.0.CR1
Closes gh-45481
2025-05-09 17:38:09 -07:00
Stéphane Nicoll c928bd5841 Upgrade to Jakarta Validation 3.1.0
Closes gh-45480
2025-05-09 17:38:09 -07:00
Stéphane Nicoll 5d0c325b4c Upgrade to Jakarta Servlet 6.1.0
Closes gh-45479
2025-05-09 17:38:09 -07:00
Stéphane Nicoll eb1cecdc94 Upgrade to Jakarta WS RS 4.0.0
Closes gh-45478
2025-05-09 17:38:09 -07:00
Stéphane Nicoll 3881a79383 Upgrade to Hibernate 7.0.0.Beta3 and Jakarta Persistence 3.2.0
Closes gh-45476
Closes gh-45477
2025-05-09 17:38:09 -07:00
Stéphane Nicoll baefbc1aff Upgrade to Tomcat 11.0.6
Closes gh-45475
2025-05-09 17:38:09 -07:00
Phillip Webb fd061220a7 Upgrade to ArchUnit 1.4
Closes gh-45474
2025-05-09 17:38:09 -07:00
Andy Wilkinson 6e2049eb92 Compile project with Java 24 and '-release' Java 17
Closes gh-45472
2025-05-09 17:38:08 -07:00
Andy Wilkinson af220127d0 Prepare 4.0.x branch 2025-05-09 17:38:08 -07:00