Skip to content

v6.0.0-M6

Pre-release
Pre-release
Compare
Choose a tag to compare
@spring-builds spring-builds released this 15 Sep 07:44
· 6663 commits to main since this release

⭐ New Features

  • Add HandshakeWebSocketService runtime hints #29146
  • Add className variants in ReflectionHintsPredicates for checking fields and methods #29143
  • Set hibernate.bytecode.provider to none on native image #29140
  • Add proxy hints for org.hibernate.SessionFactory & org.hibernate.Session #29138
  • DefaultPersistenceUnitManager.determineDefaultPersistenceUnitRootUrl is unable to resolve root url in native image #29137
  • Adapt FieldHint to recent GraalVM versions #29130
  • Deprecate StreamUtils.emptyInput() #29125
  • Improve exception message when the code for a value could not be generated #29118
  • Deprecate support for theme #29114
  • Add resource hints for HtmlCharacterEntityReferences.properties #29112
  • Introduce AotTestAttributes mechanism in the TestContext framework #29100
  • Return absolute path without leading slash from ClassPathResource#getPath #29099
  • Register runtime hints for types exposed via PersistenceManagedTypes #29096
  • Remove deprecated SynthesizedAnnotation interface #29092
  • Add support for providing JNI runtime hints #29085
  • Introduce registerResource(Resource) in ResourceHints #29083
  • Introduce AotTestExecutionListener API in the TestContext framework #29070
  • Introduce TestRuntimeHintsRegistrar in the TestContext framework #29069
  • Use serializerOrNull in Kotlin Serialization support #29068
  • Align RuntimeHintsPredicates with new FieldMode #29063
  • Remove support for setting default CacheAwareContextLoaderDelegate via system property #29061
  • Avoid shipping AWT classes in native images #29060
  • Stop using RuntimeHintsUtils to register SynthesizedAnnotation proxies #29059
  • Remove obsolete RuntimeHintsUtils #29058
  • Deprecate SynthesizedAnnotation and related methods #29053
  • Stop implementing SynthesizedAnnotation in annotation proxies #29041
  • Introduce logging for ContextCustomizer[Factory] to improve diagnostics #29036
  • Avoid reflection for instantiating MockServerContainerContextCustomizer #29035
  • Skip ContextCustomizerFactory that cannot be loaded #29034
  • Register runtime hints for TestContext framework classes #29028
  • Register runtime hints for @Sql scripts #29027
  • Register runtime hints for @WebAppConfiguration attributes #29026
  • Register runtime hints for @TestPropertySource attributes #29025
  • Register runtime hints for @TestExecutionListeners attributes #29024
  • Register runtime hints for @BootstrapWith attributes #29023
  • Register runtime hints for ActiveProfilesResolver #29022
  • Register runtime hints for @ContextConfiguration attributes #29021
  • Remove remaining native build-time class initializations #29018
  • Introduce TypeHint.Builder#onReachableType(Class<?>) #29017
  • Harmonize registration of reflection hints #29011
  • Revisit resource cleanup in RestTemplate and ClientHttpRequestFactory #29010
  • Allow MethodReference to support a more flexible signature #29005
  • Refine JacksonModulesRuntimeHints #29001
  • Add hint for use of @Qualifier as a meta-annotation #29000
  • Lazy Validator resolution in MethodValidationPostProcessor #28990
  • Infer JDK dynamic proxies for Spring beans #28980
  • Contribute @PropertySource declarations in AOT optimized contexts #28976
  • Expose registrar for @Reflective #28975
  • Revisit our annotation support now that annotations are available in a native image without a dedicated hint #28967
  • Increase StreamUtils.BUFFER_SIZE to 8192 #28965
  • Update StreamUtils drain and emptyInput to use JDK builtins #28961
  • Integrate class proxy generation in AOT processing #28954
  • RuntimeHintsUtils.registerAnnotation should not register SynthesizedAnnotation proxy for @AliasFor #28953
  • Allow null argument for ResponseEntity.DefaultBuilder.eTag(String etag) #28947
  • Remove the need for reflection for OptionalValidatorFactoryBean #28939
  • Rename generateApplicationContext() in ApplicationContextAotGenerator #28927
  • Remove deprecated GenericPropertiesContextLoader from the TestContext framework #28911
  • Introduce AotContextLoader SPI in the TestContext framework #28906
  • Deprecate methods in ContextLoader API in the TestContext framework #28905
  • Make BootstrapUtils.resolveTestContextBootstrapper() public #28891
  • Introduce RuntimeHintsUtils#registerComposableAnnotation #28887
  • Instrument MVC and WebFlux for Observability #28880
  • Introduce TestGenerationContext #28877
  • Support Netty 5's Buffer API #28874
  • Support for Netty 5 #28847
  • Harmonize visibility of RuntimeHints builders #28835
  • Introduce command-line application for triggering AOT test context processing #28825
  • Introduce TestClassScanner to locate Spring test classes for AOT processing #28824
  • Allow empty path in MockMvc #28823
  • AOT-generated code for a FactoryBean should have a better location #28812
  • Add support for SchedulerFactoryBean in native-image #28725
  • EnableAsync doesn't work in native-image #28710
  • Improve test coverage of RdbmsOperation #28472
  • Treat MariaDB as an independent database type #28355
  • Instrument HTTP clients for Observability #28341
  • Deprecate ignoreDefaultModelOnRedirect property and set to true by default #28324
  • Allow to provide a pre-computed scan PersistenceUnitManager #28287
  • Make use of new HtmlUnit API for access request parameters #28240
  • Add support in the TCF to use pre-processed AOT contexts #28205
  • Add support for processing test contexts ahead-of-time #28204
  • Introduce AOT generated class proxies #28115
  • Deprecate SpringFactoriesLoader#loadFactoryNames #27954
  • Deprecate ListenableFuture in favor of CompletableFuture #27780
  • Revisit ConcurrentLruCache implementation #26320
  • Support to Create Proxy for RSocket Client From Annotated Interface #24456

🐞 Bug Fixes

  • BufferClosedException when decoding to Flux in StringDecoder #29119
  • RuntimeHintsAgent should not require full reflection on types #29091
  • Hint for resource pattern with leading slash is not applied in native image #29088
  • ResourceHintsPredicates.forResource(TypeReference,String) doesn't support default package #29086
  • Reflection field hints can downgrade allowWrite #29055
  • Misleading error message when no constructor or factory method can be found #29052
  • IllegalAccessException while instrumenting invocation of non-public method with RuntimeHintsAgent #29046
  • Error handling no longer works for JSON controller method returning Flux under 6.0.0-M5 #29038
  • @Order is not available in native image #28988
  • AbstractTestContextBootstrapper should not log stack trace when skipping a TestExecutionListener #28962
  • MergedBeanDefinitions change can be lost if bean is instantiated #28948
  • refreshForAotProcessing should freeze the configuration before invoking MBDPP #28941
  • Different order of invocations for ImportAware and EmbeddedValueResolverAware with AOT-optimized contexts #28915
  • Native reflection configuration should consider beanClass attribute of bean definitions #28913
  • RecordedInvocation instance resolution is inconsistent #28907
  • CompileWithTargetClassAccessExtension fails to select overloaded test methods #28901
  • Ensure CompileWithTargetClassAccessExtension only uses the Jupiter TestEngine #28900
  • JPA exception mapping fails with Hibernate 6.1.1 in spring 6.0.0-M5 #28855
  • Fix inferred methods code generation #28843
  • AOT-generated code does not consider by-type RuntimeBeanReferences #28841
  • ContentDisposition does not handle quoted pairs when parsing #28837
  • Absence of dependencies for optional TestExecutionListener breaks integration tests #28828
  • AOT generated code should consider visibility of FactoryBean target type #28809
  • InstantiationAwareBeanPostProcessor implementations are not invoked with an AOT-processed context #28777
  • RuntimeHintsUtils#registerAnnotation fails to register SynthesizedAnnotation proxy #28767
  • Factory method is lost for AOT-processed beans that do not require autowiring #28748
  • Bean definition contribution includes attributes that are not used at runtime #28516
  • Code generation should not contribute (inferred) destroy method name #28215

📔 Documentation

  • Add examples to Javadoc for Throwing*.of factory methods #28969
  • Fix typo in BasicJsonWriter.java #28890

🔨 Dependency Upgrades

  • Upgrade to JUnit 5.9.0 #28752
  • Upgrade to Micrometer 1.10.0-M6 #29151
  • Upgrade to Reactor 2022.0.0-M6 #29128

❤️ Contributors

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