From 69322fe3564bd303c1aab630aa0db0c9dd4f1faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Thu, 7 Aug 2025 14:20:57 +0200 Subject: [PATCH 1/6] Upgrade to Angus Mail 2.0.4 Closes gh-46711 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 3c217767784..4db501ab662 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -47,7 +47,7 @@ bom { .formatted(version.componentInts())) } } - library("Angus Mail", "2.0.3") { + library("Angus Mail", "2.0.4") { group("org.eclipse.angus") { modules = [ "angus-core", From ded8976cb131346d22ddbc1566f3589186699641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Thu, 7 Aug 2025 14:21:01 +0200 Subject: [PATCH 2/6] Upgrade to Hibernate 6.6.24.Final Closes gh-46712 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 4db501ab662..09852dd589c 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -532,7 +532,7 @@ bom { releaseNotes("https://github.com/hazelcast/hazelcast/releases/tag/v{version}") } } - library("Hibernate", "6.6.22.Final") { + library("Hibernate", "6.6.24.Final") { group("org.hibernate.orm") { modules = [ "hibernate-agroal", From fd804d0a3df61210b840bfc6f8d07abe11024a0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Thu, 7 Aug 2025 14:21:05 +0200 Subject: [PATCH 3/6] Upgrade to Hibernate Validator 8.0.3.Final Closes gh-46713 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 09852dd589c..69125e6298d 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -564,7 +564,7 @@ bom { .formatted(version.major(), version.minor())) } } - library("Hibernate Validator", "8.0.2.Final") { + library("Hibernate Validator", "8.0.3.Final") { group("org.hibernate.validator") { modules = [ "hibernate-validator", From 5f314146e66cb57af6ba83f07d76b19fb159a386 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Thu, 7 Aug 2025 14:21:09 +0200 Subject: [PATCH 4/6] Upgrade to Jetty 12.0.24 Closes gh-46714 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- .../web/embedded/jetty/JettyReactiveWebServerFactory.java | 4 ++-- .../web/embedded/jetty/JettyServletWebServerFactory.java | 4 ++-- .../jetty/JettyReactiveWebServerFactoryTests.java | 6 +++--- .../embedded/jetty/JettyServletWebServerFactoryTests.java | 8 ++++---- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 69125e6298d..fcfe24e0c30 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1004,7 +1004,7 @@ bom { ] } } - library("Jetty", "12.0.23") { + library("Jetty", "12.0.24") { group("org.eclipse.jetty.ee10") { bom("jetty-ee10-bom") } diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactory.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactory.java index e23d9a0c8b2..f5704c99c61 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactory.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactory.java @@ -31,10 +31,10 @@ import org.eclipse.jetty.ee10.servlet.ServletHolder; import org.eclipse.jetty.http2.server.HTTP2CServerConnectionFactory; import org.eclipse.jetty.server.AbstractConnector; import org.eclipse.jetty.server.ConnectionFactory; -import org.eclipse.jetty.server.ConnectionLimit; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; +import org.eclipse.jetty.server.NetworkConnectionLimit; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.handler.StatisticsHandler; @@ -189,7 +189,7 @@ public class JettyReactiveWebServerFactory extends AbstractReactiveWebServerFact server.setHandler(addHandlerWrappers(contextHandler)); JettyReactiveWebServerFactory.logger.info("Server initialized with port: " + port); if (this.maxConnections > -1) { - server.addBean(new ConnectionLimit(this.maxConnections, server)); + server.addBean(new NetworkConnectionLimit(this.maxConnections, server)); } if (Ssl.isEnabled(getSsl())) { customizeSsl(server, address); diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactory.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactory.java index 9fb4a7feb14..d8800aa3c58 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactory.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactory.java @@ -55,12 +55,12 @@ import org.eclipse.jetty.http.SetCookieParser; import org.eclipse.jetty.http2.server.HTTP2CServerConnectionFactory; import org.eclipse.jetty.server.AbstractConnector; import org.eclipse.jetty.server.ConnectionFactory; -import org.eclipse.jetty.server.ConnectionLimit; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.HttpConfiguration; import org.eclipse.jetty.server.HttpConnectionFactory; import org.eclipse.jetty.server.HttpCookieUtils; +import org.eclipse.jetty.server.NetworkConnectionLimit; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Response; import org.eclipse.jetty.server.Server; @@ -175,7 +175,7 @@ public class JettyServletWebServerFactory extends AbstractServletWebServerFactor server.setHandler(addHandlerWrappers(context)); this.logger.info("Server initialized with port: " + port); if (this.maxConnections > -1) { - server.addBean(new ConnectionLimit(this.maxConnections, server.getConnectors())); + server.addBean(new NetworkConnectionLimit(this.maxConnections, server.getConnectors())); } if (Ssl.isEnabled(getSsl())) { customizeSsl(server, address); diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactoryTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactoryTests.java index 7ecbe5a9326..9334162aaeb 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactoryTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyReactiveWebServerFactoryTests.java @@ -23,8 +23,8 @@ import java.util.Arrays; import java.util.List; import org.awaitility.Awaitility; -import org.eclipse.jetty.server.ConnectionLimit; import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.NetworkConnectionLimit; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.junit.jupiter.api.Disabled; @@ -145,9 +145,9 @@ class JettyReactiveWebServerFactoryTests extends AbstractReactiveWebServerFactor factory.setMaxConnections(1); this.webServer = factory.getWebServer(new EchoHandler()); Server server = ((JettyWebServer) this.webServer).getServer(); - ConnectionLimit connectionLimit = server.getBean(ConnectionLimit.class); + NetworkConnectionLimit connectionLimit = server.getBean(NetworkConnectionLimit.class); assertThat(connectionLimit).isNotNull(); - assertThat(connectionLimit.getMaxConnections()).isOne(); + assertThat(connectionLimit.getMaxNetworkConnectionCount()).isOne(); } @Test diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactoryTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactoryTests.java index e1d6da2bdff..53d3706a422 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactoryTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/jetty/JettyServletWebServerFactoryTests.java @@ -48,9 +48,9 @@ import org.eclipse.jetty.ee10.webapp.AbstractConfiguration; import org.eclipse.jetty.ee10.webapp.Configuration; import org.eclipse.jetty.ee10.webapp.WebAppContext; import org.eclipse.jetty.server.AbstractConnector; -import org.eclipse.jetty.server.ConnectionLimit; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Handler; +import org.eclipse.jetty.server.NetworkConnectionLimit; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.ServerConnector; import org.eclipse.jetty.server.SslConnectionFactory; @@ -562,9 +562,9 @@ class JettyServletWebServerFactoryTests extends AbstractServletWebServerFactoryT factory.setMaxConnections(1); this.webServer = factory.getWebServer(); Server server = ((JettyWebServer) this.webServer).getServer(); - ConnectionLimit connectionLimit = server.getBean(ConnectionLimit.class); + NetworkConnectionLimit connectionLimit = server.getBean(NetworkConnectionLimit.class); assertThat(connectionLimit).isNotNull(); - assertThat(connectionLimit.getMaxConnections()).isOne(); + assertThat(connectionLimit.getMaxNetworkConnectionCount()).isOne(); } @Test @@ -574,7 +574,7 @@ class JettyServletWebServerFactoryTests extends AbstractServletWebServerFactoryT this.webServer = factory.getWebServer(); Server server = ((JettyWebServer) this.webServer).getServer(); assertThat(server.getConnectors()).isEmpty(); - ConnectionLimit connectionLimit = server.getBean(ConnectionLimit.class); + NetworkConnectionLimit connectionLimit = server.getBean(NetworkConnectionLimit.class); assertThat(connectionLimit).extracting("_connectors") .asInstanceOf(InstanceOfAssertFactories.list(AbstractConnector.class)) .hasSize(1); From a7eb7b164c1f028f1fd65e1033ae4757468456f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Thu, 7 Aug 2025 14:21:13 +0200 Subject: [PATCH 5/6] Upgrade to MySQL 9.4.0 Closes gh-46715 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index fcfe24e0c30..04269e62614 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1552,7 +1552,7 @@ bom { .formatted(version.toString().replace(".jre11", ""))) } } - library("MySQL", "9.3.0") { + library("MySQL", "9.4.0") { upgradePolicy = "same-major-version" group("com.mysql") { modules = [ From 815bdc528bf1cd41448d2a96f6df71c022d6347d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Thu, 7 Aug 2025 14:21:17 +0200 Subject: [PATCH 6/6] Upgrade to Pulsar 3.3.8 Closes gh-46716 --- .../spring-boot-autoconfigure/build.gradle | 12 +++++++++--- .../spring-boot-dependencies/build.gradle | 2 +- spring-boot-project/spring-boot-docs/build.gradle | 8 ++++++-- .../spring-boot-starter-pulsar-reactive/build.gradle | 4 +++- .../spring-boot-starter-pulsar/build.gradle | 4 +++- .../spring-boot-testcontainers/build.gradle | 8 ++++++-- 6 files changed, 28 insertions(+), 10 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/build.gradle b/spring-boot-project/spring-boot-autoconfigure/build.gradle index 9febd3924cc..02eec5d533a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-autoconfigure/build.gradle @@ -53,7 +53,9 @@ dependencies { dockerTestImplementation("org.testcontainers:junit-jupiter") dockerTestImplementation("org.testcontainers:mongodb") dockerTestImplementation("org.testcontainers:neo4j") - dockerTestImplementation("org.testcontainers:pulsar") + dockerTestImplementation("org.testcontainers:pulsar") { + exclude group: "commons-logging", module: "commons-logging" + } dockerTestImplementation("org.testcontainers:testcontainers") optional("co.elastic.clients:elasticsearch-java") { @@ -210,8 +212,12 @@ dependencies { optional("org.springframework.data:spring-data-redis") optional("org.springframework.graphql:spring-graphql") optional("org.springframework.hateoas:spring-hateoas") - optional("org.springframework.pulsar:spring-pulsar") - optional("org.springframework.pulsar:spring-pulsar-reactive") + optional("org.springframework.pulsar:spring-pulsar") { + exclude group: "commons-logging", module: "commons-logging" + } + optional("org.springframework.pulsar:spring-pulsar-reactive") { + exclude group: "commons-logging", module: "commons-logging" + } optional("org.springframework.security:spring-security-acl") optional("org.springframework.security:spring-security-config") optional("org.springframework.security:spring-security-data") { diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 04269e62614..0863a1b4016 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1716,7 +1716,7 @@ bom { releaseNotes("https://github.com/prometheus/client_java/releases/tag/parent-{version}") } } - library("Pulsar", "3.3.7") { + library("Pulsar", "3.3.8") { group("org.apache.pulsar") { bom("pulsar-bom") { permit("org.apache.maven.plugin-tools:maven-plugin-annotations") diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 4fa6d765328..2bbd49dd05f 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -160,8 +160,12 @@ dependencies { implementation("org.springframework.kafka:spring-kafka-test") { exclude group: "commons-logging", module: "commons-logging" } - implementation("org.springframework.pulsar:spring-pulsar") - implementation("org.springframework.pulsar:spring-pulsar-reactive") + implementation("org.springframework.pulsar:spring-pulsar") { + exclude group: "commons-logging", module: "commons-logging" + } + implementation("org.springframework.pulsar:spring-pulsar-reactive") { + exclude group: "commons-logging", module: "commons-logging" + } implementation("org.springframework.restdocs:spring-restdocs-mockmvc") implementation("org.springframework.restdocs:spring-restdocs-restassured") implementation("org.springframework.restdocs:spring-restdocs-webtestclient") diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar-reactive/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar-reactive/build.gradle index 672670780c8..0a71a42c112 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar-reactive/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar-reactive/build.gradle @@ -22,7 +22,9 @@ description = "Starter for using Spring for Apache Pulsar Reactive" dependencies { api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter")) - api("org.springframework.pulsar:spring-pulsar-reactive") + api("org.springframework.pulsar:spring-pulsar-reactive") { + exclude group: "commons-logging", module: "commons-logging" + } } checkRuntimeClasspathForConflicts { diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar/build.gradle index f9e8a895276..69505deadb6 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-pulsar/build.gradle @@ -22,7 +22,9 @@ description = "Starter for using Spring for Apache Pulsar" dependencies { api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter")) - api("org.springframework.pulsar:spring-pulsar") + api("org.springframework.pulsar:spring-pulsar") { + exclude group: "commons-logging", module: "commons-logging" + } } checkRuntimeClasspathForConflicts { diff --git a/spring-boot-project/spring-boot-testcontainers/build.gradle b/spring-boot-project/spring-boot-testcontainers/build.gradle index 18b786907b3..aacc89bd685 100644 --- a/spring-boot-project/spring-boot-testcontainers/build.gradle +++ b/spring-boot-project/spring-boot-testcontainers/build.gradle @@ -65,7 +65,9 @@ dependencies { dockerTestImplementation("org.springframework.data:spring-data-redis") dockerTestImplementation("org.springframework.kafka:spring-kafka") dockerTestImplementation("org.springframework.ldap:spring-ldap-core") - dockerTestImplementation("org.springframework.pulsar:spring-pulsar") + dockerTestImplementation("org.springframework.pulsar:spring-pulsar") { + exclude group: "commons-logging", module: "commons-logging" + } dockerTestImplementation("org.testcontainers:junit-jupiter") dockerTestRuntimeOnly("com.oracle.database.r2dbc:oracle-r2dbc") @@ -114,7 +116,9 @@ dependencies { testImplementation("org.springframework.amqp:spring-rabbit") testImplementation("org.springframework.data:spring-data-redis") testImplementation("org.springframework.kafka:spring-kafka") - testImplementation("org.springframework.pulsar:spring-pulsar") + testImplementation("org.springframework.pulsar:spring-pulsar") { + exclude group: "commons-logging", module: "commons-logging" + } testImplementation("org.testcontainers:junit-jupiter") }