Spring v5.2.0.RC1 Release Notes

Release Date: 2019-08-05 // over 4 years ago
  • ๐Ÿฑ โญ๏ธ New Features

    • ๐Ÿ—„ Deprecate mutable aspects of MethodParameter #23385
    • โž• Add status code 425 ("Too Early") to HttpStatus enum #23384
    • ๐Ÿ”€ Search for annotations on enclosing classes with MergedAnnotations API #23378
    • ๐Ÿ— RSocketRequester.Builder support for ConnectionSetupPayload #23368
    • Introduce SimpleUrlHandlerMapping constructor that accepts an order and a Map #23362
    • Introduce interface cache for proxied EntityManager and Query types #23345
    • Provide functionality similar to Spring Boot's BeanTypeRegistry #23341
    • โž• Add attribute support for FactoryBean bean definitions #23339
    • Consider generics when predicting FactoryBean types #23338
    • Cache isFactoryBean detection #23337
    • ๐Ÿ”€ Retain merged bean definition caches during post processing #23336
    • โž• Add missing ResolvableType variants of getBeanNamesForType #23335
    • โž• Add multi-prefix comment support for @SqlConfig #23331
    • ๐Ÿ‘Œ Support @TestPropertySource as a repeatable annotation #23320
    • โž• Add DataBuffer::toString(Charset) #23317
    • ๐Ÿ‘Œ Improvements to RSocketStrategies #23314
    • ๐Ÿ‘Œ Support for template routes with encoded separator in RSocketRequester #23310
    • Treat null path as non-matching pattern in AntPathMatcher #23297
    • โž• Add multi-prefix comment support for SQL scripts #23289
    • โž• Add a ScriptEngine factory to ScriptTemplateConfigurer #23258
    • ๐ŸŒฒ Log at WARN level in case of contradicting PersistenceUnitManager setup #23257
    • ExchangeFilterFunctions.basicAuthentication(String, String) should cache the encoded credentials #23256
    • Introduce TransactionOperations.execute(Runnable) convenience method #23250
    • ๐Ÿ‘ป ExceptionHandlerExceptionResolver warns when re-throwing the exception cause #23233
    • ๐Ÿ”„ Change @TestConstructor.autowire attribute into an enum #23224
    • ๐Ÿ‘Œ Improve performance of FormContentFilter #23216
    • ๐Ÿ“œ MimeTypeUtils.parseMimeType returns null MIME type in case of high concurrency #23211
    • โž• Add explicit support for multipart/mixed in FormHttpMessageConverter #23209
    • ๐Ÿ‘€ AbstractMessageConverterMethodProcessor results in 406 even when ResponseEntity presets content type #23205
    • BasicAuthenticationInterceptor should cache the encoded credentials #23204
    • ๐Ÿ‘ Introduce addSupportedMediaTypes() in FormHttpMessageConverter #23203
    • โž• Add no-op TransactionOperations implementation #23198
    • @CacheEvict beforeInvocation with transaction does not work #23192
    • Presort beans in ControllerAdviceBean.findAnnotatedBeans() #23188
    • Consider generics on ApplicationListener @Bean methods #23178
    • ConnectionMapping annotation for handling of RSocket connection-level frames #23177
    • ๐Ÿ‘Œ Support for registering handlers in RSocketRequester.Builder #23170
    • ๐Ÿ‘ Leverage new Kotlin script templating support #23165
    • ๐Ÿ‘Œ Improve RSocketRequester.ResponseSpec Kotlin extensions #23164
    • ๐Ÿ‘Œ Support Ordered interface for @ControllerAdvice beans #23163
    • ๐Ÿ‘Œ Support multipart/related and multipart/mixed MediaTypes in RestTemplate #23159
    • ๐Ÿ“‡ RSocket Metadata Mimetype "text/plain" and "application/json" support #23157
    • 0๏ธโƒฃ onStatus throws away default status handler #23155
    • Forbid null HttpMessageConverter in RestTemplate and HttpMessageConverterExtractor #23151
    • ๐Ÿ‘Œ Support target type in MockMvcResultMatchers.jsonPath() #23141
    • UrlBasedViewResolvers should not override custom requestContextAttribute with null #23129
    • โž• Add queryParams and replaceQueryParams with Collection to UriBuilder #23119
    • Provide functionality similar to Spring Boot's BeanTypeRegistry #23056
    • ๐Ÿ”ฆ Expose default error handling from RequestHeadersSpec::retrieve for use with RequestHeadersSpec::exchange #22825
    • ๐Ÿ‘‰ Use the accepted profiles on the BeanDefinitionDsl #22393
    • Consider conditional view caching #22391
    • WebClient's ResponseSpec should provide access to response headers #22368
    • ๐Ÿ‘Œ Support for non-blocking event listener methods [SPR-17298] #21831
    • ๐Ÿ”€ Merge class-level and method-level @Sql declarations #1835

    ๐Ÿฑ ๐Ÿž Bug Fixes

    • @TransactionalEventListener should not receive an event if no transaction is active #23276
    • ๐Ÿคก MockMvc no longer handles UTF-8 characters #23219
    • NullPointerException when FormContentFilter handles a request with no content type #23215
    • RSocketRequester.ResponseSpec Kotlin extensions issue #23185
    • PathPattern::extractPathWithinPattern does not use custom separator #23168
    • ๐Ÿ“œ PathPatternRouteMatcher should parse routes with custom separator #23167
    • 0๏ธโƒฃ DefaultMultipartMessageReader.FilePartPart.content not available under Reactor Netty #23131
    • 0๏ธโƒฃ DefaultMultipartMessageReader.FilePart.transferTo fails occasionally #23130

    ๐Ÿ“” Documentation

    • ๐Ÿ›  Fix grammar in package-info.java #23401
    • โž• Add since tag for ClientResponse.Builder.request() #23364
    • ๐Ÿ›  Fix typo in data-access.adoc #23247
    • ๐Ÿ›  Fix typo in CONTRIBUTING.md #23180
    • โœ… Document supported @Transactional attributes in the TestContext framework #23149
    • ๐Ÿ‘ Document WebFlux FreeMarker macro support in Reference Manual #23133
    • โž• Add since for JettyClientHttpConnector change #23128
    • ๐Ÿ‘Œ Improve Kotlin integration testing documentation #22875

    โฌ†๏ธ ๐Ÿ”จ Dependency Upgrades

    • โฌ†๏ธ Upgrade to RSocket 1.0.0-RC2 #23359
    • โฌ†๏ธ Upgrade to ASM 7.2 #23156
    • โฌ†๏ธ Upgrade to JUnit Jupiter 5.5 #23076

    ๐Ÿฑ โค๏ธ Contributors

    ๐Ÿš€ We'd like to thank all the contributors who worked on this release!