Releases: spring-projects/spring-boot
v3.1.6
⭐ New Features
- Upgrade default CNB builders to Paketo Jammy #38485
🐞 Bug Fixes
- Annotation based ConditionalOnBean checks can cause early initialization of FactoryBeans #38473
- App fails to start with a NoSuchMethodError when using Flyway 10.0.0 #38267
- Resolution of productionRuntimeClasspath configuration may select the wrong variant and contain a dependency's source jar #38209
- App that depends on Tomcat and on Jetty's websocket-server module fails to start with IllegalStateException: WebSocketComponents has not been created #38181
- spring.webflux.multipart.max-disk-usage-per-part behaves incorrectly for values where the number of bytes overflows an int #38151
- Mail health indicator fails when host is not set in properties #38043
- Docker Compose integration does not work with 2.23.0 due to 'Cannot invoke "org.springframework.boot.docker.compose.core.DockerCliInspectResponse.hostConfig()" because "inspectResponse" is null' #37982
- Docker JSON parsing fails on certain locales #37648
- Testcontainers support for various containers does not work in a native-image #36606
📔 Documentation
- Document supported SQL comment prefixes #38495
- Update access log pattern documentation to align with changes in Tomcat 10 #38424
- Add a Restarting a stopped or failed Job section to the batch howto #38340
- Fix link to Elasticsearch health indicator #38333
- Update Spring Framework documentation links #38288
- Code sample in "Developing Your First Spring Boot Application" does not work #38271
- Improve --help and documentation for "encodepassword -a/--algorithm" in the Spring Boot CLI #38248
- Add how-to documentation for test-only database migrations with Flyway/Liquibase #38230
- Document that PEM content can be used directly in application.yaml #38210
- Document that TomcatConnectorCustomizers are not applied to additional connectors #38197
- Document that application.* banner variables require a packaged jar or the use of Boot's launcher #38148
- Improve systemd configuration documentation #38116
- Clarify that
@AutoConfigureWebTestClient
binds WebTestClient to mock infrastructure #38113 - MyErrorWebExceptionHandler example in documentation isn't working #38110
- Document that properties that change an application's beans are fixed at build time #38107
- Add section on AspectJ support #38096
- Document that SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS is disabled by default #38089
- Document that testing with ApplicationContextRunner in a native image is not supported #38081
- Spring Boot Actuator documentation misses management.endpoint.env.show-values property #38079
- Document how to downgrade dependencies to use embedded Jetty 11 #38076
- Update "Use Another Web Server" how-to to reflect Servlet 5.0 baseline #38074
- Update "Running Behind a Front-end Proxy Server" to include reactive and ForwardedHeaderTransformer #38071
- Document how to customize the basePackages that auto-configurations consider (for example Spring Data Repositories) #38053
- Reference documentation MyContainersConfiguration sample is missing
@ServiceConnection
#38046 - Clarifying documentation on including a top-level
@TestConfiguration
class in a test #38040 - Document ConfigurationPropertyCaching #38037
- Document server.servlet.encoding.* properties and server.servlet.encoding.mapping in particular #38034
- Document configuration for building images with Colima #38031
- Add a section on customizing embedded reactive servers #38027
- Improve documentation of
classpath.idx
file and its generation by the Maven and Gradle plugins #38024 - Document additional user configuration that's required after setting
spring.hateoas.use-hal-as-default-json-media-type
tofalse
#38021 - Clarify that MVC components provided through WebMvcRegistrations are subject to subsequent processing and configuration by MVC #38018
- Add Embedded MongoDB to community starters #38015
- Document that spring-boot-starter-parent sets maven.compiler.release and how to unset it if needed #37993
- Improve health group membership validation error message to provide hint for property to disable validation #36489
- Explain how Docker Compose support works when services are already running #36483
- Outdated spring-boot-maven-plugin build-info documentation causing project builds to fail #36114
- When using Testcontainers at development time with
@ServiceConnection
on a@Bean
method, describe when to use the name attribute and why #36071 - Make distinction between Testcontainers for integration tests and development more clear in documentation #35856
- Clarify documentation on importing Testcontainer declarations and using
@ServiceConnection
or@DynamicPropertySource
#35629 - Improve documentation regarding tracing in tests #33975
- Document the accepted inputs when configuring tags on spring-boot:build-image and bootBuildImage #33088
- Document how to use cloudfoundry specific actuators with a custom base path for webflux applications #24991
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.18.3 #38452
- Upgrade to AspectJ 1.9.20.1 #38357
- Upgrade to Byte Buddy 1.14.10 #38453
- Upgrade to DB2 JDBC 11.5.9.0 #38454
- Upgrade to Dependency Management Plugin 1.1.4 #38345
- Upgrade to Dropwizard Metrics 4.2.22 #38455
- Upgrade to Glassfish JAXB 4.0.4 #38456
- Upgrade to Infinispan 14.0.21.Final #38457
- Upgrade to Jakarta Json 2.1.3 #38458
- Upgrade to Jakarta XML SOAP 3.0.1 #38459
- Upgrade to Jakarta XML WS 4.0.1 #38460
- Upgrade to Jetty 11.0.18 #38462
- Upgrade to Jetty Reactive HTTPClient 3.0.10 #38461
- Upgrade to Lettuce 6.2.7.RELEASE #38463
- Upgrade to Micrometer 1.11.6 [#38297](https://github.com/spring-projects/spring-boot/iss...
v3.0.13
⚠️ Noteworthy Changes
- Following the Paketo team's announcement that the Bionic CNB builders will be removed, the default builder using by
bootBuildImage
(Gradle) andspring-boot:build-image
(Maven) has been changed to Paketo Jammy #38477
🐞 Bug Fixes
- App fails to start with a NoSuchMethodError when using Flyway 10.0.0 #38266
- spring.webflux.multipart.max-disk-usage-per-part behaves incorrectly for values where the number of bytes overflows an int #38150
- Mail health indicator fails when host is not set in properties #38042
📔 Documentation
- Document supported SQL comment prefixes #38494
- Update access log pattern documentation to align with changes in Tomcat 10 #38403
- Fix link to Elasticsearch health indicator #38332
- Add a Restarting a stopped or failed Job section to the batch howto #38326
- Code sample in "Developing Your First Spring Boot Application" does not work #38270
- Improve --help and documentation for "encodepassword -a/--algorithm" in the Spring Boot CLI #38247
- Add how-to documentation for test-only database migrations with Flyway/Liquibase #38229
- Document that TomcatConnectorCustomizers are not applied to additional connectors #38196
- Document that application.* banner variables require a packaged jar or the use of Boot's launcher #38147
- Improve systemd configuration documentation #38115
- Clarify that
@AutoConfigureWebTestClient
binds WebTestClient to mock infrastructure #38112 - MyErrorWebExceptionHandler example in documentation isn't working #38109
- Add section on AspectJ support #38095
- Document that SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS is disabled by default #38088
- Update "Running Behind a Front-end Proxy Server" to include reactive and ForwardedHeaderTransformer #38070
- Document how to customize the basePackages that auto-configurations consider (for example Spring Data Repositories) #38052
- Clarifying documentation on including a top-level
@TestConfiguration
class in a test #38039 - Document ConfigurationPropertyCaching #38036
- Document server.servlet.encoding.* properties and server.servlet.encoding.mapping in particular #38033
- Document configuration for building images with Colima #38030
- Add a section on customizing embedded reactive servers #38026
- Improve documentation of
classpath.idx
file and its generation by the Maven and Gradle plugins #38023 - Document additional user configuration that's required after setting
spring.hateoas.use-hal-as-default-json-media-type
tofalse
#38020 - Clarify that MVC components provided through WebMvcRegistrations are subject to subsequent processing and configuration by MVC #38017
- Add Embedded MongoDB to community starters #38010
- Update "Use Another Web Server" how-to to reflect Servlet 5.0 baseline #37238
- Update Spring Framework documentation links #36241
- Spring Boot Actuator documentation misses management.endpoint.env.show-values property #35917
- Document that properties that change an application's beans are fixed at build time #35032
- Document that testing with ApplicationContextRunner in a native image is not supported #34007
- Document how to downgrade dependencies to use embedded Jetty 11 #33044
🔨 Dependency Upgrades
- Upgrade to AspectJ 1.9.20.1 #38355
- Upgrade to DB2 JDBC 11.5.9.0 #38436
- Upgrade to Dependency Management Plugin 1.1.4 #38344
- Upgrade to Dropwizard Metrics 4.2.22 #38437
- Upgrade to Glassfish JAXB 4.0.4 #38438
- Upgrade to Infinispan 14.0.21.Final #38439
- Upgrade to Jakarta Json 2.1.3 #38440
- Upgrade to Jakarta XML SOAP 3.0.1 #38441
- Upgrade to Jakarta XML WS 4.0.1 #38442
- Upgrade to Jetty 11.0.18 #38444
- Upgrade to Jetty Reactive HTTPClient 3.0.10 #38443
- Upgrade to Lettuce 6.2.7.RELEASE #38445
- Upgrade to Micrometer 1.10.13 #38290
- Upgrade to Micrometer Tracing 1.0.12 #38291
- Upgrade to Native Build Tools Plugin 0.9.28 #38446
- Upgrade to Netty 4.1.101.Final #38447
- Upgrade to Reactor Bom 2022.0.13 #38292
- Upgrade to SAAJ Impl 3.0.3 #38448
- Upgrade to Spring Batch 5.0.4 #38492
- Upgrade to Spring Data Bom 2022.0.12 #38293
- Upgrade to Spring Framework 6.0.14 #38294
- Upgrade to Spring HATEOAS 2.0.7 #38374
- Upgrade to Spring Integration 6.0.9 #38295
- Upgrade to Spring Kafka 3.0.13 #38369
- Upgrade to Spring RESTDocs 3.0.1 #38449
- Upgrade to Spring WS 4.0.8 #38296
- Upgrade to Tomcat 10.1.16 #38450
❤️ Contributors
Thank you to all the contributors who worked on this release:
@GVictorG7, @PENEKhun, @cachescrubber, @dreis2211, @izeye, @jonatan-ivanov, and @quaff
v2.7.18
⚠️ Noteworthy Changes
- Following the Paketo team's announcement that the Bionic CNB builders will be removed, the default builder using by
bootBuildImage
(Gradle) andspring-boot:build-image
(Maven) has been changed to Paketo Jammy #38477
🐞 Bug Fixes
- App fails to start with a NoSuchMethodError when using Flyway 10.0.0 #38164
- spring.webflux.multipart.max-disk-usage-per-part behaves incorrectly for values where the number of bytes overflows an int #38146
- Mail health indicator fails when host is not set in properties #38007
📔 Documentation
- Document supported SQL comment prefixes #38385
- Fix link to Elasticsearch health indicator #38330
- Improve --help and documentation for "encodepassword -a/--algorithm" in the Spring Boot CLI #38203
- Document that TomcatConnectorCustomizers are not applied to additional connectors #38183
- MyErrorWebExceptionHandler example in documentation isn't working #38104
- Document that SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS is disabled by default #38083
- Update "Running Behind a Front-end Proxy Server" to include reactive and ForwardedHeaderTransformer #37282
- Improve documentation of
classpath.idx
file and its generation by the Maven and Gradle plugins #37125 - Document configuration for building images with Colima #34522
- Code sample in "Developing Your First Spring Boot Application" does not work #34513
- Document ConfigurationPropertyCaching #34172
- Document that application.* banner variables require a packaged jar or the use of Boot's launcher #33489
- Add section on AspectJ support #32642
- Document server.servlet.encoding.* properties and server.servlet.encoding.mapping in particular #32472
- Add a section on customizing embedded reactive servers #31917
- Clarify that MVC components provided through WebMvcRegistrations are subject to subsequent processing and configuration by MVC #31232
- Clarifying documentation on including a top-level
@TestConfiguration
class in a test #30513 - Clarify that
@AutoConfigureWebTestClient
binds WebTestClient to mock infrastructure #29890 - Improve systemd configuration documentation #28453
- Document how to customize the basePackages that auto-configurations consider (for example Spring Data Repositories) #27549
- Document additional user configuration that's required after setting
spring.hateoas.use-hal-as-default-json-media-type
tofalse
#26814 - Add how-to documentation for test-only database migrations with Flyway/Liquibase #26796
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.16.7 #38427
- Upgrade to DB2 JDBC 11.5.9.0 #38428
- Upgrade to Dropwizard Metrics 4.2.22 #38429
- Upgrade to Elasticsearch 7.17.15 #38430
- Upgrade to Glassfish JAXB 2.3.9 #38431
- Upgrade to Micrometer 1.9.17 #38279
- Upgrade to Netty 4.1.101.Final #38432
- Upgrade to Pooled JMS 1.2.6 #38433
- Upgrade to Reactor Bom 2020.0.38 #38280
- Upgrade to Spring Batch 4.3.10 #38281
- Upgrade to Spring Data Bom 2021.2.18 #38282
- Upgrade to Spring Framework 5.3.31 #38283
- Upgrade to Spring HATEOAS 1.5.6 #38373
- Upgrade to Spring Integration 5.5.20 #38491
- Upgrade to Spring RESTDocs 2.0.8.RELEASE #38434
- Upgrade to Spring WS 3.1.8 #38284
- Upgrade to Tomcat 9.0.83 #38435
❤️ Contributors
Thank you to all the contributors who worked on this release:
@GVictorG7, @PENEKhun, @dreis2211, and @izeye
v3.2.0-RC2
⭐ New Features
- Introduce PemSslStore as an alternative to PemSslStoreDetails #38175
- Introduce a public PemContent class #38174
- Allow alias and password to be configured on a per PEM store basis #38124
- Add observationEnabled properties for Apache Kafka #38057
🐞 Bug Fixes
- Class loading may fail when JVM is stopped using SIGINT #38154
- spring.webflux.multipart.max-disk-usage-per-part behaves incorrectly for values where the number of bytes overflows an int #38152
- Apply SslBundleProperties.Key property to PEM keystore and not to the truststore #38125
- VirtualZipDataBlock does not create zip data descriptor records which can break streaming reads #38063
- Nested jars are not opened with runtime version set, causing classes in META-INF/versions to be ignored #38050
- InputStreams cannot be created from nested directory entry URLs which results in Tomcat TldScanner issues #38047
- Mail health indicator fails when host is not set in properties #38044
- Testcontainers support for various containers does not work in a native-image #38014
- Filters added to the auto-configured MockMvc instance have no name, breaking OncePerRequestFilter #38001
- Application's main class is not found when using PropertiesLauncher with the new nested jar support #37992
- Docker Compose integration does not work with 2.23.0 due to 'Cannot invoke "org.springframework.boot.docker.compose.core.DockerCliInspectResponse.hostConfig()" because "inspectResponse" is null' #37991
@ServiceConnection
is not working with@RestartScope
in 3.2.0-RC1 #37989
📔 Documentation
- Document that application.* banner variables require a packaged jar or the use of Boot's launcher #38149
- Explain how Docker Compose support works when services are already running #38145
- Improve systemd configuration documentation #38117
- Clarify that
@AutoConfigureWebTestClient
binds WebTestClient to mock infrastructure #38114 - MyErrorWebExceptionHandler example in documentation isn't working #38111
- Document that properties that change an application's beans are fixed at build time #38108
- Add section on AspectJ support #38097
- Document that SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS is disabled by default #38090
- Document that testing with ApplicationContextRunner in a native image is not supported #38082
- Spring Boot Actuator documentation misses management.endpoint.env.show-values property #38080
- Outdated spring-boot-maven-plugin build-info documentation causing project builds to fail #38078
- Document how to downgrade dependencies to use embedded Jetty 11 #38077
- Update "Use Another Web Server" how-to to reflect Servlet 5.0 baseline #38075
- Improve health group membership validation error message to provide hint for property to disable validation #38073
- Update "Running Behind a Front-end Proxy Server" to include reactive and ForwardedHeaderTransformer #38072
- Document that spring-boot-starter-parent sets maven.compiler.release and how to unset it if needed #38069
- Document how to customize the basePackages that auto-configurations consider (for example Spring Data Repositories) #38054
- Reference documentation MyContainersConfiguration sample is missing
@ServiceConnection
#38048 - Clarifying documentation on including a top-level
@TestConfiguration
class in a test #38041 - Document ConfigurationPropertyCaching #38038
- Document server.servlet.encoding.* properties and server.servlet.encoding.mapping in particular #38035
- Document configuration for building images with Colima #38032
- Add a section on customizing embedded reactive servers #38028
- Improve documentation of
classpath.idx
file and its generation by the Maven and Gradle plugins #38025 - Document additional user configuration that's required after setting
spring.hateoas.use-hal-as-default-json-media-type
tofalse
#38022 - Clarify that MVC components provided through WebMvcRegistrations are subject to subsequent processing and configuration by MVC #38019
- Add Embedded MongoDB to community starters #38016
- Links to portfolio projects which use Antora are broken #38000
- Fix links in Spring Kafka section of ref guide #37987
- Fix links in Spring Pulsar section of ref guide #37986
- Add JVM Checkpoint Restore documentation #37975
🔨 Dependency Upgrades
- Upgrade to ActiveMQ 5.18.3 #38126
- Upgrade to Artemis 2.31.2 #38127
- Upgrade to Glassfish JAXB 4.0.4 #38128
- Upgrade to Hazelcast 5.3.5 #38129
- Upgrade to Jakarta Json 2.1.3 #38130
- Upgrade to Jakarta XML SOAP 3.0.1 #38131
- Upgrade to Jakarta XML WS 4.0.1 #38132
- Upgrade to Jedis 5.0.2 #38133
- Upgrade to Jetty 12.0.3 #38135
- Upgrade to Jetty Reactive HTTPClient 4.0.1 #38134
- Upgrade to Kotlin 1.9.20 #38136
- Upgrade to Liquibase 4.24.0 #38120
- Upgrade to Log4j2 2.21.1 #38137
- Upgrade to Maven Clean Plugin 3.3.2 #38138
- Upgrade to Maven Dependency Plugin 3.6.1 #38139
- Upgrade to MSSQL JDBC 12.4.2.jre11 #38140
- Upgrade to Native Build Tools Plugin 0.9.28 #38141
- Upgrade to Oracle Database 23.3.0.23.09 #38121
- Upgrade to Pulsar 3.1.1 #38142
- Upgrade to SAAJ Impl 3.0.3 #38143
- Upgrade to Spring Framework 6.1.0-RC2 #37995
- Upgrade to Spring WS 4.0.7 #38144
❤️ Contributors
Thank you to all the contributors who worked on this release:
@GVictorG7, @Wzy19930507, @ch4570, @dreis2211, @izeye, @onobc, and @sdeleuze
v3.2.0-RC1
⭐ New Features
- Support setting gradle provider values in BuildInfoProperties.additional map #37889
- Add properties for configuring Jackson's EnumFeature and JsonNodeFeature #37885
- When auto-configuring MockMvc, add filters with their init parameters and dispatcher types #37835
- Add SSL bundle support to RabbitMQ auto-configuration #37833
- Implement SSL bundle reload #37808
- restTemplateBuilderConfigurer doesn't need to be
@ConditionalOnMissingBean
#37746 - Add 'keep-alive' property to SpringApplication and document that it is useful when using virtual threads #37736
- Add property for PEM SSL bundles to verify keys #37727
- Add background preinitializers for Tomcat and JDK ZoneId #37670
- Add classic loader module and the ability to easily switch implementations #37669
- Rewrite nested jar support code and remove Java 8 support #37668
- Relocate launcher classes to 'org.springframework.boot.loader.launch' package #37667
- Add auto-configuration for SpanAspect #37640
- Auto-configure HikariCheckpointRestoreLifecycle for a user-defined HikariDataSource #37630
- Add SSL bundle support to Apache Kafka auto-configuration #37629
- Expand transaction manager customization to support any type of TransactionManager #37628
- Add auto-configuration for CountedAspect and TimedAspect #37626
- Provide a configuration property for RabbitMQ's max inbound message body size #37603
- Move spring.jms.listener.acknowledge-mode to spring.jms.listener.session.acknowlege-mode #37602
- Add support for configuring non-standard JMS acknowledge modes #37576
- Disable validate connection on borrow for Oracle UCP datasource #37501
- Add configuration properties for JmsTemplate's sessionAcknowledgeMode and sessionTransacted #37500
- Add a configuration property for configuring sessionTransacted flag on auto-configured JMS listener container #37473
- Develop a more efficient WebResourceSet implementation for nested jars #37452
- Rename spring.jms.listener.concurrency property to spring.jms.listener.min-concurrency #37451
- Add Awaitility to spring-boot-starter-test #37195
- Support new CSP auth method for Wavefront (AOA) #37165
- Refine Spring Boot startup message when restoring a Spring Boot application with CRaC #37084
- Support parallel initialization of Testcontainers #37073
- Support RestClient.Builder with
@RestClientTest
#37033 - Break cycle between TransactionManagerCustomizers and TransactionManager #36801
- Add any TransactionExecutionListener beans to the auto-configured transaction manager #36770
- When virtual threads are enabled, auto-configure Spring Pulsar to use them #36347
- Add a testAndDevelopmentOnly Gradle configuration #35436
- Disable user details auto-configuration if the application has resource server, saml, or oauth2-client dependencies #35338
- Provide a setting for automatic context propagation with reactor-core #34201
- Honor timeouts in Zipkin WebClient sender #31496
- Support java.nio.file Paths and FileSystems with nested jars #7161
🐞 Bug Fixes
- Constructor binding with a custom collection type does not work #37942
@Order
does not work on (CommandLine|Application)Runner@Bean
methods #37939@ComponentScan
on a test class is processed when creating a test context but is not included in the context's cache key #37925- Restarter creates memory leak in tests #37921
- Wrong HandlerMapping ordering for GraphQL WebSocket configuration #37892
- AOT processing fails when a
@WebServlet
found by scanning is annotated with@MultipartConfig
#37884 - Gradle plugin uses to-be-deprecated API for getting and setting file permissions #37882
- Task executor metrics are not registered when using lazy initialization #37839
- Gradle AOT processing tasks do not use project's Java toolchain #37827
@ServiceConnection
is not found when used in an interface implemented by a test class #37799- Image building can fail when using GraalVM compilation and a remote Docker daemon #37666
- NPE from Jetty's WebSocketUpgradeFilter when testing with
@SpringBootTest
,@AutoConfigureMockMvc
, and MockMvc #37664 @WebListener
does not work in a native image without additional reflection hints #37636- AspectJ transaction management with compile-time weaving does not work with spring.main.lazy-initialization=true #37633
- IPv6 IP addresses cannot be used with RabbitMQ #37622
- Unwanted Logback status messages are sometimes logged during startup #37601
- Managed types for Neo4j are not used in Neo4j Data auto configuration #37595
- fileMode and dirMode are not applied to all entries in an archive produced by BootJar #37589
- When using checkpoint-restore and Hikari, dependency injection fails if the HikariDataSource has been replaced or wrapped #37580
- Application fails to start when an optional config import cannot be resolved #37571
- Contrary to the documentation, setting spring.jms.listener.concurrency alone configures the maximum concurrency #37554
- Dependency management for kafka-server-common with a test classifier is missing #37543
- RepackageMojo doesn't support 1 digit numerical values for project.build.outputTimestamp #37536
- Excluding ReactiveUserDetailsServiceAutoConfiguration can cause a WebFlux app to fail to start due to a null authentication manager #37504
- Signed Jar verification fails from a nested Jar under Oracle Java 17 #28837
- Does not work 'classpath*:' for Resource[] property on configuration properties since 2.x #15835
📔 Documentation
v3.1.5
⚠️ Noteworthy Changes
- The behavior of
spring.jms.listener.concurrency
has been corrected to match the documentation (#37180). If you were settingspring.jms.listener.concurrency
without also settingspring.jms.listener.max-concurrency
, please review your configuration when upgrading.
🐞 Bug Fixes
- Constructor binding with a custom collection type does not work #37941
@Order
does not work on (CommandLine|Application)Runner@Bean
methods #37938@ComponentScan
on a test class is processed when creating a test context but is not included in the context's cache key #37924- Restarter creates memory leak in tests #37920
- AOT processing fails when a
@WebServlet
found by scanning is annotated with@MultipartConfig
#37883 - Gradle plugin uses to-be-deprecated API for getting and setting file permissions #37881
- Task executor metrics are not registered when using lazy initialization #37838
- Gradle AOT processing tasks do not use project's Java toolchain #37826
@ServiceConnection
is not found when used in an interface implemented by a test class #37671- Image building can fail when using GraalVM compilation and a remote Docker daemon #37665
- NPE from Jetty's WebSocketUpgradeFilter when testing with
@SpringBootTest
,@AutoConfigureMockMvc
, and MockMvc #37663 @WebListener
does not work in a native image without additional reflection hints #37635- AspectJ transaction management with compile-time weaving does not work with spring.main.lazy-initialization=true #37632
- IPv6 IP addresses cannot be used with RabbitMQ #37619
- Unwanted Logback status messages are sometimes logged during startup #37600
- Managed types for Neo4j are not used in Neo4j Data auto configuration #37594
- fileMode and dirMode are not applied to all entries in an archive produced by BootJar #37588
- Application fails to start when an optional config import cannot be resolved #37570
- Contrary to the documentation, setting spring.jms.listener.concurrency alone configures the maximum concurrency #37553
- Dependency management for kafka-server-common with a test classifier is missing #37542
- RepackageMojo doesn't support 1 digit numerical values for project.build.outputTimestamp #37535
📔 Documentation
- Document that 'spring.docker.compose.file' can be used to share Docker Compose configuration between applications #37886
- Remove link to LiveReload website due to timeout #37691
- Refer to ActiveMQ as ActiveMQ "Classic" #37615
- Removal of spring.webflux.multipart.streaming is not documented #37609
- Default value of spring.jmx.registration-policy is not documented #37596
- Update documentation to align with Mockito 5 using the inline mock maker by default #37561
- Add Javadoc since for AbstractAotMojo.getSession() #37547
- Document support for Java 21 #37532
- Use more idiomatic Kotlin in example for "Map Health Indicators to Micrometer Metrics" #37510
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.9 #37853
- Upgrade to Couchbase Client 3.4.11 #37759
- Upgrade to Dropwizard Metrics 4.2.21 #37897
- Upgrade to Hibernate 6.2.13.Final #37854
- Upgrade to HttpCore5 5.2.3 #37762
- Upgrade to Infinispan 14.0.19.Final #37855
- Upgrade to Jackson Bom 2.15.3 #37898
- Upgrade to Jetty 11.0.17 #37856
- Upgrade to Jetty Reactive HTTPClient 3.0.9 #37932
- Upgrade to jOOQ 3.18.7 #37857
- Upgrade to Micrometer 1.11.5 #37693
- Upgrade to Micrometer Tracing 1.1.6 #37694
- Upgrade to Neo4j Java Driver 5.13.0 #37793
- Upgrade to Netty 4.1.100.Final #37858
- Upgrade to Pooled JMS 3.1.4 #37764
- Upgrade to R2DBC MySQL 1.0.5 #37859
- Upgrade to Reactor Bom 2022.0.12 #37695
- Upgrade to RxJava3 3.1.8 #37766
- Upgrade to Spring AMQP 3.0.10 #37696
- Upgrade to Spring Authorization Server 1.1.3 #37697
- Upgrade to Spring Data Bom 2023.0.5 #37698
- Upgrade to Spring Framework 6.0.13 #37816
- Upgrade to Spring Integration 6.1.4 #37914
- Upgrade to Spring Kafka 3.0.12 #37797
- Upgrade to Spring LDAP 3.1.2 #37699
- Upgrade to Spring Retry 2.0.4 #37700
- Upgrade to Spring Security 6.1.5 #37701
- Upgrade to Spring Session 3.1.3 #37702
- Upgrade to Tomcat 10.1.15 #37902
- Upgrade to UnboundID LDAPSDK 6.0.10 #37767
- Upgrade to Undertow 2.3.10.Final #37933
❤️ Contributors
Thank you to all the contributors who worked on this release:
@JinseongHwang, @bottlerocketjonny, @dependabot[bot], @erichaagdev, @esperar, @izeye, @jbertram, @jonasfugedi, @michael-simons, @nielsbasjes, @onobc, @sushant1987, @ttddyy, and @vpavic
v3.0.12
⚠️ Noteworthy Changes
- The behavior of
spring.jms.listener.concurrency
has been corrected to match the documentation (#37180). If you were settingspring.jms.listener.concurrency
without also settingspring.jms.listener.max-concurrency
, please review your configuration when upgrading.
🐞 Bug Fixes
- Constructor binding with a custom collection type does not work #37940
@Order
does not work on (CommandLine|Application)Runner@Bean
methods #37937@ComponentScan
on a test class is processed when creating a test context but is not included in the context's cache key #37923- Restarter creates memory leak in tests #37919
- Gradle plugin uses to-be-deprecated API for getting and setting file permissions #37880
- Task executor metrics are not registered when using lazy initialization #37837
- Gradle AOT processing tasks do not use project's Java toolchain #37717
- NPE from Jetty's WebSocketUpgradeFilter when testing with
@SpringBootTest
,@AutoConfigureMockMvc
, and MockMvc #37660 - AOT processing fails when a
@WebServlet
found by scanning is annotated with@MultipartConfig
#37637 - AspectJ transaction management with compile-time weaving does not work with spring.main.lazy-initialization=true #37631
- fileMode and dirMode are not applied to all entries in an archive produced by BootJar #37587
- Managed types for Neo4j are not used in Neo4j Data auto configuration #37574
- Application fails to start when an optional config import cannot be resolved #37569
- Contrary to the documentation, setting spring.jms.listener.concurrency alone configures the maximum concurrency #37552
- Dependency management for kafka-server-common with a test classifier is missing #37541
- RepackageMojo doesn't support 1 digit numerical values for project.build.outputTimestamp #37534
@WebListener
does not work in a native image without additional reflection hints #36008- Unwanted Logback status messages are sometimes logged during startup #34505
📔 Documentation
- Remove link to LiveReload website due to timeout #37690
- Refer to ActiveMQ as ActiveMQ "Classic" #37614
- Removal of spring.webflux.multipart.streaming is not documented #37608
- Document support for Java 21 #37531
- Use more idiomatic Kotlin in example for "Map Health Indicators to Micrometer Metrics" #37509
- Add Javadoc since for AbstractAotMojo.getSession() #37462
🔨 Dependency Upgrades
- Upgrade to Couchbase Client 3.4.11 #37754
- Upgrade to Dropwizard Metrics 4.2.21 #37896
- Upgrade to Infinispan 14.0.19.Final #37846
- Upgrade to Jetty 11.0.17 #37847
- Upgrade to Jetty Reactive HTTPClient 3.0.9 #37930
- Upgrade to jOOQ 3.17.16 #37848
- Upgrade to Micrometer 1.10.12 #37678
- Upgrade to Micrometer Tracing 1.0.11 #37679
- Upgrade to Neo4j Java Driver 5.13.0 #37792
- Upgrade to Netty 4.1.100.Final #37849
- Upgrade to Reactor Bom 2022.0.12 #37680
- Upgrade to RxJava3 3.1.8 #37757
- Upgrade to Spring AMQP 3.0.10 #37681
- Upgrade to Spring Data Bom 2022.0.11 #37682
- Upgrade to Spring Framework 6.0.13 #37814
- Upgrade to Spring Integration 6.0.8 #37795
- Upgrade to Spring Kafka 3.0.12 #37796
- Upgrade to Spring LDAP 3.0.6 #37683
- Upgrade to Spring Retry 2.0.4 #37684
- Upgrade to Spring Security 6.0.8 #37685
- Upgrade to Spring Session 3.0.4 #37686
- Upgrade to Tomcat 10.1.15 #37901
- Upgrade to UnboundID LDAPSDK 6.0.10 #37758
- Upgrade to Undertow 2.3.10.Final #37931
❤️ Contributors
Thank you to all the contributors who worked on this release:
@bottlerocketjonny, @dependabot[bot], @erichaagdev, @esperar, @izeye, @jbertram, @michael-simons, @nielsbasjes, @onobc, @ttddyy, and @vpavic
v2.7.17
⚠️ Noteworthy Changes
- The behavior of
spring.jms.listener.concurrency
has been corrected to match the documentation (#37180). If you were settingspring.jms.listener.concurrency
without also settingspring.jms.listener.max-concurrency
, please review your configuration when upgrading.
🐞 Bug Fixes
@Order
does not work on (CommandLine|Application)Runner@Bean
methods #37905- Gradle plugin uses to-be-deprecated API for getting and setting file permissions #37878
- Task executor metrics are not registered when using lazy initialization #37832
- Constructor binding with a custom collection type does not work #37734
- Dependency management for kafka-server-common with a test classifier is missing #37499
- fileMode and dirMode are not applied to all entries in an archive produced by BootJar #37496
- Gradle plugin's build info support produces a deprecation warning when using Gradle 8.4-rc-1 #37493
- RepackageMojo doesn't support 1 digit numerical values for project.build.outputTimestamp #37438
- Restarter creates memory leak in tests #37373
- Contrary to the documentation, setting spring.jms.listener.concurrency alone configures the maximum concurrency #37180
- Application fails to start when an optional config import cannot be resolved #35683
@ComponentScan
on a test class is processed when creating a test context but is not included in the context's cache key #31577- AspectJ transaction management with compile-time weaving does not work with spring.main.lazy-initialization=true #37506
📔 Documentation
- Remove link to LiveReload website due to timeout #37643
- Refer to ActiveMQ as ActiveMQ "Classic" #37606
- Use more idiomatic Kotlin in example for "Map Health Indicators to Micrometer Metrics" #37491
- Document support for Java 21 #37371
🔨 Dependency Upgrades
- Upgrade to Dropwizard Metrics 4.2.21 #37893
- Upgrade to Elasticsearch 7.17.14 #37840
- Upgrade to Infinispan 13.0.20.Final #37841
- Upgrade to Jetty 9.4.53.v20231009 #37842
- Upgrade to Jetty Reactive HTTPClient 1.1.15 #37927
- Upgrade to Micrometer 1.9.16 #37674
- Upgrade to Netty 4.1.100.Final #37843
- Upgrade to Pooled JMS 1.2.5 #37894
- Upgrade to Reactor Bom 2020.0.37 #37675
- Upgrade to Spring AMQP 2.4.17 #37676
- Upgrade to Spring Data Bom 2021.2.17 #37677
- Upgrade to Spring Session Bom 2021.2.3 #37928
- Upgrade to Tomcat 9.0.82 #37895
- Upgrade to UnboundID LDAPSDK 6.0.10 #37753
- Upgrade to Undertow 2.2.28.Final #37929
❤️ Contributors
Thank you to all the contributors who worked on this release:
@bottlerocketjonny, @dependabot[bot], @erichaagdev, @esperar, @izeye, @jbertram, @nielsbasjes, @onobc, @ttddyy, and @vpavic
v3.2.0-M3
⭐ New Features
- Support security options for CNB builder container #37479
- Support bind mounts for image building workspace #37478
- Auto-configure ObservationRegistry on JmsTemplate #37388
- Add Docker Compose service connection support for Neo4j #37379
- Remove usage of deprecated ServerHttpObservationFilter for WebFlux instrumentation #37344
- Use spring.application.name as fallback for service.name in OtlpConfig #37285
- Introduce configuration property "spring.servlet.multipart.strict-servlet-compliance" #37242
- Add ConnectionDetails and ServiceConnection support to Pulsar #37197
- Add virtual host support for Rabbit Stream #37189
- Include JdbcClientAutoConfiguration in
@JdbcTest
and@DataJpaTest
test slices #37122 - Unwrap a validator instance of specified type contained in SpringValidatorAdapter #37119
- Reduce logging in WelcomePageHandlerMapping on invalid Accept headers #37118
- Add dependency management for Kotlin Serialization #37093
- Provide a
RestClientBuilderConfigurer
for apply Boot's defaults to a customRestClient.Builder
#36265 - Add configuration property for GraphQL Schema Mapping Inspection #36252
- Upgrade to Jetty 12 #36073
- Configure virtual threads on Spring Data Redis' ClusterCommandExecutor #35942
- Add service connection from Testcontainers OpenTelemetry Collector #35082
- Add support for Spring for Apache Pulsar #34763
🐞 Bug Fixes
- When SLF4J and Logback are initialized on multiple threads in parallel, startup may fail due to SubstituteLoggerFactory being considered to be a competing LoggerFactory implementation #37485
- Saml2RelyingPartyAutoConfiguration ignores
sign-request
whenmetadata-url
is used #37483 - Leaking file descriptor / socket within DomainSocket tooling #37461
- Property 'logging.threshold.console' not working #37446
- PrivateKeyParser doesn't support ed448, XDH and RSA-PSS keys #37423
- java.lang.OutOfMemoryError: Metaspace when repeatedly deploying and undeploying a Spring Boot web application multiple times in Tomcat #37402
- RestClientSsl is not provided as a bean #37400
- "languageVersion is final and cannot be changed" when using Gradle 8.3 and configuring the Java toolchain's language version #37381
- AOT processing fails when a
@ConfigurationProperties-annotated
record has multiple constructors #37337 - SslStoreBundle implementations aren't immutable #37335
- OpenTelemetryProperties fail if opentelemetry-sdk-common is not available #37284
- Spring Boot dependency management not working for ehcache when using Gradle and the dependency management plugin #37271
- ServiceConnectionContextCustomizer can trigger docker usage during AOT processing #37194
- Parsing OCI image names that are invalid due to the use of upper case letters is very slow #37184
- Producing and consuming different tracing propagation formats doesn't work #37179
- Using https with elliptic curves other than secp384r1 fails #37171
- In 3.0.x and later, Spring Security cannot be used to secure a WebSocket upgrade request when using Jetty #37159
- Local baggage is propagated when using Brave and W3C #37157
- Default value metadata for management.otlp.metrics.export.base-time-unit is missing #37094
📔 Documentation
- Document that PKCS8 PEM files should be used whenever possible #37444
- Update Antora reference documentation links to Spring projects #37428
- Add reference to Oracle Spring Boot Starters #37412
- Add SSL section to Pulsar docs #37375
- Correct the description of spring.artemis.broker-url #37310
- Add default value metadata for management.metrics.export.signalfx.published-histogram-type #37254
- Polish javadoc #37144
- Add Javadoc since for AbstractRabbitListenerContainerFactoryConfigurer.setTaskExecutor() #37117
- Include Spring Modulith in Spring Boot Documentation #37106
- Document Welcome Page support ordering #34846
🔨 Dependency Upgrades
- Upgrade to Artemis 2.31.0 #37475
- Upgrade to Byte Buddy 1.14.8 #37429
- Upgrade to Commons DBCP2 2.10.0 #37312
- Upgrade to Couchbase Client 3.4.10 #37313
- Upgrade to Elasticsearch Client 8.10.1 #37467
- Upgrade to Flyway 9.22.1 #37389
- Upgrade to GraphQL Java 21.1 #37458
- Upgrade to Groovy 4.0.15 #37390
- Upgrade to H2 2.2.224 #37468
- Upgrade to Hibernate 6.3.1.Final #37476
- Upgrade to Infinispan 14.0.17.Final #37318
- Upgrade to Jakarta XML Bind 4.0.1 #37391
- Upgrade to Jedis 4.4.4 #37319
- Upgrade to Jetty Reactive HTTPClient 4.0.0 #37339
- Upgrade to Lombok 1.18.30 #37489
- Upgrade to MariaDB 3.2.0 #37320
- Upgrade to Maven Enforcer Plugin 3.4.1 #37321
- Upgrade to Maven Javadoc Plugin 3.6.0 #37469
- Upgrade to Micrometer 1.12.0-M3 #37226
- Upgrade to Micrometer Tracing 1.2.0-M3 #37346
- Upgrade to MSSQL JDBC 12.4.1.jre11 #37322
- Upgrade to Native Build Tools Plugin 0.9.27 #37430
- Upgrade to Neo4j Java Driver 5.12.0 #37324
- Upgrade to OpenTelemetry 1.30.1 #37347
- Upgrade to Pooled JMS 3.1.3 #37431
- Upgrade to R2DBC MySQL 1.0.3 #37470
- Upgrade to Reactor Bom 2023.0.0-M3 #37227
- Upgrade to REST Assured 5.3.2 #37327
- Upgrade to Selenium 4.12.1 #37328
- Upgrade to Selenium HtmlUnit 4.12.0 [#3...
v3.1.4
⭐ New Features
- Add TWENTY_ONE to JavaVersion enum #37364
🐞 Bug Fixes
- When SLF4J and Logback are initialized on multiple threads in parallel, startup may fail due to SubstituteLoggerFactory being considered to be a competing LoggerFactory implementation #37484
- Saml2RelyingPartyAutoConfiguration ignores
sign-request
whenmetadata-url
is used #37482 - Leaking file descriptor / socket within DomainSocket tooling #37460
- Invalid Accept header produces HTTP 500 in WelcomePageHandlerMapping #37457
- PrivateKeyParser doesn't support ed448, XDH and RSA-PSS keys #37422
- "languageVersion is final and cannot be changed" when using Gradle 8.3 and configuring the Java toolchain's language version #37380
- AOT processing fails when a
@ConfigurationProperties-annotated
record has multiple constructors #37336 - Spring Boot dependency management not working for ehcache when using Gradle and the dependency management plugin #37270
- SslStoreBundle implementations aren't immutable #37222
- Parsing OCI image names that are invalid due to the use of upper case letters is very slow #37183
- Producing and consuming different tracing propagation formats doesn't work #37178
- Using https with elliptic curves other than secp384r1 fails #37169
- In 3.0.x and later, Spring Security cannot be used to secure a WebSocket upgrade request when using Jetty #37158
- Local baggage is propagated when using Brave and W3C #37156
- ServiceConnectionContextCustomizer can trigger docker usage during AOT processing #37097
- java.lang.OutOfMemoryError: Metaspace when repeatedly deploying and undeploying a Spring Boot web application multiple times in Tomcat #37096
- Property 'logging.threshold.console' not working #36741
📔 Documentation
- Document that PKCS8 PEM files should be used whenever possible #37443
- Add reference to Oracle Spring Boot Starters #37411
- Correct the description of spring.artemis.broker-url #37309
- Add default value metadata for management.metrics.export.signalfx.published-histogram-type #37253
- Polish javadoc #37143
🔨 Dependency Upgrades
- Upgrade to Byte Buddy 1.14.8 #37419
- Upgrade to Couchbase Client 3.4.10 #37297
- Upgrade to Groovy 4.0.15 #37386
- Upgrade to Hibernate 6.2.9.Final #37465
- Upgrade to Infinispan 14.0.17.Final #37299
- Upgrade to Jakarta XML Bind 4.0.1 #37387
- Upgrade to Jetty 11.0.16 #37300
- Upgrade to Lombok 1.18.30 #37488
- Upgrade to Micrometer 1.11.4 #37261
- Upgrade to Micrometer Tracing 1.1.5 #37262
- Upgrade to Native Build Tools Plugin 0.9.27 #37420
- Upgrade to Neo4j Java Driver 5.12.0 #37353
- Upgrade to Pooled JMS 3.1.3 #37421
- Upgrade to R2DBC MySQL 1.0.3 #37466
- Upgrade to Reactor Bom 2022.0.11 #37263
- Upgrade to REST Assured 5.3.2 #37303
- Upgrade to SLF4J 2.0.9 #37304
- Upgrade to Spring AMQP 3.0.9 #37264
- Upgrade to Spring Data Bom 2023.0.4 #37350
- Upgrade to Spring Framework 6.0.12 #37265
- Upgrade to Spring GraphQL 1.2.3 #37266
- Upgrade to Spring Integration 6.1.3 #37267
- Upgrade to Spring Kafka 3.0.11 #37305
- Upgrade to Spring Retry 2.0.3 #37280
- Upgrade to Spring Security 6.1.4 #37424
- Upgrade to Spring WS 4.0.6 #37425
- Upgrade to Tomcat 10.1.13 #37306
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Eng-Fouad, @dependabot[bot], @izeye, @markxnelson, @mdeinum, and @quaff