Release Notes - Spring Framework - Version 5.0 M3 - HTML format

Sub-task

  • [SPR-14865] - ServerWebExchangeArgumentResolver should resolve Principal

Bug

  • [SPR-14304] - ObjectToObjectConverter should be able to use constructors on non-public classes
  • [SPR-14324] - Async advisor retrieval blocks when triggered by singleton init method
  • [SPR-14597] - CssLinkResourceTransformer is incompatible with ContentVersionStrategy when using Caching
  • [SPR-14748] - Error while serializing ServerSentEvent
  • [SPR-14749] - DefaultPersistenceUnitManager may configure a persistence unit root URL that does not point to a file or directory
  • [SPR-14761] - IPv6 + Origin header + X-Forwarded-Host header gives NumberFormatException (Safari10 / CORS)
  • [SPR-14767] - ETag header is removed from PUT/POST/PATCH responses
  • [SPR-14772] - Flux<ServerSentEvent> looses messages when using a Processor from another Thread
  • [SPR-14778] - SpringValidatorAdapter's ResolvableAttribute is not serializable
  • [SPR-14781] - @CacheConfig(cacheNames) broken when used on interface
  • [SPR-14792] - Access-Control-Allow-Methods contains duplicate HTTP methods
  • [SPR-14794] - Fix HttpRequest#getURI() with Netty based engines
  • [SPR-14796] - ModelAndView's setStatus does not work for @ExceptionHandler methods
  • [SPR-14801] - Cache annotation lookup in 4.3 finds more annotations than in 4.2
  • [SPR-14833] - SockJs heartbeat causes deadlock with XHR polling
  • [SPR-14846] - SimpleApplicationEventMulticaster should not generally suppress ClassCastException
  • [SPR-14848] - LiveBeansView#unregister should not rely on ApplicationContext#getApplicationName
  • [SPR-14850] - NPE PropertyOrFieldReference$AccessorLValue due to concurrency issue
  • [SPR-14851] - ResourceHttpRequestHandler no longer works as prototype bean
  • [SPR-14853] - Allow @Cacheable method to return java.util.Optional variant of cached value with @Cacheable(sync=true)
  • [SPR-14859] - JsonObjectDecoder fails to decode some splitted source
  • [SPR-14863] - SpEL: Compiled OpNE should favor equals() to !=
  • [SPR-14869] - [spring-web-reactive] NPE in RequestMappingHandlerAdapter at Startup
  • [SPR-14876] - Wrong HandlerResultHandler select when dealing with exceptions
  • [SPR-14877] - Returning Mono<ResponseEntity<?>> causes NPE

Improvement

  • [SPR-8282] - BindingResult should not hold on to ConversionService when serialized in session
  • [SPR-10502] - context:property-placeholder should accept comma-separated list as placeholder value for its location attribute
  • [SPR-14277] - Allow customization of TestDispatcherServlet when using @MockMvcTest
  • [SPR-14408] - Introduce HttpHeaders getContentDisposition() and setContentDisposition()
  • [SPR-14583] - Method getMergedProperties in ReloadableResourceBundleMessageSource does not set fileTimestamp
  • [SPR-14649] - Support @EnabledIf and @DisabledIf without loading ApplicationContext
  • [SPR-14680] - Add way to obtain Principal from ServerWebExchange
  • [SPR-14717] - Print request body in PrintingResultHandler in Spring MVC Test
  • [SPR-14726] - Add support for context paths in Spring Web Reactive
  • [SPR-14737] - YAML + PropertyPlaceholderConfigurer needs to process non-String values as well
  • [SPR-14739] - Default async timeout handling results in Logged Exception for Tomcat 8.5.x
  • [SPR-14744] - Netty4ClientHttpRequestFactory should configure a default SslContext
  • [SPR-14747] - Improve performance of StompEncoder.encode()
  • [SPR-14750] - Close resources in WebClient and ClientHttpConnector
  • [SPR-14754] - Add @EnableWebReactive and WebReactiveConfigurerAdapter configuration model
  • [SPR-14760] - Reduce String allocations in TransactionAspectSupport.methodIdentification()
  • [SPR-14776] - Only print printable content for request and response body in Spring MVC Test
  • [SPR-14780] - Remove @Inherited from @Primary
  • [SPR-14783] - Inner bean behind BeanFactoryPostProcessor should be able to receive application events
  • [SPR-14790] - Add support for URI templates in redirectedUrl() & forwardedUrl()
  • [SPR-14791] - StompSubProtocolHandler makes the same assumption about header accessor as SimpleBrokerMessageHandler used to
  • [SPR-14798] - Better encapsulate and Javadoc CORS configuration defaults
  • [SPR-14799] - IllegalArgumentException: HttpEntity parameter 'null'
  • [SPR-14810] - Remove not existing NativeJdbcExtractors from documentation
  • [SPR-14815] - Hibernate 5 LocalSessionFactoryBean should allow for dynamic mapping registration (like for Hibernate 4)
  • [SPR-14816] - Allow type produced by ScopedProxyFactoryBean to be determined before singleton is created
  • [SPR-14822] - GenericConversionService.addConverter should be able to determine generic types from target class behind proxy
  • [SPR-14825] - Do not use Jackson2JsonEncoder for byte array
  • [SPR-14826] - ResolvableType equals method should not consider TypeProvider source
  • [SPR-14830] - Support @ResponseStatus on reactive controller methods
  • [SPR-14831] - Type information not available on NoSuchBeanDefinitionException for collections
  • [SPR-14837] - ApplicationContext-based initialization of reactive WebFilter, WebHandler, WebExceptionHandler infrastructure
  • [SPR-14844] - AnnotationFormatterFactory should support @AliasFor
  • [SPR-14845] - Make HttpComponentsAsyncClientHttpRequest abortable
  • [SPR-14847] - TransactionStatus.flush() should trigger TransactionSynchronization.flush() when using DataSourceTransactionManager
  • [SPR-14852] - Improve WebClient error handling
  • [SPR-14854] - Consider making MessageChannel a @FunctionalInterface
  • [SPR-14856] - Possibility to use org.springframework.cache.support.NoOpCacheManager.NoOpCache as public class as NoOpCacheManager
  • [SPR-14861] - Log exception from @ExceptionHandler at higher level than debug
  • [SPR-14862] - Use String.intern() for Annotation and Class scanning
  • [SPR-14867] - Sockjs XHR Fallback on already existing WebSocketServerSockJsSession
  • [SPR-14879] - ApplicationListenerDetector should ignore non-managed bean instances
  • [SPR-14883] - Improve exception when failing to create a specific bean due to a NoClassDefFoundError

New Feature

  • [SPR-14540] - Reactive HttpMessageReader/Writer for "x-www-form-url-encoded" data
  • [SPR-14541] - Reactive HTTP request data binding
  • [SPR-14542] - Reactive HTTP request @ModelAttribute support
  • [SPR-14543] - Reactive HTTP request @InitBinder support
  • [SPR-14545] - Reactive HTTP request CORS Support
  • [SPR-14843] - Add support for RxJava 2 Maybe type

Refactoring

  • [SPR-14800] - Use StepVerifier from reactor-test and delete TestSubscriber
  • [SPR-14824] - Modify ReactiveAdapterRegistry to use official RxJava to RS adapter
  • [SPR-14827] - Align Reactive Web Client with web.reactive.function

Task

  • [SPR-14724] - Reference Documentation: instruct how RestTemplate should handle the errors thrown about @Validated (JSR 303/349)
  • [SPR-14743] - Remove RxJava 1.x variants of WebClient adapters
  • [SPR-14765] - @lookup method injection method documentation
  • [SPR-14782] - Bad Table Rendering in Default Exception Handling Documentation
  • [SPR-14793] - EnableAsync javadoc not clear enough
  • [SPR-14797] - Documentation for InjectionPoint argument on @Bean method
  • [SPR-14809] - Remove OracleLobHandler from documentation
  • [SPR-14811] - Replace J2EE with Java EE
  • [SPR-14812] - Documentation on @EventListener SpEL features is not very clear
  • [SPR-14820] - Reactive Web Client reference documentation error
  • [SPR-14842] - The contract for StringValueResolver.resolveStringValue should be more explicit
  • [SPR-14880] - Upgrade to Mockito 2.2
  • [SPR-14881] - Document supported return types for @Async methods

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.