Releases: spring-projects/spring-boot
v3.2.10
🐞 Bug Fixes
- management.health.db.ignore-routing-datasources=true has no effect when an AbstractRoutingDataSource has been wrapped #42313
- Missing details in OAuth2ClientProperties validation error message #42278
- FileNotFoundException from unused mis-configured SSL bundles #42119
- PropertiesMigrationListener wrongly reports property as deprecated when has group #42068
- Using an empty string MongoDB 'replica-set-name' property will result in ClusterType=REPLICA_SET #42055
- JarLauncher fails to load large jar files #42012
@RestartScope
can cause 'Recursive update' exceptions when used with container beans #41571
📔 Documentation
- Document that spring.jmx.enabled is not intended for third-party libraries #42272
- Update link to Log4j2 system properties #42262
- Links to GraphQL in the reference guide redirect to the root instead of specific sections #42207
- Fix links to Spring Data's reference documentation #42203
- Update documentation to reflect new no handler found exception behavior #42164
- Polish configuration property reference #42162
- Remove link to “Converting a Spring Boot JAR Application to a WAR” as the guide is no longer available #42110
- Improve documentation in "Command-line Completion" #42091
- Deprecation reason for the autotime enabled, percentiles, and percentiles-historgram properties is confusing #41745
- Document that configuration property binding to a Kotlin value class with a default is not supported #41693
- Replace RFC 7807 by RFC 9457 in property documentation #41260
- Explain difference between OTel agent and Micrometer instrumentations #41227
🔨 Dependency Upgrades
- Upgrade to Groovy 4.0.23 #42291
- Upgrade to Infinispan 14.0.31.Final #42245
- Upgrade to Jakarta Servlet JSP JSTL 3.0.2 #42246
- Upgrade to Jetty 12.0.13 #42248
- Upgrade to Jetty Reactive HTTPClient 4.0.7 #42247
- Upgrade to Micrometer 1.12.10 #42121
- Upgrade to Micrometer Tracing 1.2.10 #42122
- Upgrade to MongoDB 4.11.4 #42249
- Upgrade to Netty 4.1.113.Final #42250
- Upgrade to Reactor Bom 2023.0.10 #42123
- Upgrade to Spring Data Bom 2023.1.10 #42124
- Upgrade to Spring Framework 6.1.13 #42125
- Upgrade to Spring HATEOAS 2.2.5 #42281
- Upgrade to Spring Integration 6.2.9 #42126
- Upgrade to Spring Kafka 3.1.9 #42127
- Upgrade to Spring Pulsar 1.0.10 #42128
- Upgrade to Spring Retry 2.0.9 #42325
- Upgrade to Tomcat 10.1.30 #42344
- Upgrade to Undertow 2.3.17.Final #42302
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Alchemik, @arefbehboudi, @izeye, @mushroom528, @nosan, and @quaff
v3.4.0-M2
⭐ New Features
- Add value alias to
@ConditionalOnAvailableEndpoint
and migrate simple conditions #41969 - Auto-configure remote fields on BraveBaggageManager #41884
- Add support for Pulsar default tenant/namespace #41851
- Add TWENTY_THREE to JavaVersion enum #41717
- When virtual threads are enabled, configure Spring Integration's task scheduler to use them #41695
- Support multiple Docker Compose files #41691
- GraphQL should reply with HTTP 415 for unsupported content type #41675
- Automatically disable banner when using structured logging #41659
- Make properties for the application's version and PID available in the Environment #41604
- Update
@ConditionalOnSingleCandidate
to deal with fallback beans #41580 - Improve property support for SAML private keys and certificates #41567
- Add support for grafana/otel-lgtm and LgtmStackContainer from Service Connection #41551
- Add support for CNB platform API version 0.14 #41549
- Allow PemContent.of to work with untrimmed content #41540
- Provide auto-configuration for authenticating with Couchbase using a client certificate #41520
- Refine structured logging support #41491
- Shut down Reactor Schedulers for WAR deployments #41548
- Add SslInfoContributor and SslHealthIndicator #41205
- Rework Cloud Foundry actuator support behind a pluggable abstraction #41135
- Add platform option for image building #40944
- Introduce an ApplicationProperties class so that we can stop binding directly to SpringApplication #40592
- Auto-configure HandlerMethodArgumentResolvers on AnnotatedControllerConfigurer #40393
- Automatically activate health probes in Cloud Foundry environments #39804
- Support
@Name
with JavaBean-based configuration properties #39452 - Make DataSourceBuilder be able to derive driverClassName from a URL #39376
- Make it easier to define a bean in addition to an auto-configured bean of the same type #22403
- Add execution metadata to scheduled tasks actuator endpoint #17585
- Make it easier to use the auto-configured EntityManagerFactoryBuilder with Hibernate-specific properties #15318
- Perform failure analysis when a unique CacheManager bean cannot be found #13348
- Provide a callback for customising Freemarker variables #8965
- Add support for enum default values in configuration processor #7562
🐞 Bug Fixes
- When using WebFlux, server.error.include-binding-errors=ALWAYS no longer has an effect when the BindingResult exception is the cause of a ResponseStatusException #41988
- PropertiesLauncher does not respect classpath.idx when adding jars in BOOT-INF/lib to the classpath #41971
- Web extension for SBOM endpoint isn't available under /cloudfoundryapplication #41891
- Launcher's ClassLoader is no longer parallel capable #41874
- spring-boot-testcontainers causes unwanted container initialization during AOT processing #41860
- DynamicPropertyRegistry in
@Bean-method
fails with spring-boot-testcontainers dependency in classpath (3.4.0-M1) #41839 - ReactiveElasticsearchRepositoriesAutoConfiguration should back off when Reactor is not on the classpath #41681
- mvn spring-boot:build-image fails when 'classifier' is set to non-default value #41662
- Spring Boot Maven plugin AOT cannot handle Maven modules with module-info.java #41648
- Docker publishRegistry in Maven plugin configuration is validated when publish option is false #41642
- Some
@ControllerEndpoint
and@RestControllerEndpoint
infrastructure remains undeprecated #41620 - Using Gradle's new file permission API is implemented in a way that prevents removal of the old API #41608
- Constructor binding of EnumMap fails due to missing key type #41564
@ConditionalOnBean
matches beans that are not autowire candidates resulting in UnsatisfiedDependencyException when an attempt is made to inject the bean #41526- Configuration properties enabled in a child context are ignored if an ancestor context has already enabled the properties #41487
📔 Documentation
- Release type conditionals are not working in documentation #41994
- Improve documented logging property descriptions and default values #41990
- Explain that enabling virtual threads disables traditional thread pools #41977
- Harmonize code sample for MyUserHandler in reference documentation #41950
- Document when environment variable property mapping applies #41946
- Javadoc of slice test annotations should describe more accurately which components are considered #41936
- Fix duplicate words #41921
- Correct grammar in 'Running your Application with Maven' #41869
- Document the need to explicitly reset mock servers when using mock server customizers directly #41850
- Document more clearly that username and password are not used when spring.data.redis.url is set #41749
- Fix typo in Grafana Connection Details #41705
- Document that spring-boot:repackage should not be run from the command-line #41696
- Pulsar configuration does not have default value for several entries in the metadata #41684
- management.otlp.metrics.export.aggregation-temporality does not have a default value in the metadata #41677
- server.error.include-path does not have a default value in the metadata #41673
- management.newrelic.metrics.export.client-provider-type does not have a default value in the metadata #41671
- The effect upon Actuator of defining your own SecurityFilterChain is documented inconsistently #41639
- Update link to documentation for log4j-spring-boot #41623
- Add hint for new dependencies required for Flyway #41595
- Fix link to Flyway reference documentation #41594
- Document configuration property binding's support for using
@Name
to customize a property name #41586 - Document unsupported configuration properties in Freemarker WebFlux [#11199](https:/...
v3.3.3
⭐ New Features
- Add TWENTY_THREE to JavaVersion enum #41716
🐞 Bug Fixes
- Extending DefaultErrorAttributes and overriding getErrorAttributes() gets called twice #41995
- When using WebFlux, server.error.include-binding-errors=ALWAYS no longer has an effect when the BindingResult exception is the cause of a ResponseStatusException #41987
- PropertiesLauncher does not respect classpath.idx when adding jars in BOOT-INF/lib to the classpath #41970
- Web extension for SBOM endpoint isn't available under /cloudfoundryapplication #41890
- Launcher's ClassLoader is no longer parallel capable #41873
- spring-boot-testcontainers causes unwanted container initialization during AOT processing #41859
- ReactiveElasticsearchRepositoriesAutoConfiguration should back off when Reactor is not on the classpath #41678
- mvn spring-boot:build-image fails when 'classifier' is set to non-default value #41661
- Spring Boot Maven plugin AOT cannot handle Maven modules with module-info.java #41647
- Docker publishRegistry in Maven plugin configuration is validated when publish option is false #41641
- Using Gradle's new file permission API is implemented in a way that prevents removal of the old API #41607
- Some
@ControllerEndpoint
and@RestControllerEndpoint
infrastructure remains undeprecated #41596 - Constructor binding of EnumMap fails due to missing key type #41563
📔 Documentation
- Improve documented logging property descriptions and default values #41989
- Explain that enabling virtual threads disables traditional thread pools #41976
- Harmonize code sample for MyUserHandler in reference documentation #41949
- Document when environment variable property mapping applies #41945
- Javadoc of slice test annotations should describe more accurately which components are considered #41935
- Fix duplicate words #41920
- Document the need to explicitly reset mock servers when using mock server customizers directly #41849
- Correct grammar in 'Running your Application with Maven' #41840
- Document more clearly that username and password are not used when spring.data.redis.url is set #41748
- Pulsar configuration does not have default value for several entries in the metadata #41683
- management.otlp.metrics.export.aggregation-temporality does not have a default value in the metadata #41676
- management.newrelic.metrics.export.client-provider-type does not have a default value in the metadata #41670
- server.error.include-path does not have a default value in the metadata #41667
- The effect upon Actuator of defining your own SecurityFilterChain is documented inconsistently #41638
- "Use Spring Data repositories" How-to incorrectly refers to Repository annotations #41628
- "Use Spring Data repositories" How-to incorrectly refers to Repository annotations #41627
- Update link to documentation for log4j-spring-boot #41622
- Fix link to Flyway reference documentation #41593
- Document configuration property binding's support for using
@Name
to customize a property name #41585 - Add hint for new dependencies required for Flyway #41574
- Document that spring-boot:repackage should not be run from the command-line #22317
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 6.1.3 #41782
- Upgrade to Awaitility 4.2.2 #41707
- Upgrade to Byte Buddy 1.14.19 #41886
- Upgrade to Couchbase Client 3.6.3 #41967
- Upgrade to CycloneDX Maven Plugin 2.8.1 #41783
- Upgrade to Infinispan 15.0.7.Final #41784
- Upgrade to Jakarta Servlet JSP JSTL 3.0.1 #41845
- Upgrade to Jersey 3.1.8 #41785
- Upgrade to Jetty 12.0.12 #41828
- Upgrade to Jetty Reactive HTTPClient 4.0.6 #41786
- Upgrade to jOOQ 3.19.11 #41846
- Upgrade to Kotlin 1.9.25 #41787
- Upgrade to Logback 1.5.7 #41887
- Upgrade to Maven Deploy Plugin 3.1.3 #41942
- Upgrade to Maven Install Plugin 3.1.3 #41943
- Upgrade to Micrometer 1.13.3 #41733
- Upgrade to Micrometer Tracing 1.3.3 #41734
- Upgrade to Neo4j Java Driver 5.23.0 #41743
- Upgrade to Netty 4.1.112.Final #41788
- Upgrade to Pulsar 3.2.4 #41789
- Upgrade to Pulsar Reactive 0.5.7 #41888
- Upgrade to Reactor Bom 2023.0.9 #41735
- Upgrade to RxJava3 3.1.9 #41847
- Upgrade to SLF4J 2.0.16 #41790
- Upgrade to Spring AMQP 3.1.7 #41953
- Upgrade to Spring Authorization Server 1.3.2 #41736
- Upgrade to Spring Data Bom 2024.0.3 #41737
- Upgrade to Spring Framework 6.1.12 #41738
- Upgrade to Spring HATEOAS 2.3.2 #41889
- Upgrade to Spring Integration 6.3.3 #41974
- Upgrade to Spring Kafka 3.2.3 #41954
- Upgrade to Spring LDAP 3.2.6 #41739
- Upgrade to Spring Pulsar 1.1.3 #41740
- Upgrade to Spring Retry 2.0.8 #41944
- Upgrade to Spring Security 6.3.3 #41985
- Upgrade to Spring Session 3.3.2 #41742
- Upgrade to Tomcat 10.1.28 #41791
- Upgrade to Yasson 3.0.4 #41792
❤️ Contributors
Thank you to all the contributors who worked on this release:
@PiyalAhmed, @Rajin9601, @cms04, @dreis2211, @eddumelendez, @hyunmin0317, @ivamly, @jmewes, @jxblum, @lamtrinhdev, @ngocnhan-tran1996, @quaff, and @ritzykey
v3.2.9
⭐ New Features
- Add TWENTY_THREE to JavaVersion enum #41710
🐞 Bug Fixes
- When using WebFlux, server.error.include-binding-errors=ALWAYS no longer has an effect when the BindingResult exception is the cause of a ResponseStatusException #41984
- spring-boot-testcontainers causes unwanted container initialization during AOT processing #41838
- Extending DefaultErrorAttributes and overriding getErrorAttributes() gets called twice #41732
- PropertiesLauncher does not respect classpath.idx when adding jars in BOOT-INF/lib to the classpath #41719
- ReactiveElasticsearchRepositoriesAutoConfiguration should back off when Reactor is not on the classpath #41672
- Launcher's ClassLoader is no longer parallel capable #41665
- Using Gradle's new file permission API is implemented in a way that prevents removal of the old API #41599
- Constructor binding of EnumMap fails due to missing key type #41550
- Spring Boot Maven plugin AOT cannot handle Maven modules with module-info.java #33383
- Docker publishRegistry in Maven plugin configuration is validated when publish option is false #29756
- mvn spring-boot:build-image fails when 'classifier' is set to non-default value #26721
📔 Documentation
- Release type conditionals are not working in documentation #41993
- Harmonize code sample for MyUserHandler in reference documentation #41948
- Explain that enabling virtual threads disables traditional thread pools #41937
- Improve documented logging property descriptions and default values #41933
- Fix duplicate words #41916
- Javadoc of slice test annotations should describe more accurately which components are considered #41914
- Document when environment variable property mapping applies #41877
- Correct grammar in 'Running your Application with Maven' #41868
- Document the need to explicitly reset mock servers when using mock server customizers directly #41848
- Pulsar configuration does not have default value for several entries in the metadata #41682
- management.otlp.metrics.export.aggregation-temporality does not have a default value in the metadata #41674
- management.newrelic.metrics.export.client-provider-type does not have a default value in the metadata #41666
- "Use Spring Data repositories" How-to incorrectly refers to Repository annotations #41625
- Update link to documentation for log4j-spring-boot #41612
- Fix link to Flyway reference documentation #41591
- Document configuration property binding's support for using
@Name
to customize a property name #41577 - The effect upon Actuator of defining your own SecurityFilterChain is documented inconsistently #41569
- Document more clearly that username and password are not used when spring.data.redis.url is set #41231
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.18.5 #41764
- Upgrade to Awaitility 4.2.2 #41706
- Upgrade to Byte Buddy 1.14.19 #41881
- Upgrade to Dropwizard Metrics 4.2.27 #41938
- Upgrade to Hazelcast 5.3.8 #41765
- Upgrade to Hibernate 6.4.10.Final #41766
- Upgrade to Infinispan 14.0.30.Final #41767
- Upgrade to Jakarta Servlet JSP JSTL 3.0.1 #41842
- Upgrade to Jersey 3.1.8 #41768
- Upgrade to Jetty 12.0.12 #41770
- Upgrade to Jetty Reactive HTTPClient 4.0.6 #41769
- Upgrade to jOOQ 3.18.18 #41843
- Upgrade to Kotlin 1.9.25 #41771
- Upgrade to Maven Deploy Plugin 3.1.3 #41939
- Upgrade to Maven Install Plugin 3.1.3 #41940
- Upgrade to Micrometer 1.12.9 #41720
- Upgrade to Micrometer Tracing 1.2.9 #41721
- Upgrade to MongoDB 4.11.3 #41772
- Upgrade to Neo4j Java Driver 5.23.0 #41730
- Upgrade to Netty 4.1.112.Final #41773
- Upgrade to Pulsar Reactive 0.5.7 #41882
- Upgrade to Reactor Bom 2023.0.9 #41722
- Upgrade to RxJava3 3.1.9 #41844
- Upgrade to SLF4J 2.0.16 #41774
- Upgrade to Spring AMQP 3.1.7 #41951
- Upgrade to Spring Authorization Server 1.2.6 #41723
- Upgrade to Spring Data Bom 2023.1.9 #41724
- Upgrade to Spring Framework 6.1.12 #41725
- Upgrade to Spring HATEOAS 2.2.4 #41883
- Upgrade to Spring Integration 6.2.8 #41973
- Upgrade to Spring Kafka 3.1.8 #41952
- Upgrade to Spring LDAP 3.2.6 #41726
- Upgrade to Spring Pulsar 1.0.9 #41727
- Upgrade to Spring Retry 2.0.8 #41941
- Upgrade to Spring Security 6.2.6 #41728
- Upgrade to Spring Session 3.2.5 #41729
- Upgrade to Tomcat 10.1.28 #41775
- Upgrade to Yasson 3.0.4 #41776
❤️ Contributors
Thank you to all the contributors who worked on this release:
@PiyalAhmed, @Rajin9601, @dreis2211, @hyunmin0317, @ivamly, @lamtrinhdev, @ngocnhan-tran1996, @quaff, and @ritzykey
v3.4.0-M1
⭐ New Features
- Allow ContainerConnectionDetailsFactory to match on one of multiple different connection names #41543
- Add support for Postgres trust host auth method with Docker Compose #41511
- Add utility class to help write JSON #41489
- Deprecate LOGGED_APPLICATION_NAME log property in favor of APPLICATION_NAME with the verbatim value #41444
- Remove APIs that were deprecated for removal in 3.4 #41435
- Register Base64ProtocolResolver as protocol resolver by default #41433
- Deprecate spring.gson.lenient in favor of a new spring.gson.strictness property #41430
- Support untrusted CNB builders when building images #41352
- Group Kafka back-off properties #41335
- Support service connections for redis/redis-stack and redis/redis-stack-server #41327
- Publish an AuditEvent on logout #41278
- Add memory info to ProcessInfo #41262
- Add test auto-configuration for MockMvcTester #41198
- Raise the minimum supported version of Gradle to 7.6.4+ or 8.3+ #41180
- Auto-configure SpringLiquibase with Liquibase Customizer #40986
- Provide auto-configurations for OpenTelemetry Logs #40961
- Make it easier to provide a custom RequestToViewNameTranslator #40874
- Use Paketo tiny builder by default for JVM and native apps #40859
- Add support for org.testcontainers.kafka.KafkaContainer #40695
- Add a customizer for ProxyConnectionFactory.Builder from r2dbc-proxy #40555
- Add a customizer for Lettuce's ClientOptions #40484
- Align cascade behavior of
@Validated
@ConfigurationProperties
with the bean validation spec #40345 - Add support for webjars-locator-lite #40146
- Add SslBundle support to MailSender #40037
- Add standardized property to distinguish a group of applications #39957
- Deprecate
@MockBean
and@SpyBean
#39864 - Use native connection factory with JMS message listener containers #39816
- Provide a callback that enables customization of the properties used to create the JCache CacheManager #39350
- Allow NestedConfigurationProperty on getters #38844
- Add property to specify Docker Compose startup and shutdown flags #38763
- Disable trace exporting via properties #34620
- Support structured logging as alternative to pattern layout logging #5479
🐞 Bug Fixes
- Spring Authorization Server now defaults multipleIssuersAllowed to false and it cannot be easily re-enabled #41544
- ServiceConnection does not work with
@DataLdapTest
#41525 - No configuration property for defaultTimeout setting that was introduced in Spring Integration 6.2 #41522
- NPE during auto-configuration in OnClassCondition.resolveOutcomesThreaded because firstHalf is null #41505
@NestedConfigurationProperty
doesn't work on records #41317- PropertiesMigrationListener wrongly reports property as deprecated #41253
- TestcontainersLifecycleBeanPostProcessor does not work correctly with scoped beans #41239
- Error message can be misleading if spring.config.import fails to resolve #41237
- build-image failures after docker desktop update with 'Illegal char <:> at index 5: npipe:////' #41235
- When using Jetty, filters, listeners, and servlets are not initialized with the same thread context classloader #41226
- DirtiesContext used with Webflux, a random port and multiple contexts causes multiple contexts to misbehave #41222
- NoSuchMethodException on org.apache.activemq.ActiveMQConnectionFactory.
<init>
when using spring-boot-starter-activemq in a native image #41215 - Failure during test AOT processing when multiple merged context configurations result in the Logback model being written multiple times #36997
📔 Documentation
- Fix documentation links in the README #41546
- Document the types to which each spring.mvc.format and spring.webflux.format property applies #41519
- Document that logging.file.name and logging.file.path cannot be used together #41517
- Refine CDS how-to guide #41467
- Fix typos in javadoc of BootstrapContext #41449
- CDS link in "Efficient Deployments" documentation is broken #41322
- Update Kotlin DSL examples that configure the environment of bootBuildImage to be additive #41271
- Document tracing support for RestClient #41193
- Documentation wrongly states that zipkin-sender-urlconnection is needed #41190
🔨 Dependency Upgrades
- Upgrade to Artemis 2.35.0 #41400
- Upgrade to AspectJ 1.9.22.1 #41475
- Upgrade to AssertJ 3.26.3 #41437
- Upgrade to Build Helper Maven Plugin 3.6.0 #41402
- Upgrade to Byte Buddy 1.14.18 #41385
- Upgrade to Commons Codec 1.17.1 #41528
- Upgrade to Crac 1.5.0 #41404
- Upgrade to Dependency Management Plugin 1.1.6 #41386
- Upgrade to Flyway 10.15.2 #41387
- Upgrade to Git Commit ID Maven Plugin 9.0.1 #41406
- Upgrade to GraphQL Java 22.1 #41341
- Upgrade to Groovy 4.0.22 #41388
- Upgrade to Gson 2.11.0 #41407
- Upgrade to H2 2.3.230 #41538
- Upgrade to HtmlUnit 4.3.0 #41408
- Upgrade to HttpCore5 5.2.5 #41389
- Upgrade to Jackson Bom 2.17.2 #41390
- Upgrade to JBoss Logging 3.6.0.Final #41409
- Upgrade to Jetty 12.0.11 #41391
- Upgrade to JsonAssert 1.5.3 #41392
- Upgrade to JUnit Jupiter 5.10.3 #41393
- Upgrade to Kafka 3.7.1 #41394
- Upgrade to Liquibase 4.28.0 #41194
- Upgrad...
v3.3.2
🐞 Bug Fixes
- No configuration property for defaultTimeout setting that was introduced in Spring Integration 6.2 #41521
- NPE during auto-configuration in OnClassCondition.resolveOutcomesThreaded because firstHalf is null #41504
- Spring Authorization Server now defaults multipleIssuersAllowed to false and it cannot be easily re-enabled #41355
- ServiceConnection does not work with
@DataLdapTest
#41325 - PropertiesMigrationListener wrongly reports property as deprecated #41252
@NestedConfigurationProperty
doesn't work on records #41251- TestcontainersLifecycleBeanPostProcessor does not work correctly with scoped beans #41238
- Error message can be misleading if spring.config.import fails to resolve #41236
- build-image failures after docker desktop update with 'Illegal char <:> at index 5: npipe:////' #41234
- When using Jetty, filters, listeners, and servlets are not initialized with the same thread context classloader #41225
- DirtiesContext used with Webflux, a random port and multiple contexts causes multiple contexts to misbehave #41221
- NoSuchMethodException on org.apache.activemq.ActiveMQConnectionFactory.
<init>
when using spring-boot-starter-activemq in a native image #41214
📔 Documentation
- Fix documentation links in the README #41531
- Document the types to which each spring.mvc.format and spring.webflux.format property applies #41518
- Document that logging.file.name and logging.file.path cannot be used together #41516
- Refine CDS how-to guide #41464
- Fix typos in javadoc of BootstrapContext #41448
- CDS link in "Efficient Deployments" documentation is broken #41321
- Update Kotlin DSL examples that configure the environment of bootBuildImage to be additive #41270
- Document tracing support for RestClient #41192
- Documentation wrongly states that zipkin-sender-urlconnection is needed #41181
🔨 Dependency Upgrades
- Upgrade to AspectJ 1.9.22.1 #41474
- Upgrade to Byte Buddy 1.14.18 #41371
- Upgrade to Dependency Management Plugin 1.1.6 #41372
- Upgrade to GraphQL Java 22.1 #41219
- Upgrade to Groovy 4.0.22 #41373
- Upgrade to HttpCore5 5.2.5 #41374
- Upgrade to Jackson Bom 2.17.2 #41375
- Upgrade to Jetty 12.0.11 #41376
- Upgrade to JsonAssert 1.5.3 #41377
- Upgrade to JUnit Jupiter 5.10.3 #41378
- Upgrade to Kafka 3.7.1 #41379
- Upgrade to Lombok 1.18.34 #41380
- Upgrade to Micrometer 1.13.2 #41298
- Upgrade to Micrometer Tracing 1.3.2 #41299
- Upgrade to MSSQL JDBC 12.6.3.jre11 #41381
- Upgrade to Neo4j Java Driver 5.22.0 #41382
- Upgrade to R2DBC MariaDB 1.2.1 #41383
- Upgrade to Reactor Bom 2023.0.8 #41384
- Upgrade to Spring Data Bom 2024.0.2 #41300
- Upgrade to Spring Framework 6.1.11 #41301
- Upgrade to Spring GraphQL 1.3.2 #41527
- Upgrade to Spring HATEOAS 2.3.1 #41497
- Upgrade to Spring Integration 6.3.2 #41302
- Upgrade to Spring Kafka 3.2.2 #41303
- Upgrade to Spring Pulsar 1.1.2 #41536
- Upgrade to Spring Retry 2.0.7 #41485
- Upgrade to Tomcat 10.1.26 #41498
❤️ Contributors
Thank you to all the contributors who worked on this release:
@acouvreur, @anbusampath, @eddumelendez, @izeye, @jxblum, @mateusscheper, @opcooc, and @sdeleuze
v3.2.8
🐞 Bug Fixes
- NPE during auto-configuration in OnClassCondition.resolveOutcomesThreaded because firstHalf is null #41492
- No configuration property for defaultTimeout setting that was introduced in Spring Integration 6.2 #41477
- NoSuchMethodException on org.apache.activemq.ActiveMQConnectionFactory.
<init>
when using spring-boot-starter-activemq in a native image #41212 - build-image failures after docker desktop update with 'Illegal char <:> at index 5: npipe:////' #41199
- DirtiesContext used with Webflux, a random port and multiple contexts causes multiple contexts to misbehave #38199
- When using Jetty, filters, listeners, and servlets are not initialized with the same thread context classloader #37649
- Error message can be misleading if spring.config.import fails to resolve #36243
- TestcontainersLifecycleBeanPostProcessor does not work correctly with scoped beans #35786
- PropertiesMigrationListener wrongly reports property as deprecated #35774
📔 Documentation
- Fix documentation links in the README #41547
- Document the types to which each spring.mvc.format and spring.webflux.format property applies #41482
- Fix typos in javadoc of BootstrapContext #41443
- Document that logging.file.name and logging.file.path cannot be used together #41351
- Document tracing support for RestClient #41182
- Update Kotlin DSL examples that configure the environment of bootBuildImage to be additive #41173
🔨 Dependency Upgrades
- Upgrade to AspectJ 1.9.22.1 #41470
- Upgrade to Byte Buddy 1.14.18 #41361
- Upgrade to Dependency Management Plugin 1.1.6 #41362
- Upgrade to GraphQL Java 21.5 #41340
- Upgrade to Groovy 4.0.22 #41363
- Upgrade to HttpCore5 5.2.5 #41364
- Upgrade to Jetty 12.0.11 #41365
- Upgrade to JsonAssert 1.5.3 #41366
- Upgrade to JUnit Jupiter 5.10.3 #41367
- Upgrade to Lombok 1.18.34 #41368
- Upgrade to Micrometer 1.12.8 #41292
- Upgrade to Micrometer Tracing 1.2.8 #41293
- Upgrade to Neo4j Java Driver 5.22.0 #41370
- Upgrade to Reactor Bom 2023.0.8 #41436
- Upgrade to Spring Data Bom 2023.1.8 #41294
- Upgrade to Spring Framework 6.1.11 #41295
- Upgrade to Spring GraphQL 1.2.8 #41523
- Upgrade to Spring HATEOAS 2.2.3 #41493
- Upgrade to Spring Integration 6.2.7 #41296
- Upgrade to Spring Kafka 3.1.7 #41297
- Upgrade to Spring Pulsar 1.0.8 #41532
- Upgrade to Spring Retry 2.0.7 #41484
- Upgrade to SQLite JDBC 3.43.2.2 #41495
- Upgrade to Tomcat 10.1.26 #41496
❤️ Contributors
Thank you to all the contributors who worked on this release:
@jxblum, @mateusscheper, and @sdeleuze
v3.3.1
🐞 Bug Fixes
- SQL Server JDBC URL is malformed after adding org.springframework.boot.jdbc.parameters label #41169
- Git instant properties cannot be coerced following git-commit-id Maven plugin upgrade #41152
- Excluding status code from DefaultErrorAttributes throws NPE #41141
- Spring Boot remote restart with devtools causes 'factory already defined' Tomcat error when running with 'java -jar' #41107
- MongoHealthIndicator not compliant with Mongo stable API with strict setting #41104
- Service connection for bitnami mongodb fails to connect #41097
- Image building requires builder to specify a stack #41091
- DataSourceProperties fail to bind if java.sql module isn't included #41084
- AOT causes Logback configuration error when using include #41081
- Image building hangs when builder and buildpack are configured #41049
- IllegalArgumentException when trying to use Tomcat's HttpNio2Protocol with Spring Boot-configured SSL #41010
- Uber jar fails to start when it contains a dependency with Multi-Release: true in its manifest and unexpected file entries in META-INF/versions #41006
- JSP-related resources may not be found in an executable war file when using Jetty #40996
- The value of the tomcat.threads.config.max metric is always -1, irrespective of the configured maximum number of threads #40957
- The auto-configured reactiveNeo4jTransactionManager may cause a failure due to multiple TransactionManager beans #40953
- Application fails to start when server.tomcat.threads.max < 10 #40945
- SBOM actuator endpoint doesn't work in a native image #40939
- Starter parent applies its configuration of the CycloneDX Maven plugin too broadly #40927
- buildInfo does not work with Gradle 8.7 or later when the configuration cache is enabled #40924
- Prometheus Exemplars are missing from _count #40904
- Extract fails due to a duplicate entry when BOOT-INF/classes contains a directory that's also present in the root of the jar #40903
- sbom is not available to the actuator endpoint when using bootRun or bootWar #40890
- A newline character is missing from the start of the default banner #40889
📔 Documentation
- Fix links to Spring AMQP's javadoc #41144
- Document more precisely how a Container's Docker image name is used to find the matching service connection #41123
- Cross-link to the CDS how-to guide #41118
- Fix typos in javadoc of MockServerRestClientCustomizer and MockServerRestTemplateCustomizer #41065
- Improve readability when listing three pillars of observability #41064
- Add CDS training run configuration documentation #41045
- Document the need to switch to io.micrometer:micrometer-registry-prometheus-simpleclient to use the Prometheus push gateway #40993
- Improve consistency of documentation guidelines for packaging and running applications #40977
- Fix typos in method names and javadoc #40976
- Replace hard-coded links to Micrometer in documentation #40967
- Add Kotlin example for
@Testcontainers
#40943 - Fix various minor inconsistencies of the documentation #40942
- Warn in the documentation that spring.profiles.group can only be used in non-profile-specific documents #40941
- Broken Micrometer links in documentation #40916
- Document Buildpacks CDS and Spring AOT support #40762
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.17 #41066
- Upgrade to FreeMarker 2.3.33 #41067
- Upgrade to HSQLDB 2.7.3 #41068
- Upgrade to Infinispan 15.0.5.Final #41159
- Upgrade to Jaybird 5.0.5.java11 #41132
- Upgrade to Jersey 3.1.7 #41069
- Upgrade to Jetty 12.0.10 #41071
- Upgrade to Jetty Reactive HTTPClient 4.0.5 #41070
- Upgrade to jOOQ 3.19.10 #41133
- Upgrade to Maven Help Plugin 3.4.1 #41073
- Upgrade to Maven Jar Plugin 3.4.2 #41160
- Upgrade to Micrometer 1.13.1 #41030
- Upgrade to Micrometer Tracing 1.3.1 #41042
- Upgrade to MSSQL JDBC 12.6.2.jre11 #41074
- Upgrade to Neo4j Java Driver 5.21.0 #41043
- Upgrade to Netty 4.1.111.Final #41075
- Upgrade to Pulsar Reactive 0.5.6 #41134
- Upgrade to Reactor Bom 2023.0.7 #41031
- Upgrade to Spring AMQP 3.1.6 #41145
- Upgrade to Spring Authorization Server 1.3.1 #41032
- Upgrade to Spring Data Bom 2024.0.1 #41033
- Upgrade to Spring Framework 6.1.10 #41150
- Upgrade to Spring GraphQL 1.3.1 #41035
- Upgrade to Spring Integration 6.3.1 #41036
- Upgrade to Spring Kafka 3.2.1 #41037
- Upgrade to Spring LDAP 3.2.4 #41038
- Upgrade to Spring Pulsar 1.1.1 #41039
- Upgrade to Spring Security 6.3.1 #41040
- Upgrade to Spring Session 3.3.1 #41041
- Upgrade to Tomcat 10.1.25 #41161
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Eng-Fouad, @PiyalAhmed, @Seungpang, @asashour, @cmabdullah, @dependabot[bot], @donghoony, @erie0210, @izeye, @mateusscheper, @onobc, @quaff, @sdeleuze, and @vsanna
v3.2.7
🐞 Bug Fixes
- SQL Server JDBC URL is malformed after adding org.springframework.boot.jdbc.parameters label #41146
- Git instant properties cannot be coerced following git-commit-id Maven plugin upgrade #41109
- MongoHealthIndicator not compliant with Mongo stable API with strict setting #41101
- DataSourceProperties fail to bind if java.sql module isn't included #41082
- Image building requires builder to specify a stack #41046
- IllegalArgumentException when trying to use Tomcat's HttpNio2Protocol with Spring Boot-configured SSL #41007
- Uber jar fails to start when it contains a dependency with Multi-Release: true in its manifest and unexpected file entries in META-INF/versions #41001
- buildInfo does not work with Gradle 8.7 or later when the configuration cache is enabled #40911
- The auto-configured reactiveNeo4jTransactionManager may cause a failure due to multiple TransactionManager beans #40895
- Flyway auto-configuration does not work with Flyway 10 when using GraalVM #40821
- Image building hangs when builder and buildpack are configured #40697
- Spring Boot remote restart with devtools causes 'factory already defined' Tomcat error when running with 'java -jar' #39733
- JSP-related resources may not be found in an executable war file when using Jetty #39472
- Excluding status code from DefaultErrorAttributes throws NPE #30011
📔 Documentation
- Document more precisely how a Container's Docker image name is used to find the matching service connection #41111
- Fix typos in javadoc of MockServerRestClientCustomizer and MockServerRestTemplateCustomizer #41052
- Improve readability when listing three pillars of observability #41051
- Fix typos in method names and javadoc #40971
- Warn in the documentation that spring.profiles.group can only be used in non-profile-specific documents #40918
- Add Kotlin example for
@Testcontainers
#40905 - Fix various minor inconsistencies of the documentation #40900
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.17 #41054
- Upgrade to Dropwizard Metrics 4.2.26 #41055
- Upgrade to FreeMarker 2.3.33 #41056
- Upgrade to Hibernate 6.4.9.Final #41095
- Upgrade to HSQLDB 2.7.3 #41057
- Upgrade to Infinispan 14.0.29.Final #41096
- Upgrade to Jaybird 5.0.5.java11 #41127
- Upgrade to Jersey 3.1.7 #41058
- Upgrade to Jetty 12.0.10 #41060
- Upgrade to Jetty Reactive HTTPClient 4.0.5 #41059
- Upgrade to jOOQ 3.18.17 #41128
- Upgrade to Maven Help Plugin 3.4.1 #41062
- Upgrade to Micrometer 1.12.7 #41015
- Upgrade to Micrometer Tracing 1.2.7 #41027
- Upgrade to Neo4j Java Driver 5.21.0 #41028
- Upgrade to Netty 4.1.111.Final #41063
- Upgrade to Pulsar Reactive 0.5.6 #41129
- Upgrade to Reactor Bom 2023.0.7 #41016
- Upgrade to Spring AMQP 3.1.6 #41143
- Upgrade to Spring Authorization Server 1.2.5 #41017
- Upgrade to Spring Data Bom 2023.1.7 #41018
- Upgrade to Spring Framework 6.1.10 #41149
- Upgrade to Spring GraphQL 1.2.7 #41020
- Upgrade to Spring Integration 6.2.6 #41021
- Upgrade to Spring Kafka 3.1.6 #41022
- Upgrade to Spring LDAP 3.2.4 #41023
- Upgrade to Spring Pulsar 1.0.7 #41024
- Upgrade to Spring Security 6.2.5 #41025
- Upgrade to Spring Session 3.2.4 #41026
- Upgrade to Tomcat 10.1.25 #41158
❤️ Contributors
Thank you to all the contributors who worked on this release:
@MazizEsa, @PiyalAhmed, @asashour, @cmabdullah, @donghoony, @erie0210, @mateusscheper, @quaff, and @vsanna
v3.3.0
⭐ New Features
- Add support for descriptions of record components in configuration metadata generation #29403
🐞 Bug Fixes
- gradlew bootBuildImage fails with Podman on macOS Sonoma #40871
- Pulsar auth parameters don't properly encode JSON values #40869
- When using JPA and ImportTestcontainers, test context may fail to refresh due to "Mapped port can only be obtained after the container is started" #40863
- Default MIME mappings are not loaded unless additional mappings are configured #40860
- Starting from 3.2.x,
@SpyBean
is not able to initialise MongoRepository bean of the generic type #40855 - Auto-configuration ordering change breaks DocumentReference (in non-reactive MongoTemplate) when depending on mongodb-driver-reactivestreams #40851
- Neo4jReactiveDataAutoConfiguration creates incorrectly named bean #40836
- Image building fails during cleanup when bind mount has read-only content #40799
- Failure Analysis for InvalidConfigurationPropertyValueException is skipped when the property is not set #40691
- IllegalArgumentException can be thrown when running an uber jar on a shared drive #40643
- setReadTimeout can't be set via Reflective factory on JettyClientHttpRequestFactory #40638
- URISyntaxException is raised if the spring boot application is started in a location that contains invalid URI characters #40616
- resolveMainClassName fails when building with Gradle using Java 22 #40613
- AnsiOutput.detectIfAnsiCapable broken on JDK22 #40609
- Help information for spring init's build option has the wrong default #40606
- JarUrlConnection.getPermission() can throw NullPointerException if jarFileConnection is null #40599
- Whitespace is not correctly trimmed when generating configuration properties metadata from records #40593
- In some situations, the failure when the AOT-generated initializer cannot be loaded is less helpful than before #40584
- Properties binding eagerly creates superfluous maps #40561
- Configuring SSL bundle reload for non-file resource types causes errors that are difficult to diagnose #40560
- spring-boot-dependencies cannot be used with repositories that ban com.oracle.database.jdbc:ojdbc-bom #40535
- Buildpacks do not support Docker with containerd image store #40526
- SpringBootMockMvcBuilderCustomizer can crash cryptically while collecting data that it would have discarded anyway #40517
- Containers not shut down between tests when using .withReuse(true) but env. does not support reuse (e.g. CI builds) #40509
- CookieSameSiteSupplier influences session cookie #40501
<springProperty>
and<springProfile>
do not work in<include>
after Logback upgrade #40491- Runtime hint registration for property binding should not fail when parameter information is unavailable #40486
- ServiceLevelObjectiveBoundary properties cannot be bound in a native image application #40483
- server.error.include-binding-errors does not recognize MethodValidationResult exceptions #40474
- spring.data.redis.cluster.nodes and spring.data.redis.sentinel.nodes do not handle IPv6 addresses correctly #40467
- Using relative paths to describe the classpath in the error message from ResolveMainClassName hinders problem diagnosis #40465
- Jartools extract command doesn't extract all files from META-INF #40456
- Native image doesn't start and doesn't log anything if an environment post processor throws an exception #40451
- Unlike DataSourceAutoConfiguration, DevToolsDataSourceAutoConfiguration assumes that javax.sql.DataSource will always be available #40441
📔 Documentation
- Improve graceful shutdown documentation to remove ambiguity #40846
- Document ways to opt out from immutable
@ConfigurationProperties
binding with single constructor #40844 - Document that a custom HttpMessageConverters bean can be used to reorder json message converters when needed #40839
- Address ambiguity now that Testcontainers has two classes named KafkaContainer #40756
- Publish API documentation for Spring Boot's Kotlin APIs #40692
- Fix typo in features doc #40631
- Code inclusion in Jersey documentation is broken #40629
- Add How-To for ManagedClassNameFilter #40617
- Clarify devtools restart class loader #40608
- Document default value of management.zipkin.tracing.encoding #40588
- Note that spring-boot-docker-compose is excluded by default from packaged jars #40565
- Clarify docs around spring.jpa.generate-ddl #40523
- Clarify the directory that's used by default to find Docker Compose compose.yaml #40515
- Suggest testAndDevelopmentOnly configuration when using Docker Compose support in tests #40481
- Clarify that all named properties must match for
@ConditionalOnProperty
to match #40471 - Links to Spring Batch javadoc for EnableBatchProcessing and DefaultBatchConfiguration are broken #40141
- Add grpc starter and httpexchange starter to the community starters document #39437
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.16 #40879
- Upgrade to Cassandra Driver 4.18.1 #40842
- Upgrade to Couchbase Client 3.6.2 #40737
- Upgrade to Dependency Management Plugin 1.1.5 #40738
- Upgrade to Elasticsearch Client 8.13.4 #40739
- Upgrade to GraphQL Java 22.0 #40618
- Upgrade to Hibernate 6.5.2.Final #40867
- Upgrade to Infinispan 15.0.4.Final #40865
- Upgrade to Jackson Bom 2.17.1 #40742
- Upgrade to Jakarta XML SOAP 3.0.2 #40786
- Upgrade to Jakarta XML WS 4.0.2 #40787
- Upgrade to Jetty 12.0.9 #40743
- Upgrade to Jetty Reactive HTTPClient 4.0.4 #40811
- Upgrade to jOOQ 3.19.8 #40744
- Upgrade to Kotlin 1.9.24 #40745
- Upgrade to Kotlin Coroutines 1.8.1 #40746
- Upgrade to Maven Deploy Plugin 3.1.2 [#40747](#4...