v2.6.0-M1
Pre-release
      Pre-release
    
        
          ·
          
            24923 commits
          
          to main
          since this release
        
        
        
For upgrade instructions please see the release notes.
⭐ New Features
- Add Java 17 to JavaVersion enum #27416
 - Make setters on RabbitTemplateConfigurer public #27376
 - Add configuration property for Reactor Netty's idle timeout #27371
 - Support comma-separated values in EntityScan's basePackages placeholders #27355
 - Deprecate SpringPhysicalNamingStrategy in favor of Hibernate 5.5's CamelCaseToUnderscoresNamingStrategy #27352
 - Update version property for Prometheus to reflect that it covers the whole Java client and not just the Pushgateway #27350
 - Update RabbitTemplateConfigurer to take its required settings as constructor arguments #27313
 - Update AbstractRabbitListenerContainerFactoryConfigurer and its subclasses to take their required settings as constructor arguments #27311
 - Use server version from database in Neo4j health details #27294
 - Deprecate AbstractDataSourceInitializer and its subclasses in favour of DataSourceScriptDatabaseInitializer-based equivalents #27206
 - Remove default spring.mongodb.embedded.version #27108
 - Add 
@WebServiceServerTestannotation that can be used when testing SOAP server #27091 - Add Rabbit connection factory configurers #26982
 - Add resource labels to Stackdriver metrics configuration properties #26961
 - Include information about where the caller was loaded from in NoSuchMethodError failure analysis #26895
 - Rely on Spring Security to determine the version of nimbus dependencies #26819
 - Introduce builder customizer for Lettuce 
ClientResources#26792 - Allow to chain 
ContextConsumerimplementations #26723 - Add SpringApplicationBuilder constructor with ResourceLoader parameter #26690
 - Add properties for configuring Flyway's ignoreMigrationPatterns, detectEncoding, and failOnMissingLocations #26456
 - Allow the WebSessionManager's session ID resolver to be customized using a WebSessionIdResolver bean #26437
 - Allow to configure StartMojo's wait and maxAttempts attributes from the command-line #26422
 - Auto-configure binding of Micrometer's JettyConnectionMetrics and JettySslHandshakeMetrics #26418
 - Apply RSocketConnectorConfigurer beans to the RSocketRequester.Builder #26341
 - Add Lombok 
@Valuesupport for configuration metadata generation #26337 - Enable Redis connection pool if commons-pool2 is on the classpath #26326
 - Add configuration property for Tomcat's rejectIllegalHeader #26311
 - Add support for Dynatrace metrics v2 API #26258
 - Reproducible build for spring-boot-maven-plugin:build-info #26221
 - Remove dependency management for org.webjars:hal-browser #26192
 - Add auto-configuration for Micrometer DiskSpaceMetrics #26001
 - Add metrics support for ThreadPoolTaskExecutor and ThreadPoolTaskScheduler #23818
 - Add auto-configuration for Spring Data Envers #22610
 - Adjust fat jar central directory to account for launch script #22336
 - Use a configurable location to load global Devtools settings #17924
 
🪲 Bug Fixes
- DataSourceBuilder throws an UnsupportedDataSourcePropertyException when trying to derive a DataSource from an unknown DataSource type #27455
 - DatabaseInitializerDetector and DependsOnDatabaseInitializationDetector implementations may be instantiated with the wrong ClassLoader #27425
 - YamlPropertySourceLoader may not use the right ClassLoader to check if SnakeYAML is present #27420
 - Since 2.5.1, a circular reference is created when one SpringLiquibase bean is configured to depend on another #27408
 - Setting Gson as preferred mapper breaks controller methods returning JSON Strings #27362
 @SpyBeandoes not work when used to spy on a Spring Data Repository #27353- Dependency management for Prometheus's Pushgateway is incomplete #27351
 - Exception thrown from /actuator/configprops endpoint when spring.config.import=configtree:xxxx is used #27347
 - Layers configuration XSD is not available #27326
 - Redis health indicators report that Redis is up when the cluster's state is fail #27305
 - Spring Session JDBC does not work when lazy initialization is enabled #27226
 - App fails to start when using Spring Batch with JDBC and lazy initialization is enabled #27224
 - AbstractDataSourceInitializers are not detected as database initializers #27223
 - File named "config" in working directory causes IllegalStateException #27213
 - Optional file search locations with pattern throws exception if not present #27212
 - "Cannot determine database's type as ConnectionFactory is not options-capable" error message doesn't provide enough detail #27186
 - DurationStyle.SIMPLE.print does not work correctly with ChronoUnit.MICROS #27155
 - Configuration property metadata has the wrong default value for spring.netty.leak-detection #27106
 - Deadlock when the application context is closed and System.exit(int) is then called during application context refresh #27076
 - Default value for NettyProperties.leakDetection is not aligned with Netty's default #27050
 - SpringApplicationShutdownHook throws ClassCastException when use log4j2 #27018
 - Gradle 6.9.x is not listed as a supported version when the Gradle version is < 6.8 #27001
 - Gradle build fails with "invocation of 'Task.project' at execution time is unsupported" when using the configuration cache in a project that depends on org.springframework.boot:spring-boot-configuration-processor #26998
 - NoSuchMethodError with Jetty 10 when trying to use HTTP/2 over TLS (h2) #26989
 - A bean factory post processor cannot be configured to run after 
DependsOnDatabaseInitializationPostProcessor#26951 - Kotlin plugin's version shouldn't be read if the kotlin.version extra property has been set #26948
 - SQL initialization in 2.5 does not handle connection errors gracefully anymore #26943
 - Script-based database initialization should not check the database's type unless it has scripts to apply #26942
 - Profile-specific files should still be considered when processing 'spring.config.import' properties #26940
 - Misleading type information reported by BeanNotOfRequiredTypeFailureAnalyzer #26936
 - WebSocket auto-configuration throws a CNFE with Jetty 10 #26929
 - Memory leak in MetricsClientHttpRequestInterceptor when auto-timing is disabled #26924
 - App fails to start when using Flyway or Liquibase with a spring.flyway.url or spring.liquibase.url without spring-jdbc on the classpath #26918
 
📔 Documentation
- Fix reference to a configuration property in cloud.adoc #27358
 - Document auto-configured Jetty metrics #27302
 - Document that hateoas starter is spring MVC specific #27140
 - Improve javadoc of 
@DefaultValue#27138 - Remove unnecessary unit for spring.datasource.tomcat.max-active #27117
 - Fix anchor rewrites containing a question mark #27116
 - Fix typo in section title #27112
 - Misleading doc about application startup exposure #27065
 - Update reference documentation to reflect 
@SpringBootApplication's use of@SpringBootConfiguration#27025 - Document uuid support in RandomValuePropertySource #27011
 - Add missing space for asciidoc ordered list #26957
 - Add Azure info to the cloud deployment docs #26912
 - Make the documentation versions more apparent #26892
 
🔨 Dependency Upgrades
- Upgrade to AppEngine SDK 1.9.90 #27394
 - Upgrade to AspectJ 1.9.7 #27250
 - Upgrade to AssertJ 3.20.2 #27251
 - Upgrade to Awaitility 4.1.0 #27252
 - Upgrade to Byte Buddy 1.11.8 #27395
 - Upgrade to Caffeine 2.9.2 #27254
 - Upgrade to Cassandra Driver 4.12.0 #27255
 - Upgrade to Commons Pool2 2.10.0 #27256
 - Upgrade to DB2 JDBC 11.5.6.0 #27257
 - Upgrade to Dropwizard Metrics 4.2.3 #27396
 - Upgrade to Elasticsearch 7.13.3 #27259
 - Upgrade to Flyway 7.11.2 #27397
 - Upgrade to Git Commit ID Plugin 4.9.9 #27398
 - Upgrade to Hazelcast 4.2.1 #27260
 - Upgrade to Hibernate 5.5.4.Final #27399
 - Upgrade to HtmlUnit 2.51.0 #27261
 - Upgrade to HttpClient5 5.1 #27262
 - Upgrade to Infinispan 12.1.7.Final #27400
 - Upgrade to Jackson Bom 2.12.4 #27264
 - Upgrade to Jedis 3.6.2 #27401
 - Upgrade to Jersey 2.34 #27266
 - Upgrade to Jetty 9.4.43.v20210629 #27269
 - Upgrade to Jetty EL 9.0.48 #27267
 - Upgrade to Jetty Reactive HTTPClient 1.1.10 #27268
 - Upgrade to Johnzon 1.2.14 #27270
 - Upgrade to jOOQ 3.14.13 #27402
 - Upgrade to Json Path 2.6.0 #27272
 - Upgrade to Kafka 2.8.0 #27247
 - Upgrade to Kotlin 1.5.21 #27318
 - Upgrade to Kotlin Coroutines 1.5.1 #27273
 - Upgrade to Lettuce 6.1.4.RELEASE #27343
 - Upgrade to Liquibase 4.4.1 #27291
 - Upgrade to Maven Dependency Plugin 3.2.0 #27275
 - Upgrade to Maven Javadoc Plugin 3.3.0 #27276
 - Upgrade to Micrometer 1.8.0-M1 #27169
 - Upgrade to Mockito 3.11.2 #27277
 - Upgrade to MongoDB 4.3.0 #27344
 - Upgrade to Neo4j Java Driver 4.3.3 #27278
 - Upgrade to Netty 4.1.66.Final #27403
 - Upgrade to Netty tcNative 2.0.40.Final #27279
 - Upgrade to Postgresql 42.2.23 #27280
 - Upgrade to Prometheus PushGateway 0.11.0 #27281
 - Upgrade to QueryDSL 5.0.0.M1 #26956
 - Upgrade to Rabbit AMQP Client 5.13.0 #27404
 - Upgrade to Reactor 2020.0.8 #27027
 - Upgrade to Reactor 2020.0.9 #27167
 - Upgrade to REST Assured 4.4.0 #27293
 - Upgrade to Selenium HtmlUnit 2.51.0 #27282
 - Upgrade to SLF4J 1.7.31 #27283
 - Upgrade to SnakeYAML 1.29 #27284
 - Upgrade to Spring AMQP 2.4.0-M1 #27171
 - Upgrade to Spring Data 2021.1.0-M1 #27170
 - Upgrade to Spring Framework 5.3.9 #27168
 - Upgrade to Spring HATEOAS 1.4.0-M1 #27185
 - Upgrade to Spring Integration 5.5.2 #27174
 - Upgrade to Spring Kafka 2.8.0-M1 #27177
 - Upgrade to Spring Security 5.6.0-M1 #27173
 - Upgrade to Spring Session Bom 2021.0.1 #27285
 - Upgrade to SQLite JDBC 3.36.0.1 #27286
 - Upgrade to Tomcat 9.0.50 #27287
 - Upgrade to WebJars Locator Core 0.47 #27288
 
❤️ Contributors
We'd like to thank all the contributors who worked on this release!