github spring-projects/spring-framework v7.0.6

3 hours ago

⚠️ Attention Required

  • Log warning when default context configuration is ignored within test class hierarchies #36390
  • Ignore flush calls on ServletServerHttpResponse body outputstream #36385

⭐ New Features

  • Leverage ResourceHandlerUtils in ScriptTemplateView #36458
  • Restore ScriptTemplateViewTests #36456
  • Fix log message in ConfigurationClassBeanDefinitionReader #36453
  • DefaultResponseErrorHandler - setMessageConverters() not called via RestClient #36434
  • Resolve context initializers only once in AbstractTestContextBootstrapper #36430
  • Invoke resolveContextLoader() only once in AbstractTestContextBootstrapper #36425
  • Further align synthesized annotation toString() with modern JDKs #36417
  • Introduce setDefaultCharset() in AbstractResourceBasedMessageSource #36413
  • Support for JPA 4.0 flush mode "explicit" #36401
  • Support application-wide defaultHtmlEscape setting in WebFlux RequestContext #36400
  • Support Predicate<RequestPath>> in path API version resolver #36398
  • Avoid duplicate flushes in HttpMessageConverter implementations #36383
  • Add support for non-flushing OutputStream to StreamUtils #36382
  • Make it easier to get InputStream from RestClient #36380
  • RuntimeHintsWriter should comply with reachability-metadata-schema-v1.2.0.json #36379
  • Make it easier to create custom HttpExchangeAdapter #36374
  • Improve ResourceHttpMessageConverter target type support #36368
  • org.springframework.test.web.servlet.assertj.AbstractHttpServletResponseAssert#headers case sensitivity #36349
  • Allow registering serialized lambda metadata through RuntimeHints #36339
  • Refactor calculateHashCode in RequestMappingInfo #36325

🐞 Bug Fixes

  • MetadataReader misses enclosing class name for Kotlin nested classes with Java 24+ #36451
  • Guard against invalid id/event values in Server Sent Events #36440
  • Component scanning fails against non-loadable annotation type with enum array on Java 25 #36432
  • Duplicate ServletServerHttpRequest headers #36418
  • Incomplete debug message in ConfigurationClassBeanDefinitionReader #36410
  • Inconsistent ApplicationEventMulticaster state after removing ApplicationListener implemented by FactoryBean #36404
  • Propagate max frame length to WebSocket session #36370
  • Graceful shutdown of SimpleAsyncTaskExecutor #36362
  • Duplicate response headers with ResponseEntity<Mono<T>> (or Kotlin suspend function) controller method #36357
  • HttpServiceProxyFactory returns LinkedHashMap instead of target type for method with generic return type #36326
  • HttpMediaTypeException thrown when calculating compatible media types #36300

📔 Documentation

  • Document FullyQualifiedConfigurationBeanNameGenerator in Javadoc and reference docs #36455
  • Document @Fallback alongside Primary in the reference manual and @Bean Javadoc #36439
  • Fix links to UriComponentsBuilder and polish examples #36403
  • Emphasize @Configuration classes over XML and Groovy in testing chapter #36393
  • Document tips to avoid issues with ignored default context configuration in tests #36392
  • Polish SpEL operator examples in reference docs #36367
  • Add programmatic configuration tabs in the transactional refdoc #36323
  • Document registration recommendations for BeanPostProcessor and BeanFactoryPostProcessor #34964

🔨 Dependency Upgrades

  • Upgrade to JUnit 6.0.3 #36389
  • Upgrade to Micrometer 1.16.4 #36444
  • Upgrade to Reactor 2025.0.4 #36443

❤️ Contributors

Thank you to all the contributors who worked on this release:

@AgilAghamirzayev, @aavoronin93, @cetf9h, @froggy0m0, @gbouwen, @husseinvr97, @jisub-dev, @ngocnhan-tran1996, @siom79, and @xxxxxxjun

Don't miss a new spring-framework release

NewReleases is sending notifications on new releases.