Releases: spring-projects/spring-boot
v2.7.9
🐞 Bug Fixes
- Maven Plugin's PropertiesMergingResourceTransformer closes InputStream when it should not do so #34063
- Actuator Health web endpoint broken with Gson and Java 17 #34030
- Dependency management for Mongo's Java Driver is incomplete #33941
- Using devtools with Reactive application results in slower restarts #33855
- Spies are not reset after test execution when using
@SpyBean
#33830 - Properties Migrator does not detect properties of Map type that are marked as deprecated #27854
📔 Documentation
- Updated documentation for
@ConfigurationProperties
bean naming rules #34029 - Restore "Use Jedis Instead of Lettuce" how-to documentation #33994
- Add Redis application properties example #33965
- Use Maven Central for release downloads in CLI installation documentation #33962
- Actuator section is missing from documentation overview #33932
- Add Javadoc since to OperationParameter.getAnnotation() #33914
- Document additional configuration that is required for spring.mvc.throw-exception-if-no-handler-found=true to be effective #31660
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.16.6 #34238
- Upgrade to Byte Buddy 1.12.23 #34239
- Upgrade to Dropwizard Metrics 4.2.16 #34240
- Upgrade to Elasticsearch 7.17.9 #34241
- Upgrade to Glassfish JAXB 2.3.8 #34242
- Upgrade to Groovy 3.0.15 #34243
- Upgrade to Hibernate 5.6.15.Final #34244
- Upgrade to Jackson Bom 2.13.5 #34245
- Upgrade to Jaybird 4.0.9.java8 #34246
- Upgrade to Lombok 1.18.26 #34247
- Upgrade to Micrometer 1.9.8 #34141
- Upgrade to Netty 4.1.89.Final #34248
- Upgrade to Reactor Bom 2020.0.28 #34142
- Upgrade to Spring AMQP 2.4.10 #34321
- Upgrade to Spring Batch 4.3.8 #34143
- Upgrade to Spring Data Bom 2021.2.8 #34144
- Upgrade to Spring HATEOAS 1.5.3 #34249
- Upgrade to Spring Security 5.7.7 #34145
- Upgrade to Undertow 2.2.23.Final #34250
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Anubhav-2000, @enimiste, @izeye, @jprinet, @marcel-wollschlaeger, @mhalbritter, @michaldo, and @sannanansari
v3.0.2
🐞 Bug Fixes
- Failure analysis of NoUniqueBeanDefinitionException reports "defined in null" when bean definition has no resource description #33876
@DeprecatedConfigurationProperty
has no effect when declared on a record component's accessor method #33871- Devtools sets non-existent property spring.reactor.debug #33860
- Failing calls to reactive health indicators are not logged #33856
- Spring Boot 3 Native: Fails to bind properties under 'spring.groovy.template' #33847
- Diagnostics are poor when the JMX port used by the Maven start goal is in use #33845
- Inconsistent discovery of parameter names for selectors in custom actuator endpoints #33841
- OpenTelemetryAutoConfiguration should use parent-based sampler by default #33821
- SpringBootMockResolver causes AopTestUtils.getUltimateTargetObject to recurse until the stack overflows when it calls it with Spring Security's authentication manager bean #33792
- It is not possible to provide a custom TransactionProvider bean for JOOQ #33776
- Remove usage of bean definition instance supplier since not compatible with AOT #33763
- DevTools prevent startup in native image when using maven #33760
- NPE in RabbitProperties when user is given, but password not #33753
- EndpointRequestMatcher should have a toString method #33729
- SDKMAN should not use repo.spring.io for releases #33723
@ConfigurationProperties
on a@Bean
method does not work when the bean has a constructor that is eligible for constructor binding #33710- Homebrew and Scoop should not use repo.spring.io for releases #33706
- Installing Homebrew formula with --head does not work #33704
- Flyway-specific DataSource cannot be created in a native image due to missing reflection hints #33692
- Remove Jetty/Netty/ApacheHttpClient checks for WebClient #33640
- Fix no effect of custom SessionRepositoryCustomizer in application context #33514
- Nested properties without a setter can no longer be bound in 3.0 #33409
📔 Documentation
- Fix typo in testing-native-application.adoc #33896
- Replace "via" in documentation and use "over" or "through" instead #33880
- Fix typo in kotlin getting started documentation #33869
- Update com.gorylenko.gradle-git-properties version to 2.4.1 in doc #33857
- Description of spring-boot-starter-websocket does not make it clear that it's Servlet-specific #33842
- Fix 'the the' typos #33756
- Fix docs with repeated words. #33749
- Update HTTP 2 documentation for Java 17 #33734
- Fix typo in getting started documentation #33732
- Fix typo in External Configuration documentation #33728
- Fix a typo in the ExitCodeGenerator documentation #33726
- Fix typo in javadoc of org.springframework.boot.web.server.LocalServerPort #33724
- Update dockerfile samples to use Java 17 #33629
- Remove the run example #33519
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.12.22 #33898
- Upgrade to Couchbase Client 3.4.2 #33899
- Upgrade to Dropwizard Metrics 4.2.15 #33795
- Upgrade to FreeMarker 2.3.32 #33900
- Upgrade to Groovy 4.0.7 #33796
- Upgrade to Infinispan 14.0.6.Final #33901
- Upgrade to Jakarta Activation 2.1.1 #33798
- Upgrade to Jakarta Mail 2.1.1 #33799
- Upgrade to jOOQ 3.17.7 #33902
- Upgrade to JUnit Jupiter 5.9.2 #33800
- Upgrade to Kafka 3.3.2 #33903
- Upgrade to MariaDB 3.0.10 #33801
- Upgrade to Micrometer 1.10.3 #33802
- Upgrade to Micrometer Tracing 1.0.1 #33803
- Upgrade to MongoDB 4.8.2 #33904
- Upgrade to MSSQL JDBC 11.2.3.jre17 #33905
- Upgrade to MySQL 8.0.32 #33906
- Upgrade to Netty 4.1.87.Final #33907
- Upgrade to Reactor Bom 2022.0.2 #33804
- Upgrade to RxJava3 3.1.6 #33908
- Upgrade to Spring AMQP 3.0.1 #33811
- Upgrade to Spring Data 2022.0.1 #33810
- Upgrade to Spring Framework 6.0.4 #33805
- Upgrade to Spring HATEOAS 2.0.1 #33806
- Upgrade to Spring Integration 6.0.2 #33813
- Upgrade to Spring Kafka 3.0.2 #33812
- Upgrade to Spring WS 4.0.1 #33809
- Upgrade to Tomcat 10.1.5 #33909
- Upgrade to Undertow 2.3.3.Final #33807
- Upgrade to XmlUnit2 2.9.1 #33808
❤️ Contributors
Thank you to all the contributors who worked on this release:
@BartR96, @IDJack, @anugrahsinghal, @asomov, @devrishal, @dreis2211, @izeye, @josephlane, @krzyk, @kvmw, @mhalbritter, @michaelweidmann, @qyqcswill, @rfigueroa, @sannanansari, @sdeleuze, @yyjstudy, and @zhangyanyue
v2.7.8
⭐ Noteworthy
- The coordinates of the MySQL JDBC driver have changed from
mysql:mysql-connector-java
tocom.mysql:mysql-connector-j
.
🐞 Bug Fixes
- Devtools sets non-existent property spring.reactor.debug #33858
- Failing calls to reactive health indicators are not logged #33774
- Failure analysis of NoUniqueBeanDefinitionException reports "defined in null" when bean definition has no resource description #33765
- NPE in RabbitProperties when user is given, but password not #33752
- SDKMAN should not use repo.spring.io for releases #33708
- Homebrew and Scoop should not use repo.spring.io for releases #33702
- EndpointRequestMatcher should have a toString method #33690
- It is not possible to provide a custom TransactionProvider bean for JOOQ #32899
- SpringBootMockResolver causes AopTestUtils.getUltimateTargetObject to recurse until the stack overflows when it calls it with Spring Security's authentication manager bean #32632
- Inconsistent discovery of parameter names for selectors in custom actuator endpoints #31240
@DeprecatedConfigurationProperty
has no effect when declared on a record component's accessor method #29526- Headless mode is forced when banner.* file is present. #28803
- Diagnostics are poor when the JMX port used by the Maven start goal is in use #24044
📔 Documentation
- Replace "via" in documentation and use "over" or "through" instead #33878
- Fix typo in kotlin getting started documentation #33867
- Update com.gorylenko.gradle-git-properties version to 2.4.1 in doc #33838
- Fix 'the the' typos #33736
- Fix typo in javadoc of org.springframework.boot.web.server.LocalServerPort #33683
- Fix a typo in the ExitCodeGenerator documentation #33658
- Fix typo in External Configuration documentation #33630
- Update getting started documentation to use
@SpringBootApplication
#32795 - Description of spring-boot-starter-websocket does not make it clear that it's Servlet-specific #32493
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.12.22 #33887
- Upgrade to Dropwizard Metrics 4.2.15 #33779
- Upgrade to FreeMarker 2.3.32 #33888
- Upgrade to Groovy 3.0.14 #33780
- Upgrade to Infinispan 13.0.15.Final #33781
- Upgrade to Jolokia 1.7.2 #33782
- Upgrade to MariaDB 3.0.10 #33783
- Upgrade to Micrometer 1.9.7 #33784
- Upgrade to MSSQL JDBC 10.2.3.jre8 #33889
- Upgrade to MySQL 8.0.32 #33890
- Upgrade to Netty 4.1.87.Final #33891
- Upgrade to Reactor Bom 2020.0.27 #33785
- Upgrade to Spring AMQP 2.4.9 #33790
- Upgrade to Spring Data 2021.2.7 #33788
- Upgrade to Spring Framework 5.3.25 #33786
- Upgrade to Spring WS 3.1.5 #33789
- Upgrade to Tomcat 9.0.71 #33892
- Upgrade to XmlUnit2 2.9.1 #33787
❤️ Contributors
Thank you to all the contributors who worked on this release:
@BartR96, @devrishal, @dreis2211, @izeye, @josephlane, @kvmw, @mhalbritter, @sannanansari, @sdeleuze, @yyjstudy, and @zhangyanyue
v3.0.1
🐞 Bug Fixes
- Fix typo in LocalDevToolsAutoConfiguration logging #33615
- No warning is given when
<springProfile>
is used in a Logback<root>
block #33610 - Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
- WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
- Reactive observation auto-configuration does not declare order for WebFilter #33444
- Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
- Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
- Anchors in YAML configuration files throw UnsupportedOperationException #33404
- ZipkinRestTemplateSender is not customizable #33399
- AOT doesn't work with Logstash Logback Encoder #33387
- Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
DependsOnDatabaseInitializationPostProcessor
re-declares bean dependencies at native image runtime #33374@SpringBootTest
now throws a NullPointerException rather than a helpful IllegalStateException when@SpringBootConfiguration
is not found #33371- bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363
📔 Documentation
- Improve gradle plugin tags documentation #33617
- Improve maven plugin tags documentation #33616
- Fix typo in tomcat accesslog checkExists doc #33512
- Documented Java compiler level is wrong #33505
- Fix typo in documentation #33453
- Update instead of replace environment in bootBuildImage documentation #33424
- Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
- Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
- Reinstate GraphQL testing documentaion #33407
- Description of
NEVER
in Sanitize Sensitive Values isn't formatted correctly #33398
🔨 Dependency Upgrades
- Upgrade to AspectJ 1.9.19 #33586
- Upgrade to Byte Buddy 1.12.20 #33587
- Upgrade to Couchbase Client 3.4.1 #33588
- Upgrade to Dropwizard Metrics 4.2.14 #33589
- Upgrade to Elasticsearch Client 8.5.3 #33590
- Upgrade to Hibernate 6.1.6.Final #33591
- Upgrade to HttpClient 4.5.14 #33592
- Upgrade to HttpCore 4.4.16 #33593
- Upgrade to Infinispan 14.0.4.Final #33594
- Upgrade to Jaybird 4.0.8.java11 #33595
- Upgrade to Jetty 11.0.13 #33596
- Upgrade to jOOQ 3.17.6 #33597
- Upgrade to Kotlin 1.7.22 #33598
- Upgrade to Lettuce 6.2.2.RELEASE #33599
- Upgrade to MongoDB 4.8.1 #33600
- Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
- Upgrade to Native Build Tools Plugin 0.9.19 #33602
- Upgrade to Netty 4.1.86.Final #33603
- Upgrade to Reactor 2022.0.1 #33475
- Upgrade to SLF4J 2.0.6 #33604
- Upgrade to Spring for GraphQL 1.1.1 #33477
- Upgrade to Spring Framework 6.0.3 #33476
- Upgrade to Spring Integration 6.0.1 #33605
- Upgrade to Spring Kafka 3.0.1 #33480
- Upgrade to Spring Security 6.0.1 #33479
- Upgrade to Thymeleaf 3.1.1.RELEASE #33486
- Upgrade to Thymeleaf Extras SpringSecurity 3.1.1.RELEASE #33606
- Upgrade to Tomcat 10.1.4 #33167
- Upgrade to UnboundID LDAPSDK 6.0.7 #33607
- Upgrade to Undertow 2.3.2.Final #33608
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Artur-, @aksh1618, @candrews, @cdanger, @currenjin, @izeye, @jprinet, @lishangbu, @ohdaeho, @peter-janssen, and @shekharAggarwal
v2.7.7
🐞 Bug Fixes
- Fix typo in LocalDevToolsAutoConfiguration logging #33569
- Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #32179
📔 Documentation
- Improve gradle plugin tags documentation #33614
- Improve maven plugin tags documentation #33609
- Fix typo in tomcat accesslog checkExists doc #33460
- Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #17398
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.12.20 #33570
- Upgrade to Dropwizard Metrics 4.2.14 #33571
- Upgrade to Elasticsearch 7.17.8 #33572
- Upgrade to HttpClient 4.5.14 #33573
- Upgrade to HttpCore 4.4.16 #33574
- Upgrade to Infinispan 13.0.14.Final #33575
- Upgrade to Jaybird 4.0.8.java8 #33576
- Upgrade to Jetty 9.4.50.v20221201 #33577
- Upgrade to MSSQL JDBC 10.2.2.jre8 #33578
- Upgrade to Neo4j Java Driver 4.4.11 #33579
- Upgrade to Netty 4.1.86.Final #33580
- Upgrade to Reactor 2020.0.26 #33543
- Upgrade to Spring Integration 5.5.16 #33581
- Upgrade to Spring Security 5.7.6 #33544
- Upgrade to Thymeleaf Extras SpringSecurity 3.0.5.RELEASE #33582
- Upgrade to Tomcat 9.0.70 #33583
- Upgrade to UnboundID LDAPSDK 6.0.7 #33584
- Upgrade to Undertow 2.2.22.Final #33585
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Artur-, @aksh1618, @cdanger, @currenjin, @jprinet, and @shekharAggarwal
v3.0.0
See the Release notes for 3.0 for upgrade instructions and details of new features.
⭐ New Features
- Provide a configuration property for the observation patterns of Spring Integration components #33099
🐞 Bug Fixes
- io.micrometer.tracing.Tracer on the classpath breaks AOT processing for tests #33298
- Tracer library HTTP instrumentation is auto-configured unnecessarily #33287
- Auto-configuration ignores user-provided ObservationConventions #33285
ScheduledBeanLazyInitializationExcludeFilter
is auto-configured even when annotation-based scheduled has not been enabled #33284- SpringBootContextLoader prints banner twice when using a
@ContextHierarchy
#33263 - Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33250
- Wavefront MeterRegistryCustomizer is not applying application tags from application.properties #33244
- Actuator responses no longer format timestamps as ISO-8601 #33236
- Configuration property is not bound in a native image when property has get, set, and is methods #33232
- Configuration property binding does not deal with bridge methods #33212
- Contribute missing resource hints for GraphQL schema files and GraphiQL HTML page #33208
- Hints for ClientHttpRequestFactory should only be generated for matching methods #33203
- Native profile should configure execution in pluginManagement #33184
- Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33169
- JBoss logging does not route directly to SLF4J when using Logback #33155
- Test with UseMainMethod.Always do not work with Kotlin main functions #33114
- Maven process-aot does not specify source and target release when compiling generated sources #33112
- Some Actuator beans are ineligible for post-processing #33110
- AOT-generated source fails to compile when Actuator is enabled on a WebFlux project #33106
@ContextHierarchy
should never be used with main method #33078- Maven process-aot fails when compiler plugin has been configured with --enable-preview #33012
- Wavefront application tags differ from those used in a Spring Boot 2.x application #32844
- Maven goal
spring-boot:build-image
runs package phase twice #26455
📔 Documentation
- Document observation for R2DBC #33335
- Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33333
- Actuator document is misleading about k8s startup probe #33327
- Update documented for
@Timed
to reflect narrower support #33282 - Update reference documentation to replace mentions of tags providers and contributors with their Observation-based equivalents #33281
- Link to Micrometer's
@Timed
documentation #33266 - Clarify use of the
spring.cache.type
property with Hazelcast #33258 - Example git.commit.time in the Actuator API documentation is thousands of years in the future #33256
- Update Spring Security filter dispatcher types docs to reflect change in default value #33252
- Documentation for nested configuration properties in a native image uses
@NestedConfigurationProperty
too widely #33239 - Document that the
jar
task should not be disabled when building a native image #33238 - Document nesting configuration properties using records or Kotlin data classes and how and when to use
@NestedConfigurationProperty
#33235 - Links to Features describes sections that have moved elsewhere #33214
- Fix broken links in docs #33209
- Document the need for compilation with -parameters when targeting a native image #33182
- Remove outdated native image documentation #33109
- Mention
@RegisterReflectionForBinding
in the docs #32903
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.12.19 #33302
- Upgrade to Caffeine 3.1.2 #33339
- Upgrade to Dropwizard Metrics 4.2.13 #33303
- Upgrade to Ehcache3 3.10.8 #33304
- Upgrade to Elasticsearch Client 8.5.1 #33225
- Upgrade to Glassfish JSTL 3.0.1 #33305
- Upgrade to Hazelcast 5.1.5 #33187
- Upgrade to HttpClient5 5.1.4 #33306
- Upgrade to HttpCore5 5.1.5 #33188
- Upgrade to Jackson 2.14.1 #33289
- Upgrade to Jackson Bom 2.14.0 #33189
- Upgrade to Janino 3.1.9 #33307
- Upgrade to Jaybird 4.0.7.java11 #33190
- Upgrade to Kotlin 1.7.21 #33191
- Upgrade to Logback 1.4.5 #33308
- Upgrade to MariaDB 3.0.9 #33192
- Upgrade to Micrometer 1.10.2 #33334
- Upgrade to MongoDB 4.8.0 #33193
- Upgrade to Native Build Tools 0.9.18 #33301
- Upgrade to Netty 4.1.85.Final #33194
- Upgrade to Postgresql 42.5.1 #33340
- Upgrade to R2DBC H2 1.0.0.RELEASE #33195
- Upgrade to R2DBC Pool 1.0.0.RELEASE #33196
- Upgrade to R2DBC Postgresql 1.0.0.RELEASE #33197
- Upgrade to R2DBC Proxy 1.0.1.RELEASE #33309
- Upgrade to REST Assured 5.2.1 #33310
- Upgrade to SLF4J 2.0.4 #33311
- Upgrade to Spring AMQP 3.0.0 #33141
- Upgrade to Spring Batch 5.0.0 #33148
- Upgrade to Spring Data 2022.0.0 #33140
- Upgrade to Spring Framework 6.0.0 #33136
- Upgrade to Spring Framework 6.0.2 #33286
- Upgrade to Spring GraphQL 1.1.0 #33145
- Upgrade to Spring HATEOAS 2.0....
v2.7.6
🐞 Bug Fixes
ScheduledBeanLazyInitializationExcludeFilter
is auto-configured even when annotation-based scheduled has not been enabled #33283- SpringBootContextLoader prints banner twice when using a
@ContextHierarchy
#33262 - Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #33249
- Configuration property binding does not deal with bridge methods #33211
- Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #33168
- Dependency management for XMLUnit is incomplete #32999
- Spring Boot's Lettuce metrics enable histrograms by default and it's hard to switch them off #32989
- Dependency management for Selenium is incomplete #32861
- NumberFormatException when configuring spring.redis.sentinel.nodes with an IPv6 address #32836
📔 Documentation
- Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #33331
- ConditionalOnClass not working for Bean methods on Java 8 #33328
- Actuator document is misleading about k8s startup probe #33326
- Link to Micrometer's
@Timed
documentation #33265 - Clarify use of the
spring.cache.type
property with Hazelcast #33257 - Example git.commit.time in the Actuator API documentation is thousands of years in the future #33255
- Links to Features describes sections that have moved elsewhere #33213
- Fix kafka streams auto start description typo in reference docs #33101
- OAuth 2 configuration example uses unrecognized value for authorization grant type #33068
- Fix typos in logging.adoc #32820
- Harmonize code sample in the "Type-safe Configuration Properties" section #32818
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.12.19 #33272
- Upgrade to Dropwizard Metrics 4.2.13 #33321
- Upgrade to Ehcache3 3.10.8 #33322
- Upgrade to Elasticsearch 7.17.7 #33171
- Upgrade to Hazelcast 5.1.5 #33172
- Upgrade to Hibernate 5.6.14.Final #33173
- Upgrade to HttpClient5 5.1.4 #33323
- Upgrade to HttpCore5 5.1.5 #33174
- Upgrade to Janino 3.1.9 #33274
- Upgrade to Jaybird 4.0.7.java8 #33175
- Upgrade to MariaDB 3.0.9 #33176
- Upgrade to Micrometer 1.9.6 #33129
- Upgrade to Netty 4.1.85.Final #33177
- Upgrade to Postgresql 42.3.8 #33338
- Upgrade to Reactor 2020.0.25 #33130
- Upgrade to Spring AMQP 2.4.8 #33223
- Upgrade to Spring Data 2021.2.6 #33132
- Upgrade to Spring Framework 5.3.24 #33131
- Upgrade to Spring GraphQL 1.0.3 #33150
- Upgrade to Spring Kafka 2.8.11 #33133
- Upgrade to Spring REST Docs 2.0.7.RELEASE #33134
- Upgrade to Spring Security 5.7.5 #33178
- Upgrade to Spring WS 3.1.4 #33179
- Upgrade to Tomcat 9.0.69 #33180
❤️ Contributors
Thank you to all the contributors who worked on this release:
@EricGao888, @biergit, @dreis2211, @eurythmia, @hpoettker, @iamgd67, @izeye, @jamessoun93, and @sdeleuze
v2.6.14
🐞 Bug Fixes
ScheduledBeanLazyInitializationExcludeFilter
is auto-configured even when annotation-based scheduled has not been enabled #33276- Configuration property binding does not deal with bridge methods #33105
- SpringBootContextLoader prints banner twice when using a
@ContextHierarchy
#33079 - Dependency management for XMLUnit is incomplete #32998
- Spring Boot's Lettuce metrics enable histrograms by default and it's hard to switch them off #32985
- Configuring management.server.port via a config tree results in a ConverterNotFoundException when the management context is refreshed #32941
- NumberFormatException when configuring spring.redis.sentinel.nodes with an IPv6 address #32762
- Properties migrator causes an application to fail to start if it tries to map a property whose metadata data entry contains an invalid configuration property name #32729
- Dependency management for Selenium is incomplete #32721
📔 Documentation
- Link to Micrometer's
@Timed
documentation #33264 - Clarify use of the
spring.cache.type
property with Hazelcast #33245 - Example git.commit.time in the Actuator API documentation is thousands of years in the future #33237
- Links to Features describes sections that have moved elsewhere #33207
- Fix kafka streams auto start description typo in reference docs #33098
- OAuth 2 configuration example uses unrecognized value for authorization grant type #32931
- Fix typos in logging.adoc #32812
- Harmonize code sample in the "Type-safe Configuration Properties" section #32644
- Align Tomcat multiple connectors example with recommendation to configure SSL declaratively #28707
- Actuator document is misleading about k8s startup probe #28432
- ConditionalOnClass not working for Bean methods on Java 8 #27846
🔨 Dependency Upgrades
- Upgrade to Dropwizard Metrics 4.2.13 #33319
- Upgrade to Hibernate 5.6.14.Final #33157
- Upgrade to HttpClient5 5.1.4 #33320
- Upgrade to HttpCore5 5.1.5 #33158
- Upgrade to Janino 3.1.9 #33271
- Upgrade to Jaybird 4.0.7.java8 #33159
- Upgrade to MariaDB 2.7.7 #33160
- Upgrade to Micrometer 1.8.12 #33122
- Upgrade to Netty 4.1.85.Final #33161
- Upgrade to Postgresql 42.3.8 #33337
- Upgrade to Reactor 2020.0.25 #33123
- Upgrade to Spring AMQP 2.4.8 #33222
- Upgrade to Spring Data 2021.1.10 #33125
- Upgrade to Spring Framework 5.3.24 #33124
- Upgrade to Spring Kafka 2.8.11 #33126
- Upgrade to Spring REST Docs 2.0.7.RELEASE #33127
- Upgrade to Spring Security 5.6.9 #33162
- Upgrade to Spring WS 3.1.4 #33163
- Upgrade to Tomcat 9.0.69 #33164
❤️ Contributors
Thank you to all the contributors who worked on this release:
@EricGao888, @dreis2211, @eurythmia, @hpoettker, @iamgd67, @jamessoun93, and @sdeleuze
v3.0.0-RC2
⭐ New Features
- Switch to the Eclipse Angus Jakarta Mail Reference Implementation #33059
- Remove dependency management for unused EL-related dependencies #33035
- Unify actuator descriptor class names #33022
- Rename spring-session.bom.version property to spring-session.version to align with changes to Spring Session's version scheme and bom #32952
- Add support for CNB platform API 0.10 #32949
- Rename httptrace endpoint and related classes to httpexchanges #32885
- Support isolated actuator ObjectMapper #20291
🐞 Bug Fixes
- When replacing any database,
@AutoConfigureTestDatabase
does not work in a native test #33100 - Auto-configured OtelTracer does not back off when another kind of Tracer bean is defined #33097
- Auto-configured BraveTracer does not back off when another kind of Tracer bean is defined #33095
- Unnecessary javax Servlet and JSTL dependencies in spring-boot-dependencies #33094
- NullPointerException in LazyTracingSpanContextSupplier when TraceContext.sampled() returns null #33093
- Default security filter dispatcher types are not aligned with Spring Security's defaults #33090
- Inner classes of a
@JsonComponent
are ignored in a native image #33089 - Unlike Spring Cloud Sleuth tracing auto-configuration does not provide span customizer beans #33087
- Configuring spring.jackson.property-naming-strategy fails in a native image #33080
- Dependency management for Selenium is incomplete #33076
- management.endpoints.jmx.exposure.include meta-data json contains incorrect default value #33072
- Context refresh may deadlock when using Prometheus Exemplars #33070
- ConfigurationProperties constructor
@Autowired
detection fails for proxy classes #33061 - Logback
<if>
blocks cannot read spring properties #33028 - Spring Boot 3.0 no longer logs guidance to enable debug logging to see the condition evaluation report when the app fails to start #33027
- Dependency management for XMLUnit is incomplete #33000
- Spring Boot's Lettuce metrics enable histrograms by default and it's hard to switch them off #32990
- Spring Boot's auto-configuration for Lettuce metrics enables histograms by default #32986
- management.observations.http.server.requests.name is ignored when auto-configuring meter filters for maximum allowable uri tags #32973
- The version of Hazelcast Hibernate is managed unnecessarily #32953
@JsonMixin
not working in native-image #32929- Missing runtime hints for default Liquibase migration file #32926
- Build failures caused by using a version of GraalVM that does not meet our minimum requirements are hard to diagnose #32924
- Execution optimizations have been disabled for task
processAot
withkapt
Gradle Plugin #32919 - Logging hostname at startup can take a prohibitively long time #32908
- Micrometer Tracer not available in integration tests #32907
- Auto configuration for data-elasticsearch does not configure mapper that can handle MapDocument payload #32906
- OTel W3C doesn't propagate remote fields #32898
- Missing resource hint for banner.txt #32882
- HttpGraphQlTesterContextCustomizer runs twice when using AOT #32872
- OutputCaptureExtension fails in native image tests: NoSuchMethodException: OutputCapture.
<init>
#32870 @RestClientTest
fails in native image tests: Failed to instantiate SimpleRequestExpectationManager #32867- EmbeddedDatabaseConnection was unintentionally initialized at build time when using
@DataJpaTest
#32865 - Cyclic dependency between
@JsonComponents
and ObjectMapper causes JsonComponents to be ignored #32863 - Properties not available when using SpringBootTest.UseMainMethod.ALWAYS #32860
- Native testing of a WebFlux-based app using a random or defined port fails with "Runtime reflection is not supported for WebTestClientContextCustomizer$WebTestClientRegistrar" #32859
- JsonTesters do not work in native tests #32858
- Setting a RestTemplateBuilder read timeout results in an IllegalStateException due to deprecations in HttpComponentsClientHttpRequestFactory #32857
- Package-private ResourceProviderCustomizer prevents external usage of FlywayAutoConfiguration class #32849
TestRestTemplate
is not compatible with Native Image #32848- Native image built with Gradle fails to start when
spring-boot-devtools
is included as developmentOnly dependency #32843 - When building with Maven, only resources generated beneath META-INF/native-image are available for inclusion in a native image #32841
- Configuring com.github.loki4j.logback.Loki4jAppender in logback.xml does not work in a native image #32839
- NumberFormatException when configuring spring.redis.sentinel.nodes with an IPv6 address #32837
- Manifests of jars built with Gradle do not have a Build-Jdk-Spec entry #32829
- Application Context initialized twice during test when exception thrown during initialization #31793
- MeterBinder beans that directly or indirectly depend on MeterRegistry beans cause a cycle #30636
📔 Documentation
- Fix kafka streams auto start description typo in reference docs #33102
- OAuth 2 configuration example uses unrecognized value for authorization grant type #33069
- Reference documentation refers to artemis-jms-server but artemis-jakarta-server should now be used instead #33065
- Remove legacy cookie processor documentation #33021
- Change references to Spring Cloud Sleuth for SpanContextSupplier to Micrometer Tracing #32994
- Remove Infinispan's Spring Boot Starter in README #32974
- Document how to observe JDBC project with Spring Boot and micrometer-observations #32912
- Remove mention of MetricsWebFilter from reference documentation #32909
- Remove note about Infinispan's Spring Boot Starter as it is not yet 3.0-compatible #32896
- Delete WebSecurityConfigurerAdapter from Javadoc in SpringBootWebSecurityConfiguration / SecurityProperties #32879
- Add documentation for micrometer observation [#32833](https://github.com/spring-projects/spring-boot/i...
v3.0.0-RC1
⭐ New Features
- Use GraphQL Observation instrumentation #32794
- Make consistent use of Property for Gradle task configuration #32769
- When the GraalVM Native Image Gradle plugin is applied, configure bootBuildImage to build a native image #32768
- When the native Maven profile is enabled, configure build-image to build a native image #32764
- Process logback.xml ahead-of-time to allow its configuration to be used in a native image #32756
- When using Brave, auto-configure a CompositeSpanHandler with span exporting predicates, filters, and reporters #32753
- Generate native-image argfile containing reachability metadata excludes for buildpacks to use #32738
- When the GraalVM Native Image Gradle plugin is applied, configure bootJar to contain the output of collectReachabilityMetadata #32737
- Provide maven configuration for native-build-tools reachability metadata goal #32736
- Log4J2 configuration URLs should respect system settings #32735
- Support profile specific Log4j2 configuration #32734
- Add Log4J2 PropertySource backed by the Spring Environment #32733
- Add Log4j2 StrLookup backed by the Spring Environment #32732
- Add Spring Environment to Log4j2 LoggerContext #32731
- Add support 'log4j.configurationFile' system property #32730
- Relocate
@ConstructorBinding
to bind package and update default behavior #32660 - Remove spring.webflux.multipart.streaming property #32658
- Auto-configure ProblemDetails support for Spring MVC and Spring WebFlux #32634
- Make auto-configured Brave Tracer more compliant with OTel tracer #32615
- Allow the auto-configured Rabbit Stream Environment to be customized #32580
- Add support for specifying application arguments when application is processed ahead-of-time #32579
- Provide extensions that remove the need for the log4j-spring-boot log4j2 module #32578
- Allow user to replace auto-configured Spring Data JDBC beans with their own #32571
- Remove remaining properties and APIs that were deprecated in Spring Boot 2.x #32548
- Move WebFlux metrics auto-configuration to the new Observation instrumentation #32539
- Move MVC metrics auto-configuration to the new Observation instrumentation #32538
- Prefer WebClient to RestTemplate when creating the Zipkin Sender #32529
- Update WebClient metrics auto-configuration to the new Observation instrumentation #32518
- Require micrometer-tracing-bridge-otel to auto-configure OpenTelemetry #32503
- Require micrometer-tracing-bridge-brave to auto-configure Brave #32502
- Update RestTemplate metrics auto-configuration to the new Observation instrumentation #32484
- MDC & Baggage AutoConfiguration for Micrometer Tracing with Brave and OpenTelemetry #32480
- Allow a Rabbit Stream Environment and Template to be auto-configured when not using a streaming listener container factory #32477
- Adapt to HttpComponentClientHttpRequestFactory changes #32461
- Add auto-configuration for Prometheus Exemplars #32415
- Auto-configure a TracingAwareMeterObservationHandler to make tracing interoperable with metrics #32399
- Add logging at INFO level if AOT is enabled and working #32396
- Output auto-configuration report for context processed ahead-of-time #32109
- Add native-image support for Flyway #31999
- Allow "native" Maven profile to support both NBT and buildpacks #31770
- Change phases of WebServer start-stop and graceful shutdown lifecycles to allow other smart lifecycles to run before graceful shutdown #31714
- Allow ThreadDumpEndpoint to call ThreadMXBean in a native image #31680
- Deprecate server.max-http-header-size in favor of new server.max-http-request-header-size property #29382
- Make the runScripts method on AbstractScriptDatabaseInitializer more extensible #29137
🐞 Bug Fixes
- Multi-Document-Separators "#---" comment checks do not account for '!' prefixed comments #32778
- Actuator configprops endpoint does not display DataSize properties correctly #32776
@Bean
methods in KafkaAutoConfiguration provide less type information than they could #32774- PEM formatted elliptic-curve TLS keys are an unrecognized private key format #32682
- Auto-configuration of ObservationRestTemplateCustomizer fails when micrometer-core is not on the classpath #32676
- Correct configuration of native and AOT-related tasks depends on plugin application order #32661
- ConstructorBinding default detection is considered with a private constructor #32639
- ConfigDataProperties is missing RuntimeHints #32608
- Killing
mvn spring-boot:run
does not kill child process #32607 - Assertion calls on CapturedOutput with Kotlin are very slow #32576
- Classpath scanning of Jackson mixin modules does not work in a native image #32567
- Empty
@DefaultValue
cannot be used on collections, maps, arrays or optional values #32564 - Native tests fail when using
@SpringBootTest
with RANDOM_PORT or DEFINED_PORT #32542 - Use of reflection in AbstractCompositeHealthContributorConfiguration can cause an app using actuator to fail to start in a native image #32541
- WebClient- and RestTemplate-based Zipkin senders can cause a bean dependency cycle #32528
- AOT processing does not work when Devtools is on the classpath #32517
- CouchbaseReactiveHealthIndicator uses blocking API to retrieve the cluster diagnostics #32514
- BootBuildImage's archiveFile property is annotated as an
@Input
but should be annotated as an@InputFile
#32500 - Response from loggers endpoint is incomplete in a native image #32486
- Logging beans are missing during AOT processing #32483
- EmbeddedLdapContextConfiguration LdapContextSource bean creation not populating base property #23030
📔 Documentation
- Fix typos in logging.adoc #32821
- Harmonize code sample in the "Type-safe Configuration Properties" section [#32819](https://github.com/spring-projects/spring-bo...