⭐ New Features
- Update Gradle plugin to skip processAot when there is no main source and to skip processTestAot when there is no test source #32424
- Provide GraalVM metadata repository files in Spring Boot jar built with Gradle #32408
- Configure Batch with the auto-configured PlatformTransactionManager #32330
- Add reflection hints to allow the configured and actual ports to be retrieved when using Undertow in a native image #32303
- Provide a public API for SpringApplication hooks #32301
- Allow application listeners to register additional listeners in early events #32300
- Make EventPublishingRunListener package private #32299
- Remove grab, install, jar, run, uninstall, and war commands from the CLI #32263
- Add NINETEEN to JavaVersion enum #32261
- Remove AnsiColors #32209
- Add support for configuring Spring Session Redis repository #32205
- Add Gradle plugin support for processing test contexts ahead-of-time #32192
- Add Maven plugin support for processing test contexts ahead-of-time #32191
- Refine
ConfigurationPropertiesReflectionHintsProcessor
#32186 - Remove ANTLR 2 dependency management #32149
- Avoid proxy in ValidationAutoConfiguration #32134
- Allow multiple hosts to be set in MongoProperties #32125
- Add native hints for default LDIF file #32084
- Add native-image support for Freemarker #32052
- Add socketKeepAlive configuration property for Elasticsearch #32051
- Simplify Flway auto-configuration by dropping support for older versions #32036
- Remove use of reflection in MustacheViewResolver #32030
- Align default JMX endpoint exposure with default web endpoint exposure #32005
- Add disk space health indicator's path to its details and log message #31998
- Update SpringBootContextLoader to support AOT #31965
- Harmonize AOT goal/task names #31918
- Add native-image support for RestTemplateBuilder #31888
- Remove custom classifier in the native profile in favor of configuring NBT's classesDirectory #31848
- Avoid creating compileAotJava and processAotResources tasks at configuration time #31844
- Reinstate Spring for GraphQL auto-configuration #31809
- Add support for customizing WebJars resource handler path pattern #31769
- Migrate to AuthorizationFilter in Spring Security auto-config #31255
- Support Mongo's Stable API in MongoHealthIndicator #30849
- Reinstate support for Jersey #28637
- Rework HeapDumper strategy interface to be less HotSpot-specific #27533
- Make it easier to apply customisations to the SpringApplication created by
@SpringBootTest
#22405 - Update data properties to make it clear which stores do and do not require Spring Data #11574
🐞 Bug Fixes
- Execution optimisations are disabled for generateResourcesConfigFile and nativeCompile #32465
- Tracing and metrics handlers are registered in the wrong order #32463
- Auto-configured DefaultMeterObservationHandler does not back off when the user defines their own MeterObservationHandler #32462
- Generated classes are not available with nativeTest #32428
- Constructor binding of
@ConfigurationProperties
to a Kotlin Data Class with default values doesn't work any more #32416 - DataSource logging in H2 console auto-configuration causes Hikari's threads to have the wrong thread context class loader #32407
- IntelliJ IDEA cannot resolve references to AOT-generated classes in AOT-generated source #32395
- ConnectionFactoryBuilder does not map minIdle #32332
- Generated classes are not available in the compiler's classpath #32304
- Hazelcast auto-configuration recognizes hazelcast.xml and hazelcast.yaml files but not hazelcast.yml #32248
- Hazelcast shutdown logs are not available out-of-the-box #32246
- Detection of PeriodStyle.ISO8601 does not support lower-case input #32245
- Detection of DurationStyle.ISO8601 does not support lower-case input #32232
- YAML timestamps not handled properly with SnakeYaml 1.31 #32230
- Netty 'spring.netty leak detection' default property value is always applied to resource leak detector #32146
- Error "/var/run/docker.sock: connect: permission denied" occurs when building an image using podman on Fedora with SELinux enabled #32122
- Misleading error message when using JarMode Layertools and the source is not an archive #32098
- ClassNotFoundException can be thrown for classes in nested jars when under GC pressure #32086
- Flyway Callbacks and JavaMigrations configured in FlywayConfigurationCustomizer are overwritten by beans of the same type #32070
- BasicJsonParser does not protect against deeply nested maps #32032
- OptionalLiveReloadServer logs the wrong port number when it is configured to use an ephemeral port #31985
- When building with Gradle, transitive runtime dependencies are not available during AOT processing #31970
- Servlet WebServerStartStopLifecycle doesn't set running to false on stop #31968
- JUL-based logging performed during close of application context is lost #31964
- Wrong timeunit for timeouts in Zipkins URLConnectionSender #31957
- WavefrontSenderConfiguration is ineffective #31954
- The hash of spring-boot-jarmode-layertools.jar that's added to a fat jar doesn't match the hash of the equivalent published artifact #31950
- management.endpoint.health.probes.add-additional-paths has no effect when configuration properties have already created the liveness and/or readiness groups #31927
- UnsupportedDataSourcePropertyException is thrown when attempting to set jdbcUrl for C3P0 #31922
- Dev Tools restart failures caused by a too short quiet period are hard to diagnose #31907
- HealthContributor beans managed by a CompositeHealthContributor are recreated on each call #31880
- Dependency management for REST Assured is incomplete #31878
- Jar Handler never clears PROTOCOL_HANDLER system property #31876
- BasicJsonParser can fail with a timeout or stackoverflow with malformed map JSON #31874
- BasicJsonParser can fail with a stackoverflow exception #31872
📔 Documentation
- Document classpath* location for looking up GraphQL schemas across modules #32471
- Document support for JDK 19 #32403
- Clarify documentation of config sub-directory from which external application properties are read #32292
- Remove out-of-date link from auto-configuration documentation #32217
- Clarify documentation on disabling web client request metrics #32199
- Kotlin sample is missing for constructor binding #32197
- Improve
@ConditionalOnClass
javadoc regarding use on@Bean
methods #32168 - Review Git contribution documentation #32100
- Documentation for Maven Plugin classifier has an unresolved external reference #32044
- Update Static Content reference documentation to reflect the DefaultServlet no longer being enabled by default #32027
- Example log output is out-of-date and inconsistent #31988
- Document that Undertow's record-request-start-time server option must be enabled for %D to work in access logging #31977
- Update documentation on using H2C to consider running behind a proxy that's performing TLS termination #31975
- Some properties in the Common Application Properties appendix have no description #31972
- Fix links in documentations #31952
- External configuration documentation uses incorrect placeholder syntax #31944
- server.reactive.session.cookie properties are not listed in the application properties appendix #31915
- Remove documentation and metadata references to ConfigFileApplicationListener #31902
- Metadata for 'spring.beaninfo.ignore' has incorrect SourceType #31900
- Remove reference to nitrite-spring-boot-starter #31894
- Remove reference to Azure Application Insights #31891
- Fix typos in code and documentation #31866
🔨 Dependency Upgrades
- Upgrade to Artemis 2.25.0 #32333
- Upgrade to Byte Buddy 1.12.17 #32455
- Upgrade to Couchbase Client 3.3.4 #32335
- Upgrade to Dependency Management Plugin 1.0.14.RELEASE #32460
- Upgrade to Dropwizard Metrics 4.2.12 #32336
- Upgrade to Ehcache3 3.10.1 #32337
- Upgrade to Elasticsearch Client 8.3.3 #32338
- Upgrade to Flyway 9.3.1 #32446
- Upgrade to GraphQL Java 19.2 #32430
- Upgrade to Groovy 4.0.5 #32340
- Upgrade to Gson 2.9.1 #32341
- Upgrade to Hazelcast 5.1.3 #32342
- Upgrade to Hibernate 6.1.3.Final #32343
- Upgrade to Hibernate Validator 7.0.5.Final #32344
- Upgrade to HSQLDB 2.7.0 #32345
- Upgrade to HtmlUnit 2.64.0 #32346
- Upgrade to Jackson Bom 2.13.4 #32347
- Upgrade to Janino 3.1.8 #32348
- Upgrade to Jersey 3.0.8 #32349
- Upgrade to Jetty 11.0.12 #32447
- Upgrade to jOOQ 3.17.4 #32350
- Upgrade to JUnit Jupiter 5.9.1 #32448
- Upgrade to Kafka 3.2.3 #32449
- Upgrade to Liquibase 4.16.1 #32450
- Upgrade to MariaDB 3.0.8 #32451
- Upgrade to Maven Assembly Plugin 3.4.2 #32356
- Upgrade to Maven Help Plugin 3.3.0 #32357
- Upgrade to Maven Install Plugin 3.0.1 #32358
- Upgrade to Maven Jar Plugin 3.3.0 #32456
- Upgrade to Maven Javadoc Plugin 3.4.1 #32359
- Upgrade to Maven Resources Plugin 3.3.0 #32360
- Upgrade to Maven Shade Plugin 3.4.0 #32384
- Upgrade to Micrometer 1.10.0-M6 #32238
- Upgrade to Micrometer Tracing 1.0.0-M8 #32239
- Upgrade to Mockito 4.8.0 #32361
- Upgrade to MongoDB 4.7.1 #32362
- Upgrade to MSSQL JDBC 11.2.1.jre17 #32363
- Upgrade to MySQL 8.0.30 #32364
- Upgrade to Netty 4.1.82.Final #32365
- Upgrade to OpenTelemetry 1.18.0 #32366
- Upgrade to Oracle Database 21.7.0.0 #32367
- Upgrade to Postgresql 42.5.0 #32368
- Upgrade to Rabbit AMQP Client 5.16.0 #32369
- Upgrade to Rabbit Stream Client 0.7.0 #32370
- Upgrade to Reactor Bom 2022.0.0-M6 #32240
- Upgrade to REST Assured 5.2.0 #32371
- Upgrade to RSocket 1.1.3 #32385
- Upgrade to Selenium 4.4.0 #32372
- Upgrade to Selenium HtmlUnit 3.64.0 #32373
- Upgrade to SnakeYAML 1.32 #32386
- Upgrade to Spring AMQP 3.0.0-M4 #31861
- Upgrade to Spring Batch 5.0.0-M6 #32237
- Upgrade to Spring Data 2022.0.0-M6 #32254
- Upgrade to Spring Framework 6.0.0-M6 #31834
- Upgrade to Spring GraphQL 1.1.0-M1 #32294
- Upgrade to Spring HATEOAS 2.0.0-M6 #31855
- Upgrade to Spring Integration 6.0.0-M5 #32096
- Upgrade to Spring Kafka 3.0.0-M6 #31925
- Upgrade to Spring LDAP 3.0.0-M4 #32105
- Upgrade to Spring Retry 2.0.0-M1 #32293
- Upgrade to Spring Security 6.0.0-M7 #32255
- Upgrade to Spring Session 2022.0.0-M3 #32427
- Upgrade to SQLite JDBC 3.39.3.0 #32387
- Upgrade to Tomcat 10.0.23 #32388
- Upgrade to UnboundID LDAPSDK 6.0.6 #32389
- Upgrade to Undertow 2.2.19.Final #32390
- Upgrade to Versions Maven Plugin 2.12.0 #32391
❤️ Contributors
We'd like to thank all the contributors who worked on this release!