Releases: spring-projects/spring-framework
v7.0.4
β New Features
- Cache method annotations in
MethodParameterandAnnotatedMethod#36307 - Consistently support
@Lazyas a meta-annotation at arbitrary depths #36306 - Consistently support
@Validatedas a meta-annotation at arbitrary depths #36305 - Let developers disable default registrations in HttpMessageConverters #36303
- Log which HandlerInterceptor threw the exception #36281
- Improve performance of hashcode calculations for request mappings #36279
- Improve performance of HandlerMethod bean lookup #36278
- Improve performance of version mapping #36276
- Improve performance of single pattern request mappings #36275
- Improve performance of validation groups determination #36274
- Add
setPackagesToScanconfiguration method toLocalEntityManagerFactoryBean#36270 - Remove outdated GraalVM substitution #36257
- Introduce
beforeRetrycallback withRetryStateargument #36245 - Optimize NamedParameterUtils#buildValueArray by lazily fetching SqlParameter #36230
- Allow customization of the
ProxyFactoryinHttpServiceProxyFactoryused to create HTTP service proxies #36225 - Consistently close streams through try-with-resources in FileCopyUtils #36223
- Use Java Files utilities in FileCopyUtils #36221
- SqlBinaryValue and SqlCharacterValue should support InputStream content with undetermined length #36219
- Support JtaTransactionManager and SpringBeanContainer configuration on HibernateJpaVendorAdapter #36216
- Add TaskCallback/Callable/Runnable wrapper for retryable tasks #36208
- Refine YamlProcessor to allow different empty values #36207
- Anticipate fixing Kotlin 2.3 compilation warning #36203
- Allow YAML processors to create a flattened map with nulls included #36197
- Use Reader.transferTo in FileCopyUtils #36196
DataBufferUtils.write()with NettyDataBuffer on JDK 25 hangs indefinitely #36184- Make SendToMethodReturnValueHandler and SubscriptionMethodReturnValueHandler customizable, to allow for pass-through of message headers #36179
- Introduce
RestClient.ResponseSpec#requiredBody#36173 - Make scope fully configurable in BeanRegistry/BeanRegistrar #36171
- ConcurrencyThrottleSupport and thread interruption #36167
- Add overloaded sendAndReceive methods to JmsTemplate to use explicit response queue #36162
- WebClient (Reactor) attributes on Netty channel do not clear after connection release #36158
- Support HttpEntity on ContentRequestMatchers.multipartData #36154
- Reintroduce WebLogicJtaTransactionManager in Spring Framework 6.2.x #36151
- Back-off for
DefaultMessageListenerContaineris not applied consistently in case of listener setup failure #36143 - Early support for JPA 4.0 EntityAgent (autowiring a shared proxy) #36025
- Early compatibility with JPA 4.0 and Hibernate ORM 8.0 #35705
π Bug Fixes
- Resolved HttpEntity Controller argument does not reflect mutated HTTP headers #36298
- Avoid lock congestion in ConcurrentReferenceHashMap #36293
- AbstractMessageConverter does not support wildcards in supported MIME types #36285
- Make
LocalEntityManagerFactoryBean#setDataSourcework on Hibernate as well as EclipseLink #36271 StompBrokerRelayMessageHandlerfails to restart due to test context pausing #36266- Deadlock might occur when calling
System.exiton startup (against multiple shutdown hooks) #36260 - Missing resource hint for
BeanRegistrarimplementingImportAware#36242 - Inconsistent behavior with
@Retryableon annotated interfaces #36233 Netty4HeadersAdapter.removereturns empty list instead ofnullfor non-existing key #36226- Generic type in AsyncTaskExecutor.submit(Callable) should be
@Nullable#36191 EclipseLinkConnectionHandlecan fail against transaction isolation race condition #36165
π Documentation
- Remove obsolete code in
Redirecting to a resourcesection #36284 - Fix formatting in Web MVC HTTP Message Conversion documentation #36250
- Remove obsolete doc for spring.context.annotated-bean-reader.create #36241
- Document
@SpringExtensionConfigin the reference manual #36240 - Fix JSON syntax in STOMP overview documentation #36229
- Revise documentation on JSR-330 support in the reference manual #36222
- Fix links to JUnit User Guide #36217
- Corrected the definition of coroutines #36209
- Fix
LocalContainerEntityManagerFactoryBean#setPersistenceUnitNamejavadoc #36205 - Update documentation on trailing slash handling where type-level
@GetMapping("/base") is combined with method level@GetMapping("/") #36198 - Update documentation on the MediaType used for ProblemDetail #36192
- Extract
DispatcherServletsnippets #36175 - Replace
getErrors()withgetBindingResult()in examples #36170 - Refine CORS documentation to match latest changes #36156
π¨ Dependency Upgrades
- Upgrade to Apache POI 5.5 #36174
- Upgrade to ASM 9.9.1 and Objenesis 3.5 #36243
- Upgrade to Micrometer 1.6.3 #36287
- Upgrade to Reactor 2025.0.3 #36288
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Ivarz, @catturtle123, @chschu, @deejay1, @dingqianwen, @dungdm93, @furaizi, @izeye, @kchung1995, @kilink, @msridhar, @ngocnhan-tran1996, @pgoslatara, @philwebb, @pisek, and @shub-est
v6.2.16
β New Features
- Improve performance of hashcode calculations for request mappings #36297
- Improve performance of HandlerMethod bean lookup #36296
- Improve performance of validation groups determination #36295
- Improve performance of single pattern request mappings #36294
- Optimize NamedParameterUtils#buildValueArray by lazily fetching SqlParameter #36232
- Consistently close streams through try-with-resources in FileCopyUtils #36224
- SqlBinaryValue and SqlCharacterValue should support InputStream content with undetermined length #36220
DataBufferUtils.write()with NettyDataBuffer on JDK 25 hangs indefinitely #36189- WebClient (Reactor) attributes on Netty channel do not clear after connection release #36163
- Reintroduce WebLogicJtaTransactionManager in Spring Framework 6.2.x #36152
- DisconnectedClientHelper should detect presence of RestClientException and WebClientException separately #36150
- Add DataAccessException and MessagingException to the excluded outermost exceptions in DisconnectedClientHelper #36135
- Improve user check in TransportHandlingSockJsService #36129
π Bug Fixes
- Avoid lock congestion in ConcurrentReferenceHashMap #36308
- Resolved HttpEntity Controller argument does not reflect mutated HTTP headers #36301
- AbstractMessageConverter does not support wildcards in supported MIME types #36286
- Make
LocalEntityManagerFactoryBean#setDataSourcework on Hibernate as well as EclipseLink #36272 - Deadlock might occur when calling
System.exiton startup (against multiple shutdown hooks) #36268 Netty4HeadersAdapter.removereturns empty list instead ofnullfor non-existing key #36227EclipseLinkConnectionHandlecan fail against transaction isolation race condition #36166- WiretapConnector leaks data buffers when response body not consumed #36051
- UriComponentsBuilder loses the fragment when it consists of only a single character #36035
SimpleBeanInfoFactoryfails to reliably resolve read/write methods in type hierarchies with unresolved generics #36026
π Documentation
- Fix links to JUnit User Guide #36218
- Fix
LocalContainerEntityManagerFactoryBean#setPersistenceUnitNamejavadoc #36206 - Update documentation on trailing slash handling where type-level
@GetMapping("/base") is combined with method level@GetMapping("/") #36200 - Update documentation on the MediaType used for ProblemDetail #36193
- Replace
getErrors()withgetBindingResult()in examples #36172 - Upgrade Antora dependencies #36106
- Fix typos and grammar #36023
π¨ Dependency Upgrades
v7.0.3
β οΈ Attention Required
- Introduce Spring property to disable context pausing for tests #36117
- Avoid unnecessary pausing of application contexts in the TestContext framework #36044
β New Features
- DisconnectedClientHelper should detect presence of RestClientException and WebClientException separately #36141
- Deprecate
PagedListHolderandPropertyComparatorfor removal #36139 - Add DataAccessException and MessagingException to the excluded outermost exceptions in DisconnectedClientHelper #36134
- Support property placeholders in HTTP service registry #36126
- Retain original requested bean class for SpringContainedBean #36116
- Add task rejection support to SyncTaskExecutor's concurrency throttle #36114
- Precompute
PropertyDescriptorarray inSimpleBeanInfoFactory#36112 - Add option for
@ConcurrencyLimitto throw rejection exception #36109 - Support HttpComponents 5.6 #36100
- Fix double encoding in
DefaultApiVersionInserter#36097 - Optimize single-char wildcard path matching performance #36095
- Allow WebFlux ApiVersionResolver to return a Mono #36084
- Configure HttpMessageConverters as a list #36083
- HTTP Interface with an
@RequestBody Objectmethod parameter should use class of actual value #36078 - Consistently declare
@Nullableon parameter inequals()implementations #36075 - Support listener registration for
@Transactionaltriggered method rollbacks #36073 - Introduce generalized
MethodFailureEventfor use inEventPublicationInterceptor#36072 - Avoid duplicate flushes in StringHttpMessageConverter #36065
- When no API version is provided, static resources fail to load #36059
- When no API version is provided,
/errorrequests also fail. #36058 - Declare
TaskCallbackreturn value as potentially nullable #36057 - Fix case-insensitive semantics for LinkedCaseInsensitiveMap entrySet #36056
- Update to NullAway 0.12.15 and fix new warnings #36054
- Provide alternative to
execute(Retryable)which avoidsRetryExceptionin favor of rethrowing the last originalRuntimeException#36052 - Simplify TransactionalOperator.executeAndAwait by removing Optional #36039
- Deprecated MockMvcClientHttpRequestFactory is required for tests with HTTP service interface proxy #35989
- Introduce Jackson XML codecs #35752
- Support listener registration for
@Retryabletriggered retry executions #35382
π Bug Fixes
- Fix
SmartFactoryBeantype matching forResolvableType.NONE#36123 AbstractMessageSendingTemplateignores headers inconvertAndSend()variant #36120JmsClient.sendAndReceive()fails if headers are included #36118PropertyDescriptorUtilsdoes not reliably resolve overloaded write methods #36113- Fix context class resolution for nested types in
AbstractJacksonHttpMessageConverter#36111 DefaultApiVersionInserterencodes already encoded URI #36080- ConverterFactory nullness mismatch with Converter #36063
- WiretapConnector leaks data buffers when response body not consumed #36050
- CompilationException should not use -1 for line or column numbers when they are unknown #36041
- org.springframework.core.test.tools.TestCompiler.Errors should handle case where warnings are turned into errors #36037
- UriComponentsBuilder loses the fragment when it consists of only a single character #36029
- Parameter names of the handler method are null in HandlerInterceptor::preHandle during first invocation of an endpoint #36024
PropertyDescriptorUtilsdoes not reliably resolve read/write methods in type hierarchies with generics #36019- Illegal reflection use against Hibernate Validator 9 on module path #36012
π Documentation
- Clarify unversioned handler matching precedence #36125
- Clarify meaning of maxAttempts in FixedBackOff vs. maxRetries in RetryPolicy #36119
- Polishing AOT cache documentation #36108
- Upgrade Antora dependencies #36105
- Modernize the DispatcherServlet Locale documentation #36099
- Fix Kotlin example in
Multipart Content#36094 - Remove
@EnableWebFluxfrom documentation code snippets #36091 - Fix Kotlin example in
CORSandFunctional Endpointsreferences #36089 - Extract remaining WebMVC configuration snippets #36088
- Remove the "Other Web Frameworks" documentation #36086
- Fix reference links in
Configurationpage #36079 - Document HttpHeaders#toSingleValueMap() case-sensitive behavior #36070
- Correct
encodeJavadoc forUriComponentsandUriComponentsBuilder#36040 - Fix typos and grammar #36022
- Custom
@ExceptionHandlersilently ignored whenspring.mvc.problemdetails.enabled=truewithout@Order#35982 - Document how to discard response body with WebTestClient #35953
- Modernize the view technologies section #35450
- Remove JavaScript/Kotlin from ScriptEngine documentation #27919
π¨ Dependency Upgrades
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@JKaplanEmpty-Nes, @MukjepScarlet, @TerryTaoYY, @haydenrear, @jhan0121, @jher235, @marcphilipp, @mipo256, @msridhar, @ngocnhan-tran1996, @parkhojeong, @philipbolting, @playous, @quaff, @thelightway24, and @xyraclius
v7.0.2
β New Features
- Avoid unnecessary list creation and processing in
AbstractTestContextBootstrapper#35995 AbstractTestContextBootstrappershould resolveContextLoaderonly once #35994- Log
RetryExceptionfor@Retryablemethods #35983 - Consistently stop already started
Lifecyclebeans on cancelled refresh #35964 - Support timeouts in
@RetryableandRetryPolicy#35963 - Use
==instead ofinstanceoffor primitive array type checks #35962 - Introduce
MultiValueMapCollectorfor use with streams #35958 - Avoid package cycle caused by use of UriComponentsBuilder in ServletServerHttpRequest #35952
- Target type in Converter interface should be
@Nullable#35947 - Provide access to attempt count in
RetryListeneras well as callbacks for the initial attempt #35940 - DefaultHandshakeHandler should not log client faults on error level #35930
- Log warning when meta-annotation is ignored due to types not present in classpath #35927
- Revise
ApplicationContext#getId()nullability to non-null #35925 - Use concurrent set behind reactive
TransactionSynchronizationManager#registerSynchronization#35921 - Refine
AbstractKotlinSerializationHttpMessageConverter#canWrite#35920 - Register bean dependency for
Optionalinjection point as well #35919 - Change
canRead/canWriteoverrides toClassones inAbstractSmartHttpMessageConverter#35916 - Do not make HttpHeaders read-only in HttpEntity #35888
- Add WebFlux SSE support with GSON #35884
- Different ReactorNettyWebSocketSession call getId() may return the same value #35883
- Refine nullability of
Assert#noNullElements#35868 - Allow configuring default maxIdleTime on InMemoryWebSessionStore. #35866
- Refine
BindingReflectionHintsRegistrarwithObjectToObjectConverterhints #35847 - Add
resetCaches()method to general CacheManager interface #35845 - Enhance handleTypeMismatch error message in ResponseEntityExceptionHandler #35837
- Add support for package-private
BeanRegistrarin Spring AOT generated code #35803 - Use ExtendedServletRequestDataBinder/ExtendedWebExchangeDataBinder for functional request binding #35800
- Expose Collection on FragmentsRendering to facilitate Unit Tests #35775
- Improve i18n-support for NoResourceFoundException #35758
- Cache resolved singleton beans in injected
Providerinstance #35373
π Bug Fixes
ContextConfigurationAttributes(Class)constructor incorrectly setsinheritLocationstofalse#36000- NullPointerException thrown from JdkClientHttpRequestFactory for null request header value #35996
- State inconsistency in LazyConnectionDataSourceProxy when connection settings fail #35980
- SubscriberInputStream#resume misuses parked thread reference #35978
- Shared EntityManager returned by AbstractEntityManagerFactoryBean cannot be advised by AspectJ interceptor #35974
- RestClient cannot make HEAD requests when the response declares gzip Content-Encoding #35966
- ServerRequestObservationContext(s) miss Propagator.Getter method implementation #35965
- Jackson used instead of kotlinx.serialization for more complex types #35960
- Strong locking in
ConcurrentReferenceHashMap#computeIfAbsentmay cause context initialisation deadlock #35944 - BridgeMethodResolver change in 6.2.13 breaks Spring Data entity introspection #35936
- DefaultMessageListenerContainer does not clear Session and MessageConsumer for paused invokers #35932
- Tighten cacheable decision behind
@Lazyinjection point #35917 - AOT-generated bean definition does not consider name of
RuntimeBeanReferenceusing name and type #35913 - Accidental fallback match for Collection-type beans due to
@Bean-level qualifier annotation #35908 SingletonSuppliershould be defensive againstsingletonInstance/initializedvisibility mismatch #35905- SortedResourcesFactoryBean does not accept non-existent resources anymore #35895
- Support reading unresolvable types in
AbstractJacksonHttpMessageConverter#35889 - Refine Kotlin Serialization codec type checks #35885
- UrlHandlerFilter also removes query parameters and fragment when using HTTP redirect #35873
- Fix handling of
ServerSentEventwith Jackson encoder #35872 @EnableResilientMethodsdoes not participate in globally enforced target class proxying #35863- RestTestClient can leak HTTP connections when no body expectations are performed #35784
- Use provided ReactiveAdapterRegistry in BindingContext constructor #35771
- PathMatchingResourcePatternResolver fails with URI in JAR manifest Class-Path entries #35682
π Documentation
- Correct link to Reactive Libraries in reference docs #35970
- Document that annotations are ignored if attributes reference types not present in the classpath #35959
- Remove JUnit 4 based meta-annotation example #35903
- Refer to "Spring Tools" instead of "Spring Tools for Eclipse" in reference manual #35901
- Document that
SpringExtensionrequires JUnit Jupiter 6.0 or higher #35900 - Fix broken Javadoc links to methods #35899
- Clarify JMS
sessionTransactedflag for local versus global transaction #35897 - Reference docs should not use obsolete "junit5" links #35892
- Testing chapter references nonexistent Dependency Management documentation #35890
- Wrong interface in WebFlux Documentation page for API Version #35887
- Update reference documentation to use Jackson 3 #35886
π¨ Dependency Upgrades
v6.2.15
β New Features
- Avoid package cycle caused by use of UriComponentsBuilder in ServletServerHttpRequest #35954
- DefaultHandshakeHandler should not log client faults on error level #35948
- Use concurrent set behind reactive
TransactionSynchronizationManager#registerSynchronization#35922 - Expose Collection on FragmentsRendering to facilitate Unit Tests #35912
- Different ReactorNettyWebSocketSession call getId() may return the same value #35911
- Enhance handleTypeMismatch error message in ResponseEntityExceptionHandler #35878
π Bug Fixes
- NullPointerException thrown from JdkClientHttpRequestFactory for null request header value #35998
- State inconsistency in LazyConnectionDataSourceProxy when connection settings fail #35981
- SubscriberInputStream#resume misuses parked thread reference #35979
- PathMatchingResourcePatternResolver fails with URI in JAR manifest Class-Path entries #35967
- Strong locking in
ConcurrentReferenceHashMap#computeIfAbsentmay cause context initialisation deadlock #35945 - BridgeMethodResolver change in 6.2.13 breaks Spring Data entity introspection #35941
- DefaultMessageListenerContainer does not clear Session and MessageConsumer for paused invokers #35935
- Tighten cacheable decision behind
@Lazyinjection point #35918 - Use provided ReactiveAdapterRegistry in BindingContext constructor #35914
- Accidental fallback match for Collection-type beans due to
@Bean-level qualifier annotation #35909 - SortedResourcesFactoryBean does not accept non-existent resources anymore #35896
π Documentation
- Document that annotations are ignored if attributes reference types not present in the classpath #35973
- Fix broken Javadoc links to methods #35904
- Refer to "Spring Tools" instead of "Spring Tools for Eclipse" in reference manual #35902
- Clarify JMS
sessionTransactedflag for local versus global transaction #35898 - Reference docs should not use obsolete "junit5" links #35893
- Testing chapter references nonexistent Dependency Management documentation #35891
π¨ Dependency Upgrades
v7.0.1
β New Features
- Align
RestOperationsKotlin extensions nullability with Java one #35852 - Add
resetCaches()method to Caffeine/ConcurrentMapCacheManager #35840 - Fix single-check idiom in
UnmodifiableMultiValueMap#35822 - Fix
Spliteratorcharacteristics inConcurrentReferenceHashMap#35817 - RestTestClient does not configure JsonPathAssertions in the same way as WebTestClient #35793
π Bug Fixes
- Fix
JdbcOperationsKotlin extensions #35846 - Fix
getCacheNames()concurrent access in NoOpCacheManager #35842 - Annotation discovery regression for interfaces extending
BeanNameAwareand co. #35835 - MissingPathVariableException produces wrong status code in ProblemDetail #35829
- Refine
ParameterizedPreparedStatementSetternullability #35749 - Fix HtmlUtils unescape for supplementary chars #35477
π Documentation
- Fix cross-reference links in HtmlUnit sections #35853
- Remove
@seeJavadoc references to deprecated PropertiesBeanDefinitionReader #35836 - Replace
kotlin-issuesattribute reference #35820 - Document semantics and behavior of
SpringExtension.getApplicationContext()#35764
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
v6.2.14
β New Features
- Add
resetCaches()method to Caffeine/ConcurrentMapCacheManager #35841 - Fix single-check idiom in
UnmodifiableMultiValueMap#35831 - Fix
Spliteratorcharacteristics inConcurrentReferenceHashMap#35828
π Bug Fixes
- MissingPathVariableException produces wrong status code in ProblemDetail #35856
- Fix
getCacheNames()concurrent access in NoOpCacheManager #35844 - Annotation discovery regression for interfaces extending
BeanNameAwareand co. #35838 - Fix HtmlUtils unescape for supplementary chars #35832
π Documentation
v7.0.0
π Please read the official release notes and upgrade guide
β New Features
- Make SessionHolder publicly accessible for external resource management #35799
- RouterFunctions Builders do not support ServerResponse subtypes #35791
- Configure Jackson CBOR codecs by default if present #35787
- Rename
maxAttemptstomaxRetriesin@RetryableandRetryPolicy#35772 - Prevent Kotlin Serialization side effects #35761
- Add default API version to the list of supported versions #35755
- Improve user check in TransportHandlingSockJsService #35753
- Update ApiVersionDeprecationHandler to provide access to handler #35750
- Use dedicated classes for ApiVersionResolver implementations #35747
- Provide AOT support for
@Nestedclasses in a@ParameterizedClass#35744 - AssertJ support for WebTestClient #35737
- Reject attempt to use
@MockitoSpyBeanwith a scoped proxy #35722 - Provide a way to supply the client builder for an HttpServiceGroup #35707
- Review HttpMessageConverters.Builder to improve readability of code using the API #35704
- Configure custom Kotlin Serialization converter on HttpMessageConverters #35733
π Bug Fixes
- Missing support for UnprocessableContent in WebClientResponseException.create(HttpStatusCode, ..) methods #35802
- Relax media type checks in HttpMessageConverters #35801
- Fix
HttpHeadersandWebSocketHttpHeadersinterop issues #35792 @ConcurrencyLimitweird behavior when combined with@Asyncand@Transactional#35788- buildSrc:test failing on JDKs before JDK 25 #35777
- Add jar validation and fix multi-release jar #35768
- Upgrade to JUnit 6.0.1 and prevent AOT test scanning failure for JUnit 4 tests #35740
- Fix port handling in
HtmlUnitRequestBuilder#35709 - RestTestClient.mutate() should not have side effects #35698
π Documentation
- Document workaround for
@PersistenceContextand@PersistenceUnitin test classes in AOT #31442
π¨ Dependency Upgrades
- Upgrade to Jetty 12.1.4 #35805
- Upgrade to Micrometer 1.16.0 #35811
- Upgrade to Reactor 2025.0.0 #35779
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
v6.2.13
β New Features
- Support response encoding in
selectandoptionsJSP form tags #35783 - Preserve Connection readOnly state for DataSource with defaultReadOnly configuration #35743
- Optimize resource URL resolution in SortedResourcesFactoryBean #35687
- Relax multiple segment matching constraints in PathPattern #35686
- Support wildcard path elements at the start of path patterns #35679
- Validating byte[]s may produce OutOfMemoryError #35675
- Update in FragmentsRendering to names of static methods #33974
π Bug Fixes
ConcurrentReferenceHashMapmisses dedicatedcomputeIfAbsent,computeIfPresent,compute,mergeimplementations #35794- Avoid unnecessary bridge method resolution around getMostSpecificMethod #35780
- Fix multi-release JAR issue with VirtualThreadDelegate #35773
- ContentNegotiationManager not finding media type when request includes quality parameter #35754
- Race condition in BufferingClientHttpResponseWrapper.getBody() #35745
- Deprecate setConnectTimeout on HttpComponentsClientHttpRequestFactory #35748
- Fix PathMatchingResourcePatternResolver to handle absolute paths in JAR manifests #35732
- BeanDefinitionBuilder.addAutowiredProperty causes error during AOT processing #35731
- Improve
HttpServiceMethodsupport for Kotlin suspending functions returningFlow#35718 - Exception translation does not expose original
BatchUpdateExceptionanymore #35717 - Add hints for entities package-private methods #35711
- Fix concurrency permit leak causing deadlock in SimpleAsyncTaskExecutor #35708
- Remove
jibx-marshallerelement fromspring-oxm.xsd#35699 - NullPointerException When Handling 407 with JdkClientHttpConnector in WebClient #35692
- Method-based
Mapinjection fails against targetMapwith incomplete generics despite bean name or qualifier match #35690 - JUnit Jupiter
TEST_METHODExtensionContextScopeis not fully supported #35680 - Introduce
isAutowirableConstructor(Executable, PropertyProvider)inTestConstructorUtilsand deprecate existing variants #35676 - Reflection on java.sql.Types without runtime hints #35674
getPubliclyAccessibleMethodIfPossible()returns hidden static method #35667- RestClient hangs during upload with ReactorClientHttpRequestFactory #34707
π Documentation
- Correct formatting for
Monotype #35786 - Improve Java Bean Validation documentation for controller methods #35759
- Fix typo in
@NumberFormatJavadoc #35742 - Javadoc of AsyncConfigurer does not match runtime behavior #35736
- Document PathPattern behavior difference between */{name} and **/{*path} #35727
- Fix minor typo in RestClient documentation #35723
- Document test-method scoped
TestContextsemantics #35716 - Improve docs on AbstractStreamingClientHttpRequest for streaming vs buffering mode #35700
- Fix minor typo in JDBC Core Classes documentation #35684
- Fix typos #35656
- Improve spring-web filter documentation #30454
π¨ Dependency Upgrades
- Upgrade to ASM 9.9 plus lenient version check patch #35763
- Upgrade to Jetty 12.0.30 #35806
- Upgrade to Micrometer 1.14.13 #35810
- Upgrade to Reactor 2024.0.12 #35809
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@Anxton, @Artur-, @HJC96, @MoadElfatihi, @NYgomets, @cbsingh1, @dmitrysulman, @ekcom, and @scordio
v7.0.0-RC3
β New Features
- Deprecate the BeanShell scripting support #35720
- Deprecate the
langXML namespace #35719 - Deprecate Hamcrest methods in WebTestClient #35703
- Remove Hamcrest dependency from RestTestClient #35702
- AssertJ support for RestTestClient #35701
- Use test-method scoped
ExtensionContextin theSpringExtension#35697 - Remove support for callable references in
BeanRegistrarDsl#35694 - Make Protobuf support extensible for gRPC #35403
- Fix CRaC potential hangup after restoring #34372
π Bug Fixes
- Add support for Spring AOT with
BeanRegistrarfor attributeAutoProxyUtils.originalTargetClass#35645 SingletonSupplieris not singleton ifnullis returned on first supplier call #35380
π Documentation
- Remove outdated Portlet mentions #35726
- Move the "Groovy Bean Definition DSL" section to the Groovy page #35721
- Remove outdated Spring version mentions #35696
- Document automatic context propagation #35689
- Refine documentation of
BeanRegistrarDslwithRouterFunctionDsl#35549
π¨ Dependency Upgrades
- Upgrade to Kotlin 2.2.21 #35714
β€οΈ Contributors
Thank you to all the contributors who worked on this release:
@YaSuenag, @dmitrysulman, and @nosan