⭐ New Features
- MockFilterChain should support Filters and Servlet [SPR-9745] #14379
- Introduce ConvertingComparator and InstanceComparator [SPR-9730] #14364
- HttpEntity and ResponseEntity value objects do not implement equals(…)/hashCode() [SPR-9714] #14348
- Make DeferredResult testable [SPR-9690] #14324
- DeferredResult/async provides no (obvious) way to handle exceptions [SPR-9689] #14323
- MockHttpSession does not implement invalidate() properly [SPR-9686] #14320
- Introduce strategy for BeanInfo creation [SPR-9677] #14311
- Upgrade to ASM 4.0 and CGLIB 3.0 [SPR-9669] #14303
- Introduce countRowsInTableWhere() and dropTables() in abstract transactional base classes in the TestContext framework [SPR-9665] #14299
- XStreamMarshaller + BinaryStreamDriver [SPR-9663] #14297
- Upgrade to Gradle 1.1 GA [SPR-9660] #14294
- MVC: Put exception in PageContext before sending error [SPR-9653] #14287
- Support single, unnamed transaction manager bean in the TestContext framework [SPR-9645] #14279
@DateTimeFormat
does not work with@Value
[SPR-9637] #14271- SpEL should support standard operators for logical AND and logical OR [SPR-9614] #14248
- SpEL should support case-insensitive null literals [SPR-9613] #14247
- Support TransactionManagementConfigurer for determining the transaction manager in the TestContext framework [SPR-9604] #14238
- Improve getNamedDispatcher(String) method of MockServletContext [SPR-9587] #14221
- Support base package inference for
@ComponentScan
[SPR-9586] #14220 - org.springframework.web.context.request.async.DeferredResult should have parameter type [SPR-9579] #14213
- Proper handling of parameterized types for
@RequestBody
parameters [SPR-9570] #14204 - Improve SimpleStreamingClientHttpRequest performance [SPR-9530] #14164
- Update javadoc of HttpMediaTypeException constructor [SPR-9513] #14147
- Infer return type of parameterized static factory methods [SPR-9493] #14127
- Introduce MockEnvironment in the spring-test module [SPR-9492] #14126
- Javadoc for RequestMapping consumes, produces format is misleading, incomplete [SPR-9483] #14118
- Document correct data sql file name in default scripts of embedded database in reference manual [SPR-9467] #14102
- Add Servlet 3 async support related config options [SPR-9399] #14035
- Update documentation with regards to overrid RequestMappingHandlerMapping and RequestMappingHandlerAdapter when using the MVC namespace [SPR-9344] #13982
- com.sun.syndication.feed.rss.Channel/Feed should be rendered by RssChannelHttpMessageConverter/AtomFeedHttpMessageConverter by default [SPR-9336] #13974
- DefaultHandlerExceptionResolver doesn't provide a reason when sending error responses [SPR-9312] #13950
- DefaultHandlerExceptionResolver doesn't handle BindException but does handled other data binding related exceptions [SPR-9310] #13948
- Improved support for REST API error reporting [SPR-9283] #13921
- Add extension element to Spring Web MVC
@RequestMapping
annotation [SPR-9153] #13791 - Provide bean factory to simplify the customization of Jackson ObjectMapper [SPR-9125] #13764
- Support
@MVC
methods that can apply to any@Controller
[SPR-9112] #13750 - Provide support for ApplicationContextInitializers in the TestContext framework [SPR-9011] #13650
- Provide JdbcTemplate in abstract transactional base classes in the TestContext framework [SPR-8990] #13630
- Reduce log level to DEBUG when
@TestExecutionListeners
is not present [SPR-8645] #13287 - Spring MVC - Ability to use a Converter based on the Path Extension instead of Accep Header. [SPR-8546] #13190
- Content negotiation improvements [SPR-8410] #13057
- HttpMessageConverter doesn't support typed collections [SPR-8381] #13028
- Better description for DispatcherServlet's "No adapter for handler: Does your handler implement a supported interface like Controller?" exception message [SPR-8338] #12986
- Add support for the HTTP PATCH method [SPR-7985] #12640
- Use of semicolon delimited lists in REST URIs [SPR-7818] #12474
@RequestMapping
should support alternative between a header and a url extension [SPR-7722] #12378- Introduce request parameter based content negotiation for ResponseBody / HttpMessageConverter approach [SPR-7517] #12175
- Allow Errors/BindingResult after
@RequestBody
[SPR-7114] #11774 - Proper handling of parameterized types in RestTemplate [SPR-7023] #11685
- Add content-negotiation to RequestBody and ResponseBody processing [SPR-6993] #11658
- Add Gradle task for building zip with dependencies [SPR-6575] #11241
- Ability to exclude HandlerInterceptor from specific path with mvc:interceptor [SPR-6570] #11236
@RequestMapping
should support accept header and url extension [SPR-6497] #11163- Use split index for Web documentation [SPR-4984] #9660
🪲 Bug Fixes
- Sometimes throws Classcast exception for cglib [SPR-10086] #14719
- Package org.springframework.asm split across core and asm JARs [SPR-9988] #14622
- isFormContentType in org.springframework.web.filter.HttpPutFormContentFilter should return false on an illegal argument exception [SPR-9769] #14403
- Sort candidate
@AspectJ
methods deterministically [SPR-9729] #14363 - Unable to build spring-framework on Windows platform [SPR-9717] #14351
- spring-orm dependency on spring-web should be optional [SPR-9632] #14266
- SpEL MethodFilter registration fails if custom method resolvers have been set [SPR-9621] #14255
- SpEL fails to parse nested double quotes in expressions [SPR-9620] #14254
- SpEL fails to parse method invocation on an Integer literal [SPR-9612] #14246
- A forward before startAsync is called results in incorrect async request processing [SPR-9611] #14245
- MockHttpServletResponse's sendRedirect() method does not set the status code [SPR-9594] #14228
- -sources.jar files should include **/.aj files [SPR-9576] #14210
- ReflectionTestUtils.setField() should not call toString() on the target [SPR-9571] #14205
- Excessive logging if AsyncHandlerInterceptor#getAsyncCallable returns null [SPR-9524] #14158
- aopalliance jar is not really optional for most use case involving spring-aop [SPR-9501] #14135
- Cannot create application context with web components when Servlet 3.0 is not present on classpath [SPR-9500] #14134
- HandlerMethod.getBeanType() doesn't fully handle CGLIB-generated classes [SPR-9490] #14124
- Missing 'Premain-Class' manifest entry in spring-instrument jar [SPR-9458] #14093
- Bean Introspection problem under IBM Java 1.6 with new ExtendedBeanInfo [SPR-9453] #14088
- Unable to render view returned as Callable by async servlet when running in Jetty 8 [SPR-9433] #14069