v4.0.0-M1
Pre-release
Pre-release
⭐ New Features
- Move org.springframework.boot.autoconfigure.thread package to org.springframework.boot.thread #46406
- Add support for JmsClient #46293
- Rationalize starters following modularization #46245
- Provide better exception message when configuration properties binding fails due to class not found error #46232
- Migrate to Spring Batch 6 #46216
- Align reactive auto-configuration names #46156
- Create spring-boot-health module #46155
- Create spring-boot-hibernate module #46154
- Create spring-boot-tracing module #46153
- Create spring-boot-cloudfoundry module #46152
- Create spring-boot-servlet module #46151
- Create spring-boot-observation module #46150
- Create spring-boot-opentelemetry module #46149
- Create sping-boot-zipkin module #46148
- Create spring-boot-metrics module #46147
- Create spring-boot-graphql-test module #46146
- Create spring-boot-web-server module #46145
- Create spring-boot-websocket module #46144
- Create spring-boot-netty module #46143
- Create spring-boot-reactor module #46142
- Create spring-boot-graphql module #46141
- Create spring-boot-sql module #46140
- Create spring-boot-session modules #46139
- Create spring-boot-webflux module #46138
- Create spring-boot-security-saml2 module #46137
- Create spring-boot-security-oauth2-authorization-server #46136
- Create spring-boot-security-oauth2-resource-server module #46135
- Create spring-boot-security-oauth2-client module #46134
- Create spring-boot-security module #46133
- Create spring-boot-cache module #46132
- Create spring-boot-data-commons module #46131
- Create spring-boot-data-rest module #46130
- Create spring-boot-data-r2dbc module #46129
- Create spring-boot-data-jdbc module #46128
- Create spring-boot-data-couchbase module #46127
- Create spring-boot-data-redis module #46126
- Create spring-boot-webservices module #46125
- Create spring-boot-data-neo4j module #46124
- Create spring-boot-data-elasticsearch module #46123
- Create spring-boot-data-cassandra module #46122
- Create spring-boot-webmvc module #46121
- Create spring-boot-http-converter module #46120
- Create spring-boot-http-codec module #46119
- Create spring-boot-http-client module #46118
- Create spring-boot-hateoas module #46117
- Create spring-boot-jersey module #46116
- Create spring-boot-data-mongodb module #46115
- Create spring-boot-mongodb module #46114
- Create spring-boot-h2console module #46113
- Create spring-boot-gson module #46112
- Create spring-boot-sendgrid module #46111
- Create spring-boot-thymeleaf module #46110
- Create spring-boot-data-ldap module #46109
- Create spring-boot-ldap module #46108
- Create spring-boot-quartz module #46107
- Create spring-boot-neo4j module #46106
- Create spring-boot-mustache module #46105
- Create spring-boot-cassandra module #46104
- Create spring-boot-couchbase module #46103
- Create spring-boot-jooq module #46101
- Create spring-boot-batch module #46100
- Create spring-boot-hazelcast module #46099
- Create spring-boot-integration module #46098
- Create spring-boot-rsocket module #46097
- Create spring-boot-data-jpa module #46096
- Create spring-boot-jpa module #46095
- Create spring-boot-r2dbc module #46094
- Create spring-boot-pulsar module #46093
- Create spring-boot-kafka module #46092
- Create spring-boot-elasticsearch module #46091
- Create spring-boot-freemarker module #46090
- Create spring-boot-groovy-templates module #46089
- Create spring-boot-liquibase module #46088
- Create spring-boot-validation module #46087
- Create spring-boot-flyway module #46086
- Create spring-boot-jdbc module #46085
- Create spring-boot-tx module #46084
- Create spring-boot-artemis module #46083
- Create spring-boot-activemq module #46082
- Create spring-boot-jms module #46081
- Create spring-boot-jsonb module #46080
- Create spring-boot-mail module #46079
- Create spring-boot-jackson-module #46078
- Create spring-boot-amqp module #46077
- Create spring-boot-reactor-netty module #46076
- Create spring-boot-jetty module #46075
- Create spring-boot-undertow module #46074
- Create spring-boot-tomcat module #46073
- Publish milestones and release candidates to Maven Central #46024
- Support
@MeterTag
on@Counted
and@Timed
methods #46007 - Support pluggable types for EndpointObjectMapper #45876
- Introduce ObservationHandlerGroup interface to allow ObservabilityAutoConfiguration to be removed #45746
- Drop support for Wavefront #45713
- Remove APIs that were deprecated for removal in 4.0 (or earlier) #45600
- Declare a public constant for the WebServerStartStopLifecycle's phase #45572
- Replace ClientHttpRequestFactorySettings.Redirects with HttpRedirects #45505
- Deprecate ANT_PATH_MATCHER #45493
- Rework server.servlet.encoding properties to clarify when they apply #45394
- Introduce OptionalParameter annotation to replace Nullable #45389
- Add
@ServiceConnection
support for Testcontainers' MongoDBAtlasLocalContainer #45310 - Add support for multiple TaskDecorator beans #45302
- Review SSL info contribution and its use of management.health.ssl.certificate-validity-warning-threshold #44650
- Introduce TestSliceTestContextBootstrapper for test slices #44354
- Support declarative HTTP Service clients #31337
- Generate configuration metadata for types in other modules #18366
🐞 Bug Fixes
- Additional fields for structured JSON logging incompatible with nested ecs logging in 3.5.x #46481
- LambdaSafe.withFilter is not public #46475
- Executable JAR application class encounters performance issues when used with Palo Alto Network Cortex XDR agent #46403
- Runtime dependencies are missing from aotCompileClasspath and aotTestCompileClasspath when using Kotlin #46399
- Change in DefaultErrorAttributes alters the shape of API validation error responses #46311
- jdbc.connections.active and jdbc.connections.idle metrics are not available when using Hikari in a native image #46226
- developmentOnly and testAndDevelopmentOnly dependencies may prevent implementation dependencies from being included in the uber-jar #46206
- Hash calculation for uber archive entries that require unpacking is inefficient #46204
- Environment variables using legacy dash format can no longer be bound #46197
- Permissions are applied inconsistently when building uber archives with Gradle #46195
- EmbeddedWebServerFactoryCustomizerAutoConfiguration fails when undertow-core is on the classpath and undertow-servlet is not #46181
- Setting spring.reactor.context-propagation has no effect when lazy initialization is enabled #46175
- Setting spring.netty.leak-detection has no effect when lazy initialization is enabled #46171
- org/springframework/boot/logging/log4j2/log4j2.xml should not expose a FILE_LOG_PATTERN property as it only configures the console appender #45509
📔 Documentation
- Fix description of spring.batch.job.enabled #46248
- Add Logback Access Reactor Netty to community starters #46173
- Fix broken Kotlin examples in reference documentation #46169
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.7 #46323
- Upgrade to Artemis 2.42.0 #46495
- Upgrade to Brave 6.3.0 #46325
- Upgrade to Caffeine 3.2.2 #46436
- Upgrade to Commons Codec 1.19.0 #46513
- Upgrade to Commons Lang3 3.18.0 #46437
- Upgrade to Couchbase Client 3.8.2 #46463
- Upgrade to Elasticsearch Client 9.0.3 #46207
- Upgrade to Flyway 11.10.3 #46496
- Upgrade to Groovy 4.0.28 #46514
- Upgrade to Hibernate 7.0.7.Final #46515
- Upgrade to Hibernate Validator 9.0.1.Final #46057
- Upgrade to HikariCP 6.3.1 #46497
- Upgrade to HtmlUnit 4.13.0 #46328
- Upgrade to Infinispan 15.2.5.Final #46464
- Upgrade to Jackson Bom 2.19.2 #46498
- Upgrade to Jakarta Annotation 3.0.0 #45484
- Upgrade to Jakarta Persistence 3.2.0 #45477
- Upgrade to Jakarta Servlet 6.1.0 #45479
- Upgrade to Jakarta Validation 3.1.0 #45480
- Upgrade to Jakarta WebSocket 2.2.0 #45482
- Upgrade to Jakarta WS RS 4.0.0 #45478
- Upgrade to Jersey 4.0.0-M2 #45483
- Upgrade to Jetty 12.0.23 #46329
- Upgrade to JUnit Jupiter 5.13.4 #46499
- Upgrade to Kafka 4.0.0 #45485
- Upgrade to Kotlin 2.2.0 #46238
- Upgrade to Kotlin Coroutines 1.10.2 #46331
- Upgrade to Kotlin Serialization 1.9.0 #46332
- Upgrade to Lettuce 6.7.1.RELEASE #46424
- Upgrade to Liquibase 4.33.0 #46500
- Upgrade to MariaDB 3.5.4 #46335
- Upgrade to Maven Clean Plugin 3.5.0 #46059
- Upgrade to Maven Enforcer Plugin 3.6.1 #46439
- Upgrade to Maven Invoker Plugin 3.9.1 #46337
- Upgrade to Micrometer 1.16.0-M1 #46321
- Upgrade to Micrometer Tracing 1.6.0-M1 #46322
- Upgrade to Mockito 5.18.0 #46338
- Upgrade to MSSQL JDBC 12.10.1.jre11 #46339
- Upgrade to MySQL 9.3.0 #46340
- Upgrade to Neo4j Java Driver 5.28.9 #46440
- Upgrade to Netty 4.2.3.Final #46441
- Upgrade to OpenTelemetry 1.52.0 #46442
- Upgrade to Oracle Database 23.8.0.25.04 #46342
- Upgrade to Prometheus Client 1.3.10 #46343
- Upgrade to Pulsar Reactive 0.7.0 #46344
- Upgrade to Rabbit AMQP Client 5.26.0 #46502
- Upgrade to Reactor Bom 2025.0.0-M5 #46443
- Upgrade to RxJava3 3.1.11 #46345
- Upgrade to Selenium 4.34.0 #46346
- Upgrade to Selenium HtmlUnit 4.33.0 #46347
- Upgrade to Spring AMQP 4.0.0-M3 #46047
- Upgrade to Spring Authorization Server 2.0.0-M1 #46320
- Upgrade to Spring Batch 6.0.0-M1 #46304
- Upgrade to Spring Data Bom 2025.1.0-M4 #46465
- Upgrade to Spring Framework 7.0.0-M7 #45487
- Upgrade to Spring GraphQL 2.0.0-M1 #46053
- Upgrade to Spring HATEOAS 3.0.0-M3 #46488
- Upgrade to Spring Integration 7.0.0-M1 #46054
- Upgrade to Spring Kafka 4.0.0-M3 #45490
- Upgrade to Spring LDAP 4.0.0-M1 #46308
- Upgrade to Spring Pulsar 2.0.0-M1 #46271
- Upgrade to Spring RESTDocs 4.0.0-M1 #45491
- Upgrade to Spring Security 7.0.0-M1 #45492
- Upgrade to Spring Session 4.0.0-M1 #46312
- Upgrade to Spring WS 5.0.0-M1 #45873
- Upgrade to SQLite JDBC 3.50.3.0 #46503
- Upgrade to Testcontainers 1.21.3 #46348
- Upgrade to Tomcat 11.0.9 #46349
- Upgrade to XmlUnit2 2.10.3 #46350
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Dockerel, @PiyalAhmed, @Torres-09, @aahlenst, @benelog, @blancqua, @dmitrysulman, @doumdoum, @fmbenhassine, @izeye, @ngocnhan-tran1996, @nosan, @quaff, @sdeleuze, and @shchae04