⭐ 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
- Upgrade to Maven Install Plugin 3.1.2 #40748
- Upgrade to Maven Jar Plugin 3.4.1 #40749
- Upgrade to Maven Shade Plugin 3.5.3 #40750
- Upgrade to Micrometer 1.13.0 #40666
- Upgrade to Micrometer Tracing 1.3.0 #40667
- Upgrade to Native Build Tools Plugin 0.10.2 #40840
- Upgrade to Neo4j Java Driver 5.20.0 #40681
- Upgrade to Netty 4.1.110.Final #40880
- Upgrade to Pooled JMS 3.1.6 #40751
- Upgrade to Pulsar 3.2.3 #40841
- Upgrade to Pulsar Reactive 0.5.5 #40812
- Upgrade to R2DBC Proxy 1.1.5.RELEASE #40752
- Upgrade to Reactor Bom 2023.0.6 #40668
- Upgrade to SAAJ Impl 3.0.4 #40788
- Upgrade to Spring AMQP 3.1.5 #40829
- Upgrade to Spring Authorization Server 1.3.0 #40669
- Upgrade to Spring Batch 5.1.2 #40670
- Upgrade to Spring Data Bom 2024.0.0 #40671
- Upgrade to Spring Framework 6.1.8 #40830
- Upgrade to Spring GraphQL 1.3.0 #40673
- Upgrade to Spring HATEOAS 2.3.0 #40674
- Upgrade to Spring Integration 6.3.0 #40675
- Upgrade to Spring Kafka 3.2.0 #40676
- Upgrade to Spring Pulsar 1.1.0 #40677
- Upgrade to Spring Retry 2.0.6 #40789
- Upgrade to Spring Security 6.3.0 #40678
- Upgrade to Spring Session 3.3.0 #40679
- Upgrade to Spring WS 4.0.11 #40680
- Upgrade to Testcontainers 1.19.8 #40753
- Upgrade to Tomcat 10.1.24 #40790
- Upgrade to Undertow 2.3.13.Final #40755
❤️ Contributors
Thank you to all the contributors who worked on this release:
@An1s9n, @DanielLiu1123, @PiyalAhmed, @chaewss, @coursar, @dependabot[bot], @dsyer, @dukbong, @facewise, @izeye, @nahidshahin, @onobc, @quaff, @snicoll, @tobi-laa, and @yokotaso