Releases: spring-projects/spring-framework
Releases Β· spring-projects/spring-framework
v6.0.0-M4
β New Features
- Add native hints for core annotations #28442
- Add byte[] to supported types in SimpleJmsHeaderMapper #28421
- Add RootBeanDefinition constructor that accepts a ResolvableType #28418
- Add Throwable functional interfaces #28417
- Support multiple SpringFactoriesLoader files #28416
- Add position variant of ObjectUtils.addObjectToArray #28415
- Support for Jakarta Concurrency 3.0 #28400
- Add header resolver for HttpExchange method #28395
- FormHttpMessageConverter should not have a dependency on the Jakarta Mail API #28392
- Support to Create a Proxy From an Annotated HTTP Service Interface #28386
- BeanRegistrationContributionProvider should have access to the bean factory #28384
- Generate appropriate AOT bean registration for scoped proxies #28383
- AOT contribution for
@PersistenceContext
and@PersistenceUnit
#28364 - Return UnmodifiableMap in MVC PathVariableMapMethodArgumentResolver #28352
- Allow to register AotContributingBeanFactoryPostProcessor declaratively #28342
- Allow to register reflection hints for multiple types at once #28339
- Add support for HEAD methods in Spring's Resource handling #28291
- Initialize NativeDetector at build time #28244
- Support multiple segments in encoded Content-Disposition #28236
- Introduce HttpStatusCode interface #28214
- Introduce fluent API for search options in MergedAnnotations #28208
- Introduce predicate for searching enclosing classes in MergedAnnotations #28207
- Remove obsolete org.springframework.core.NestedIOException #28198
- Enable access to an RFC 7807 ProblemDetail formatted error response from the client side #28190
- Support "application/problem+json" as the response Content-Type #28189
- Introduce RuntimeHintsRegistrar #28160
- Ability to differentiate different causes for WebInputException #28142
- Remove TYPE_HIERARCHY_AND_ENCLOSING_CLASSES search strategy for MergedAnnotations #28080
- Deprecate SerializationUtils#deserialize #28075
- MediaType parameters in the "consumes" condition of
@RequestMapping
are not considered for matching #28024 - Introduce token-based consumption of multipart requests in WebFlux #28006
- Automatically clean up multipart temp files #27633
- Introduce removeApplicationListener in ConfigurableApplicationContext #14023
π Bug Fixes
- Use Arrays.toString for initMethodNames and destroyMethodNames arrays in AbstractBeanDefinition#toString #28427
- Reflection configuration for primitives have wrong name #28347
- GraalVM reflect config uses wrong format for inner classes #28312
- Throw a meaningful exception if a TypeReference does not use a fully qualified name #28213
- Fix queriedMethods handling in ReflectionHintsSerializer #28212
- AntPathMatcher matches path with trailing slash differently if '**' is present in the pattern #27506
π Documentation
- Use "instanceof pattern matching" in sample in reference docs #28332
- Add Javadoc since for BeanDefinitionValueResolver.resolveInnerBean() #28217
π¨ Dependency Upgrades
β€οΈ Contributors
We'd like to thank all the contributors who worked on this release!
v5.3.20
β New Features
- Refine CachedIntrospectionResults property introspection #28445
- Improve tests and Javadoc on binding to a property of type javax.servlet.Part #27830
- WritableResource doesn't have parity with Resource in
@Value
etc. [SPR-10656] #15284
π Bug Fixes
- Ignore invalid STOMP frame #28443
@ModelAttribute
name attribute is not supported in WebFlux #28423- Fix BindingResult error when ModelAttribute has custom name in WebFlux #28422
- Request body deserialization failures are not captured by exception handlers in WebFlux #28155
π Documentation
- Remove Log4J initialization from package-info.java in spring-web #28420
- Remove Log4J configurer from package-info.java in spring-core #28411
- Fix github issue reference in RequestMappingHandlerMapping #28372
- Add Javadoc since tags for GraphQL constants #28369
- Fix method reference in Kotlin documentation #28340
π¨ Dependency Upgrades
β€οΈ Contributors
We'd like to thank all the contributors who worked on this release!
v5.2.22.RELEASE
v5.3.19
β New Features
- Remove DNS lookups during websocket connection initiation #28280
- Add application/graphql+json Media type and MIME type constants #28271
- Fix debug log for no matching acceptableTypes #28116
- Provide support for post-processing a LocalValidatorFactoryBean's validator Configuration without requiring sub-classing #27956
π Bug Fixes
- Improve documentation and matching algorithm in data binders #28333
- NotWritablePropertyException when attempting to declaratively configure ClassLoader properties #28269
- BeanPropertyRowMapper's support for direct column name matches is missing in DataClassRowMapper #28243
- AbstractListenerReadPublisher does not call
ServletOutputStream::isReady()
when reading chunked data across network packets #28241 - ResponseEntity objects are accumulated in ConcurrentReferenceHashMap #28232
- Lambda proxy generation fix causes BeanNotOfRequiredTypeException #28209
- CodeGenerationException thrown when using AnnotationMBeanExporter on JDK 17 #28138
π¨ Dependency Upgrades
- Upgrade to Reactor 2020.0.18 #28329
β€οΈ Contributors
We'd like to thank all the contributors who worked on this release!
v5.2.21.RELEASE
β New Features
- Remove DNS lookups during websocket connection initiation #28281
π Bug Fixes
- Improve documentation and matching algorithm in data binders #28334
- CodeGenerationException thrown when using AnnotationMBeanExporter on JDK 17 #28279
- ResponseEntity objects are accumulated in ConcurrentReferenceHashMap #28273
- NotWritablePropertyException when attempting to declaratively configure ClassLoader properties #28272
v5.3.18
β New Features
- Restrict access to property paths on Class references #28261
- Introduce cancel(boolean mayInterruptIfRunning) in ScheduledTask #28233
π Bug Fixes
- Move off deprecated API in
SessionTransactionData
#28234
π Documentation
- Introduce warnings in documentation of SerializationUtils #28246
- Update copyright date in reference manual #28237
@Transactional
test does not execute all JPA lifecycle callback methods #28228
β€οΈ Contributors
We'd like to thank all the contributors who worked on this release!
v5.2.20.RELEASE
v6.0.0-M3
β New Features
- Add types to represent RFC 7807 problem details and exceptions #28187
- Update AOT processing to account for multiple init or destroy methods #28151
- Introduce ApplicationContextAotGenerator #28150
- Add GeneratedType infrastructure #28149
- Add support for contributing runtime hints for generated code #28148
- Replace KotlinBodySpec with proper ResponseSpec extensions #28144
- Add GraalVM native JSON configuration generation #28131
- Support for compiling and running generated code in tests #28120
- Support for ImportAware in AOT-processed contexts #28111
- Support type-safe transaction rollback rules #28098
- Rationalise merged BeanDefinition resolution for inner beans #28093
- Add API to contribute to the setup of an ApplicationContext #28088
- Deprecate "enclosing classes" search strategy for MergedAnnotations #28079
- Add support for refreshing an ApplicationContext for AOT processing #28065
- Upgrade client support to R2DBC 0.9 #28059
- Improve SpringFactories to customize how arguments and instantiation failures are handled #28057
- Remove deprecated SocketUtils #28054
- Add Bean instantiation generator infrastructure #28047
- Add code contribution infrastructure #28030
- Add core JavaPoet utilities #28028
- Add support for registering multiple init & destroy method names #28013
- HibernateJpaDialect compatibility with Hibernate 6 (read-only transactions etc) #28007
MissingServletRequestPartException
extendsServletRequestBindingException
#27948- Implement an AOT equivalent of AutowiredAnnotationBeanPostProcessor #27921
- Add a way to register the need for runtime reflection, resources, proxying, and serialization on components #27829
- Provide repackaged version of JavaPoet #27828
- Allow
@Async
qualifier to be declared with a placeholder or SpEL expression #27818 - Prevent
@Bean
method overloading by default (avoiding accidental overloading and condition mismatches) #22609
π Bug Fixes
- WebSocketConfigurationSupport.DefaultSockJsSchedulerContainer is private and exposed as a Bean #28146
- Inconsistent overriding (and enforcement of non-overriding) between bean definition names and aliases #27866
π¨ Dependency Upgrades
β€οΈ Contributors
We'd like to thank all the contributors who worked on this release!
v5.3.17
β New Features
- Using DataClassRowMapper causes "No property found for column" debug messages in logs #28179
- Improve diagnostics in SpEL for large array creation #28145
- Support custom HTTP status in client-side REST testing support #28105
- AsyncRestTemplate logging too verbose #28049
π Bug Fixes
- java.lang.NoClassDefFoundError: org/springframework/cglib/beans/BeanMapEmitter #28110
- CronExpression fails to calculate properly next execution when running on the day of winter daylight saving time #28095
- Private init/destroy method may be invoked twice #28083
- MappingJacksonValue and Jackson2CodecSupport#registerObjectMappersForType do not work together #28045
- SpEL fails to recover from error during MIXED mode compilation #28043
- When returning a ResponseEntity with a Flux while the function is suspended, it fails to encode the body #27809
π Documentation
- Improve documentation for
@EnabledIf
and@DisabledIf
test support #28157 - Links to Spring Security are broken in the reference guide #28135
- Document that transaction rollback rules may result in unintentional matches #28125
- Improve documentation for TestContext events #27757
- Clarify behavior for generics support in BeanUtils.copyProperties #27259
π¨ Dependency Upgrades
- Upgrade to Reactor 2020.0.17 #28064
β€οΈ Contributors
We'd like to thank all the contributors who worked on this release!
v5.3.16
β New Features
- Deprecate SocketUtils #28052
- Add convenience factory method for ManagedList, ManagedSet and ManagedMap #28026
- Synthesized annotation toString() doesn't match non-synthesized annotation on Java 9+ #28015
- Add support for strict JSON comparison in WebTestClient #27993
- Improve log message when searching for default executor for async processing #27983
- Inconsistent behaviour in spring-orm between EntityManagerFactoryUtils.closeEntityManager() and SessionFactoryUtils.closeSession() #27972
- Spring AOP cannot generate proxy for lambda on Java 16+ #27971
- RestTemplate reading Json prohibits JDK HttpClient connection reuse (keep-alive) #27969
- Deprecate AsyncTaskExecutor.execute(Runnable task, long startTimeout) #27959
- Add CacheErrorHandler implementation that logs exceptions rather than rethrowing them #27826
- Support for CGLIB BeanMap utility on JDK 17 #27802
- Avoid message listener recovery in case of persistence exceptions from external transaction manager #1807
π Bug Fixes
- Fix CronExpression fails to calculate next execution on the day of daylight saving time #28044
- CronExpression fails to calculate next execution on the day of daylight saving time #28038
- Using recursive annotations in Kotlin causes stack overflow #28012
- Add formatting for SockJS close GoAway frame to prevent infinite loop for xhr-polling and xhr-streaming transport #28000
- Reflective method invocation does not detect interface method when interface is declared in a subclass (e.g. HashMap.HashIterator.hasNext) #27995
- ReflectionUtils.USER_DECLARED_METHODS does not filter methods declared in java.lang.Object #27970
- CronExpression doesn't handle Quartz weekday of month expressions correctly #27966
- ServletServerHttpRequest getHeaders() throws IllegalArgumentException instead of ignoring invalid content type / #27957
- PropertySourcesPlaceholderConfigurer ignores ignoreUnresolvablePlaceholders flag #27947
- Fix regression in BeanPropertyRowMapper regarding underscore name #27941
- WebClient corrupts binary data when trying to upload many files #27939
- Spring fails to determine XML is XSD-based if DOCTYPE appears in a comment #27915
- ResourceHttpRequestHandler with PathPatternParser cannot resolve resources with a jsessionid URL #27913
π Documentation
- Improve documentation for uri(URI) method in WebTestClient regarding base URI #28058
- Polish reference docs (core) #28004
- Fix ServletUriComponentsBuilder examples in ref docs #27984
- Improve documentation for implementing AspectJ around advice #27980
- Fix CaffeineCacheManager configuration in the documentation #27967
- Fix Javadoc links to JSR 305 annotations #27904
- Document how to register annotated classes with a GenericWebApplicationContext #27778
π¨ Dependency Upgrades
- Upgrade to Reactor 2020.0.16 #28039
β€οΈ Contributors
We'd like to thank all the contributors who worked on this release!