Skip to content

v6.0.0-RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@spring-builds spring-builds released this 12 Oct 10:09
· 6366 commits to main since this release

⭐ New Features

  • Add native support for ExceptionHandler and ProblemDetail #29297
  • Refine SQLErrorCodesFactory reachability on native images #29294
  • Refine BindingReflectionHintsRegistrar infrastructure #29279
  • Normalize URIs returned from FileSystemResource.getURI() #29275
  • Redesign AOT Processors #29266
  • Simplify TestRuntimeHintsRegistrar API #29264
  • UrlResource#getFilename() should return unencoded file name #29261
  • Add reflection hints for EmbeddedDatabaseFactory$EmbeddedDataSourceProxy#shutdown #29259
  • Change keyvalue name to http.url in server observations #29254
  • Code generator should not use reflection for protected artifacts #29253
  • Use MethodArgumentNotValidException for model attribute arguments #29251
  • Allow TestCompiler SourceFile to work with records #29236
  • Generate matching inner class for inner class configuration #29213
  • Kotlin functional config DSL should prevent beans to be registered twice in AOT-optimized contexts #29211
  • Allow BeanRegistration target to be any arbitrary class name #29207
  • Add support for Charset to value code generator #29186
  • Enable HTTP and HTTPS on native in spring-web module #29185
  • Optimize native footprint by avoiding using ModuleFinder.ofSystem() at runtime #29183
  • Introduce AotProcessor to invoke the AOT engine on an application #29181
  • Move TestCompiler to dedicated package #29175
  • Use java.nio and FileSystems to resolve files in PathMatchingResourcePatternResolver #29163
  • Replace ApplicationContextAotInitializer with an AotApplicationContextInitializer interface #29157
  • Enable default TestExecutionListeners in JUnit 4 and TestNG base test classes #29149
  • Support cglib generated classes with TestCompiler #29141
  • Infer AOT proxies created by ProxyFactoryBean #29097
  • HTTP interface client ignores @DateTimeFormat on path variable #29095
  • Integrate the Micrometer Context Propagation library #29056
  • Upgrade RestTemplate to HttpClient 5 #28925
  • Improve resource handling for empty files contained in jars #28850
  • Allow for external customization and i8n of the "detail" of an RFC 7807 response #28814
  • Revise CookieLocaleResolver to use ResponseCookie #28779
  • Optimize SpEL and property placeholder support for @Async qualifiers #28549
  • Customization for ObjectReader and ObjectWriter #28401
  • Improve exception message if MultipartParser can not find end of body #28067
  • Revisit AOT constructor and factory method resolution #27920
  • Support CBOR and Protobuf with Kotlin Serialization #27628
  • CGLIB does not allow packages to start with "java" #27622
  • Support comma-delimited list of origin patterns in @CrossOrigin #27606
  • Improve the fluency of the ResponseCreator API #27280
  • Support for problem details based on RFC 7807 #27052
  • Add fast-path for no-args constructor in BeanUtils.instantiateClass #24104
  • Resolve generic type in more complex scenarios #23418

🐞 Bug Fixes

  • Hints for CGLIB proxies are not consistently registered #29295
  • Ensure context caching works properly during AOT runtime in the TestContext framework #29289
  • AbstractJackson2Encoder encodes empty Flux to invalid JSON #29274
  • RuntimeHints accessors have inconsistent naming #29269
  • ClassPathResources with same absolute path and same ClassLoader should be equal #29263
  • HTTP URL KeyValue should provide entire request URL as a value #29257
  • Hints for cglib configuration classes are not registered with a valid name #29252
  • Add ConstantReadableJavaField caching in ConstantFieldSubstitutionProcessor #29250
  • StringUtils should parse locale strings without country but with variant #29248
  • Generated code does not take visibility of method if it is defined in a parent class #29245
  • RestTemplate Observation is started without a complete tracing context #29234
  • Fix Outcome KeyValues in HTTP observations #29232
  • HTTP ObservationConvention implementations miss contextualName #29231
  • Refine ConstantFieldSubstitutionProcessor error handling #29219
  • Align RuntimeHintsAgent behavior with GraalVM reflection changes #29205
  • Class meta-annotated with @Reflective and annotated with @RegisterReflectionForBinding is only processed by SimpleReflectiveProcessor #29193
  • Spring Web 6.0.0-M6 breaks Kotlin support for (De-)Serialization in some edge-cases #29192
  • BeanDefinitionMethodGenerator should not generate code in the javax package name #29123
  • CGLIB proxies are not used at runtime on @Configuration classes in AOT mode #29107
  • Remove call to requestCompleted in RequestMappingHandlerAdapter #29002

📔 Documentation

  • Document PartEvent API #29170
  • Switch to spring-asciidoctor-backends #29162
  • Improve Javadoc of BeanRegistrationAotProcessor to describe the "runtime replacement use case" #29126
  • Improve Javadoc of GeneratedMethods#add to describe naming conventions #28997

🔨 Dependency Upgrades

  • Update Reactor Netty 2.0 version to 2.0.0-SNAPSHOT #29247
  • Upgrade to ASM 9.4 #29305
  • Upgrade to Context Propagation 1.0.0-RC1 #29273
  • Upgrade to JUnit 5.9.1 #29179
  • Upgrade to Kotlin 1.7.20 #29225
  • Upgrade to Micrometer 1.10.0-RC1 #29241
  • Upgrade to Reactor 2022.0.0-RC1 #29268

❤️ Contributors

We'd like to thank all the contributors who worked on this release!