Commit Graph
62277 Commits
Author SHA1 Message Date
Phillip Webb e45e629145 Merge branch '4.0.x' into 4.1.x 2026-09-15 20:44:24 -07:00
Phillip Webb c8bb386155 Add and polish javadoc links
See gh-51498
2026-09-15 20:35:44 -07:00
Phillip Webb 9fd0762b3c Fix javadoc empty <p> tag warnings 2026-09-15 20:33:44 -07:00
Andy Wilkinson ca4a73984e Merge branch '4.0.x' into 4.1.x
Closes gh-51771
2026-09-15 16:14:02 +01:00
Andy Wilkinson 7029b721f2 Merge pull request #51750 from ngocnhan-tran1996
Closes gh-51750

* gh-51750:
  Update Spring Framework reference links
2026-09-15 16:13:20 +01:00
Tran Ngoc Nhan a0ea4cd367 Update Spring Framework reference links
Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>

See gh-51750
2026-09-15 16:12:04 +01:00
Andy Wilkinson a6e2eb9f55 Merge pull request #51724 from dlwhdgus0810
Closes gh-51724

* gh-51724:
  Apply cookie handling to reactive HttpComponents connector
2026-09-15 13:30:44 +01:00
Hyun Lee fa8ecccc37 Apply cookie handling to reactive HttpComponents connector
The spring.http.clients.cookie-handling property and
HttpClientSettings.cookieHandling() were honored by every imperative
ClientHttpRequestFactoryBuilder and by the Jetty, JDK and Reactor
ClientHttpConnectorBuilders, but HttpComponentsHttpAsyncClientBuilder
ignored the setting. As a result, a WebClient backed by Apache
HttpComponents kept storing cookies even when cookie handling was
disabled.

Map the setting to the default request config's cookie spec, as
HttpComponentsHttpClientBuilder already does, and document the property
alongside the other global HTTP client settings.

See gh-51724

Signed-off-by: Hyun Lee <dlwhdugs4147@gmail.com>
2026-09-15 13:22:25 +01:00
Andy Wilkinson a8f1a99f7d Merge branch '4.0.x' into 4.1.x
Closes gh-51765
2026-09-15 13:10:54 +01:00
Andy Wilkinson 6387c3791c Merge pull request #51739 from ngocnhan-tran1996
Closes gh-51739

* gh-51739:
  Update testcontainers javadoc links
2026-09-15 13:10:44 +01:00
Tran Ngoc Nhan f8c3831792 Update testcontainers javadoc links
Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>

See gh-51739
2026-09-15 13:10:24 +01:00
Andy Wilkinson 7612f4a222 Merge branch '4.0.x' into 4.1.x
Closes gh-51763
2026-09-15 13:03:03 +01:00
Andy Wilkinson 38a305d1d2 Merge pull request #51722 from noojung
Closes gh-51722

* gh-51722:
  Fix duplicated tests
2026-09-15 13:01:50 +01:00
Hyunwoo Jung ed63da9f5d Fix duplicated tests
Signed-off-by: Hyunwoo Jung <hyunwoojung@kakao.com>

See gh-51722
2026-09-15 12:48:22 +01:00
Phillip Webb 9fff25f9ff Merge branch '4.0.x' into 4.1.x
Closes gh-51747
2026-09-14 20:27:17 -07:00
Phillip Webb 036caad4e2 Fix reference to restart property
Correct incorrect `spring.devtools.remote.restart.enabled` property
reference to `spring.devtools.restart.enabled`.

Closes gh-51743
2026-09-14 20:25:05 -07:00
Phillip Webb bd1ae5ede0 Merge branch '4.0.x' into 4.1.x
Closes gh-51745
2026-09-14 18:09:52 -07:00
Phillip Webb 9c851cf50a Merge pull request #51744 from icikle
Closes gh-51744

* pr/51744:
  Polish 'Fix inflater cache race in NestedJarFileResources'
  Fix inflater cache race in NestedJarFileResources
2026-09-14 18:09:40 -07:00
Phillip Webb d6aac54e2e Polish 'Fix inflater cache race in NestedJarFileResources'
See gh-51744
2026-09-14 17:37:06 -07:00
Ian Kettle b103aaa1f6 Fix inflater cache race in NestedJarFileResources
Update `NestedJarFileResources` to fix a race condition that could
result in a `NullPointerException`.

The methods `getOrCreateInflater` and `endOrCacheInflater` both
synchronize on a local `inflaterCache` variable but attempted to use the
`this.inflaterCache` instance which could be set to null.

The `releaseInflators` method had a synchronized block for ending each
inflater but the cache was being nulled out outside the block meaning that
the other 2 methods mentioned could hit the race condition.

Signed-off-by: Ian Kettle <25729118+icikle@users.noreply.github.com>

See gh-51744
2026-09-14 17:34:45 -07:00
Stéphane Nicoll 1d07863779 Merge branch '4.0.x' into 4.1.x
Closes gh-51741
2026-09-14 14:36:23 +02:00
Stéphane Nicoll b923033cb3 Use Landlock-based sandboxing in homebrew verification tests
Closes gh-51740
2026-09-14 14:36:12 +02:00
Stéphane Nicoll cd6efbd910 Merge branch '4.0.x' into 4.1.x
Closes gh-51730
2026-09-14 11:42:14 +02:00
Stéphane Nicoll 252dce0361 Merge pull request #51708 from ohchanKyu
Closes gh-51708

* fix-devtools-reactive-web-environment-detection:
  Polish "Fix detection of reactive web environments in DevTools"
  Fix detection of reactive web environments in DevTools
2026-09-14 11:42:09 +02:00
Stéphane Nicoll 5c799bc0cf Polish "Fix detection of reactive web environments in DevTools"
See gh-51708
2026-09-14 11:34:05 +02:00
ohchanKyu f5b563934a Fix detection of reactive web environments in DevTools
DevToolsPropertyDefaultsPostProcessor looked for
ConfigurableReactiveWebEnvironment
in org.springframework.boot.web.reactive.context by name, but the class
moved to org.springframework.boot.web.context.reactive in 4.0. As a
result, reactive web applications were never identified as web
applications and the hint about setting logging.level.web to DEBUG was
not logged for them.

ConfigurableReactiveWebEnvironment is part of spring-boot, so it is now
referenced directly rather than by name. The servlet environment check
is unchanged as spring-web is an optional dependency.

See gh-51708

Signed-off-by: ohchanKyu <okc0202@naver.com>
2026-09-14 11:09:40 +02:00
Stéphane Nicoll 8b6a7863a9 Merge branch '4.0.x' into 4.1.x
Closes gh-51728
2026-09-14 10:58:39 +02:00
Stéphane Nicoll 96f5c74b03 Merge pull request #51709 from ohchanKyu
Closes gh-51709

* fix-test-database-replace-metadata-default:
  Fix documented default of spring.test.database.replace
2026-09-14 10:58:33 +02:00
ohchanKyu 911c4a4326 Fix documented default of spring.test.database.replace
The default of @AutoConfigureTestDatabase's replace attribute changed
from ANY to NON_TEST in 3.4 but the manually declared metadata for
spring.test.database.replace still advertised "any" as the default.

See gh-51709

Signed-off-by: ohchanKyu <okc0202@naver.com>
2026-09-14 10:57:58 +02:00
Stéphane Nicoll 5c7eea8a84 Merge branch '4.0.x' into 4.1.x
Closes gh-51720
2026-09-13 17:21:20 +02:00
Stéphane Nicoll 37ba142c04 Merge pull request #51719 from ngocnhan-tran1996
Closes gh-51719

* remove-backtick:
  Remove unnecessary backtick in author tag
2026-09-13 17:15:12 +02:00
Tran Ngoc Nhan 338ac4b490 Remove unnecessary backtick in author tag
See gh-51719

Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
2026-09-13 17:14:27 +02:00
Andy Wilkinson 885720ae66 Merge branch '4.0.x' into 4.1.x
Closes gh-51667
2026-09-11 12:55:59 +01:00
Andy Wilkinson d08d6d053a Merge pull request #51666 from ohchanKyu
Closes gh-51666

* gh-51666:
  Polish "Use TLS port for Docker Compose RabbitMQ connection when SSL is configured"
  Use TLS port for Docker Compose RabbitMQ connection when SSL is configured
2026-09-11 12:47:17 +01:00
Andy Wilkinson 18295bf297 Polish "Use TLS port for Docker Compose RabbitMQ connection when SSL is configured"
See gh-51666

Signed-off-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
2026-09-11 12:42:51 +01:00
ohchanKyu 458ed72f55 Use TLS port for Docker Compose RabbitMQ connection when SSL is configured
When a rabbitmq Docker Compose service has SSL bundle labels,
RabbitDockerComposeConnectionDetailsFactory created an SslBundle but
still resolved the address from container port 5672, the plain AMQP
listener. As the connection factory enables SSL when an SslBundle is
present, the TLS handshake was attempted against the non-TLS listener
and the connection failed.

The address is now resolved from container port 5671 when an SslBundle
is present, matching RabbitStreamDockerComposeConnectionDetailsFactory
and the Testcontainers-based RabbitContainerConnectionDetailsFactory.
The SSL integration test now opens a connection using the resolved
address and SslBundle so that it fails without this fix.

Signed-off-by: ohchanKyu <okc0202@naver.com>

See gh-51666
2026-09-11 12:35:40 +01:00
Andy Wilkinson 9c7577588d Merge branch '4.0.x' into 4.1.x
Closes gh-51663
2026-09-11 08:18:31 +01:00
Andy Wilkinson 5541ab2424 Merge pull request #51660 from ngocnhan-tran1996
Closes gh-51660

* gh-51660:
  Update Jackson 3 Javadoc links
2026-09-11 08:18:21 +01:00
Tran Ngoc Nhan ba9c9483e1 Update Jackson 3 Javadoc links
Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>

See gh-51660
2026-09-11 08:17:33 +01:00
Stéphane Nicoll e55f120d8a Merge branch '4.0.x' into 4.1.x
Closes gh-51658
2026-09-10 16:39:50 +02:00
Stéphane Nicoll a7d90d3532 Merge pull request #51655 from JunggiKim
Closes gh-51655

* perf/changelog-compute-differences:
  Avoid rebuilding metadata maps when computing the changelog
2026-09-10 16:39:43 +02:00
Andy Wilkinson 2fbc10fbaf Merge pull request #51597 from o-shevchenko
Closes gh-51597

* gh-51597:
  Document baggage propagation over gRPC
2026-09-10 15:35:27 +01:00
Junggi Kim 9a09c2842b Avoid rebuilding metadata maps when computing the changelog
Changelog.computeDifferences() called
ConfigurationMetadataRepository.getAllProperties() from inside its main
loop. The default repository implementation builds a new map each time
that method is called, so the new version's properties were rebuilt once
per property of the old version. The ids that had already been seen were
also tracked in an ArrayList, turning each membership check into a linear
scan.

Read the properties of each repository once and use the old properties
map itself to detect the properties that have been added.

Computing the changelog between Spring Boot 3.4.0 and 3.5.0 (2,498 and
2,555 properties) drops from 203ms to 0.5ms and the generator's peak
memory from 302MB to 91MB. The generated asciidoc is byte for byte
identical.

See gh-51655

Signed-off-by: Junggi Kim <kimjg2477@gmail.com>
2026-09-10 16:35:18 +02:00
Oleksandr Shevchenko 020584c36a Document baggage propagation over gRPC
Baggage is already propagated over gRPC by the auto-configured
Micrometer observation interceptors: on the server side the
ObservationGrpcServerInterceptor hands the incoming metadata to the
tracing observation handlers, which extract the W3C baggage header as
well as the individual metadata keys listed in
management.tracing.baggage.remote-fields, and on the client side the
ObservationGrpcClientInterceptor writes them to the metadata of
outgoing calls. This was not documented, and it is easy to miss that
it requires micrometer-core on the classpath.

This commit adds an Observability section to the gRPC server
documentation, extends the gRPC client Observability section, and
mentions gRPC in the baggage section of the tracing documentation.

See gh-51597

Signed-off-by: Oleksandr Shevchenko <oleksandr.shevchenko@datarobot.com>
2026-09-10 15:33:57 +01:00
Andy Wilkinson 5b3631bfe9 Merge branch '4.0.x' into 4.1.x
Closes gh-51651
2026-09-09 15:31:57 +01:00
Andy Wilkinson 69ad59c413 Merge pull request #51551 from COBI-98
Closes gh-51551

* gh-51551:
  Polish "Add SBOM manifest attributes to repackaged Maven wars"
  Add SBOM manifest attributes to repackaged Maven wars
2026-09-09 15:31:48 +01:00
Andy Wilkinson 007ca201e1 Polish "Add SBOM manifest attributes to repackaged Maven wars"
See gh-51551

Signed-off-by: Andy Wilkinson <andy.wilkinson@broadcom.com>
2026-09-09 14:44:51 +01:00
COBI-98 bfd05e38b5 Add SBOM manifest attributes to repackaged Maven wars
Packager#isCycloneDxBom only recognized CycloneDX SBOMs beneath
META-INF/sbom/. In a war, the CycloneDX Maven plugin's output is
packaged beneath WEB-INF/classes/META-INF/sbom/, so repackaging did
not add the SBOM manifest attributes.

Also check beneath Layout#getClassesLocation(), which findMainMethod
already uses to locate application classes. Continue to support the
root location used by jars.

Signed-off-by: COBI-98 <tkdgus968@naver.com>

See gh-51551
2026-09-09 14:44:33 +01:00
Andy Wilkinson 6c0d47e3da Merge branch '4.0.x' into 4.1.x
Closes gh-51647
2026-09-09 11:00:01 +01:00
Andy Wilkinson d34a479879 Merge pull request #51635 from noojung
Closes gh-51635

* gh-51635:
  Avoid using the deprecated Project.getProperties method
2026-09-09 10:57:41 +01:00