Skip to content

Releases: spring-projects/spring-framework

v7.0.0-M9

11 Sep 12:18
Compare
Choose a tag to compare
v7.0.0-M9 Pre-release
Pre-release

⭐ New Features

  • Align JpaTransactionManager default for nestedTransactionAllowed flag #35457
  • Introduce onRetryPolicyInterruption() callback in RetryListener #35442
  • Add DataFieldMaxValueIncrementer for SQLite #35440
  • Consistent support for non-default NIO.2 FileSystems #35435
  • Include exceptions for previous attempts in RetryException thrown for an InterruptedException #35434
  • Include current exception in log message for failed retry attempt #35433
  • Remove HttpServiceClient Annotation Support #35431
  • Deprecate put(MergedContextConfiguration, ApplicationContext) in ContextCache #35415
  • ServerSentEventHttpMessageReader should process empty data lines #35412
  • Make it possible to stream "application/grpc" in Spring MVC via Flux #35401
  • Add createException method to ConvertibleClientHttpResponse in RestClient #35391
  • Consider throwing an error if setVersionRequired and setDefaultVersion are called on ApiVersionConfigurer #35387
  • Accept maxAttempts(0) in RetryPolicy builder #35362
  • Generate consistent validation error messages in RetryPolicy #35355
  • Drop support for Undertow as it is not Servlet 6.1 compatible #35354
  • Expose retry attempts in RetryException #35351
  • RetryException#getCause should not be nullable #35332
  • Refine CORS logging for non-processed requests due to no CORS configuration #35314
  • Refine Jackson 3 constructors to accept only JsonMapper instances for JSON #35282
  • Revise StartupStep to implement AutoCloseable #35277
  • Add compression support in JdkClientHttpRequestFactory #35225
  • Add support for Micrometer context propagation in Kotlin coroutines #35185
  • Add support for Forwarded By HTTP header #34683
  • Update HttpStatus to align with RFC9110 where relevant #32870
  • ContextCache should close evicted context before loading new context #21007

🐞 Bug Fixes

  • Refine Nullness for Kotlin functions returning Unit #35420
  • Invalid Nullness information for Kotlin properties #35419
  • ApiVersionConfigurer.setVersionRequired(...) does not result in MissingApiVersionException #35386
  • RestTestClient returns null response body #35385
  • Interface client methods that return InputStreams do not throw exceptions on bad HTTP status codes #35375
  • @Retryable cannot be used with with @HttpServiceClient due to NullPointerException #35353
  • Wrong PathPattern parsing for segments ending in '**' #35339
  • RetryTemplate should officially expose RetryException to RetryListener.onRetryPolicyExhaustion() #35334
  • Restore mixed usage support with uri() and queryParam() for query parameters in AbstractMockHttpServletRequestBuilder.buildRequest() #35329
  • Kotlinx Serialization doesn't work when using ResponseEntity #35281
  • "Failed to read candidate component class" with classfile metadata reading #35252

πŸ“” Documentation

  • Docs: Rework mvc-jsp section with JavaConfig example (per review feedback) #35444
  • Document programmatic retry support in the reference manual #35436
  • Improve reference docs on API versioning by path #35421
  • Fix typo in websocket doc #35393
  • Refine null-safety tooling introduction #35383
  • Fix @HttpServiceClient example in reference manual #35363
  • Improve wording for transactional rollback rule semantics #35346
  • Document semantics of RetryException regarding cause and suppressed exceptions #35337
  • Formatting issue in RestTestClient documentation #35328

πŸ”¨ Dependency Upgrades

  • Upgrade to Jackson 3.0.0-rc9 and 2.20.0 #35439
  • Upgrade to Jetty 12.1.0 #35345
  • Upgrade to Kotlin 2.2.20 #35414
  • Upgrade to Micrometer 1.16.0-M3 #35453
  • Upgrade to Reactor 2025.0.0-M7 #35452

❀️ Contributors

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

@Dongnyoung, @J-unStiN, @NeatGuyCoding, @gustaavv, @izeye, @remeio, @shakuzen, and @spicydev

v6.2.11

11 Sep 07:40
Compare
Choose a tag to compare

⭐ New Features

  • Missing @Nullable on JsonPathAssertions.isEqualTo #35445
  • Graceful fallback for non-default NIO.2 FileSystems #35443
  • Avoid thread pinning in SseEmitter, ResponseBodyEmitter #35423
  • Detect Informix error codes as DuplicateKeyException #35400
  • Inconsistent nullability for String value arguments in ResponseCookie from*() factory methods #35377
  • Revisit taskTerminationTimeout semantics on SimpleAsyncTaskExecutor/Scheduler #35372
  • StandardEvaluationContext.setBeanResolver should allow @Nullable BeanResolver #35371

🐞 Bug Fixes

  • "mainThreadPrefix = null " Causing multiple background bean locks to be blocked #35409
  • Annotation not found on parameter in overridden method unless method is public #35349
  • Annotations on overridden methods not found in type hierarchy with unresolved generics #35342
  • Performance degradation when using singleton beans with Provider #35330
  • JettyClientHttpConnector buffer leak in Spring Framework 6.2 #35319
  • Spring application hangs on shutdown with @Scheduled(cron=…) when custom ScheduledExecutorService bean is defined (Java 19+) #35316

πŸ“” Documentation

  • Document potential need to use Mockito.doXxx() to stub a @MockitoSpyBean #35410
  • Fix links to Reactive Libraries and RestTemplate #35392
  • Fix broken link in WebDriver docs #35374
  • Document Web DataBinder support for RouterFunction #35367
  • Improve documentation for ApplicationEvents to clarify recommended usage #35335
  • Document terms and units in DataSize.parse() #35298
  • Refine @Contract Javadoc #35285
  • Correct the default value of nestedTransactionAllowed in JpaTransactionManager javadoc #35212

πŸ”¨ Dependency Upgrades

  • Upgrade to Micrometer 1.14.11 #35455
  • Upgrade to Reactor 2024.0.10 #35454

❀️ Contributors

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

@Dockerel, @Kehrlann, @acktsap, @khj68, @ngocnhan-tran1996, @scordio, and @sgflt

v7.0.0-M8

14 Aug 08:27
Compare
Choose a tag to compare
v7.0.0-M8 Pre-release
Pre-release

⭐ New Features

  • Only add httpServiceProxyRegistry bean when necessary #35307
  • Introduce @Proxyable annotation for bean-specific proxy type #35296
  • Introduce bean definition attribute for enforcing an interface-based proxy #35293
  • Let Spring Boot consistently switch to CGLIB proxies for any proxy processor (including @Retryable, @Async etc.) #35286
  • HTTP method support in MappedInterceptor #35273
  • Post process outgoing messages in JmsClient #35271
  • Introduce ConfigurableApplicationContext.pause() and SmartLifecycle.isPauseable() #35269
  • Provide support to configure request interceptors in RestTestClient #35268
  • Provide more control over validation in DefaultApiVersionStrategy #35267
  • PathApiVersionResolver should not be nullable #35265
  • Replace useRequestParam with useQueryParam in ApiVersionConfigurer to align with client #35263
  • Add support for MediaType in ApiVersionInserter #35259
  • ApiVersionConfigurer misconfiguration is hard to detect when no version resolvers are added #35256
  • Support HttpServiceClient annotation #35244
  • Prefer mapping without version for requests without a version #35237
  • Provide @WebSocketScope annotation and public SCOPE_WEBSOCKET constant (for consistency with @RequestScope and co) #35235
  • Allow getting receipt from StompSession.Subscription.unsubscribe() #35224
  • Support wildcard path elements at the start of path patterns #35213
  • Improve handling of request parameter without values in MockMvc #35210
  • Display original request URI in NoResourceFoundException message #34553
  • Add RestTestClient #34428
  • Support Hibernate StatelessSession [SPR-2495] #7184

🐞 Bug Fixes

  • Fix JacksonJsonSockJsMessageCodec imports #35309
  • IllegalStateException: No API version attribute #35236

πŸ“” Documentation

  • Document constraints for HTTP range requests #35227

πŸ”¨ Dependency Upgrades

  • Upgrade to Hibernate ORM 7.1 #35308
  • Upgrade to Jackson 3.0.0-rc6 and 2.19.2 #35228
  • Upgrade to Jackson 3.0.0-rc8 and 2.20.0-rc1 #35295
  • Upgrade to Jetty 12.1.0.beta3 #35233
  • Upgrade to Micrometer 1.16.0-M2 #35311
  • Upgrade to Reactor 2025.0.0-M6 #35310

❀️ Contributors

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

@FBibonne, @NeatGuyCoding, @SRIRAM9487, @Songdoeon, @philwebb, and @rworsnop

v6.2.10

14 Aug 07:46
Compare
Choose a tag to compare

⭐ New Features

  • Optimize NIO path resolution in PathEditor #35304
  • Make type in ProblemDetail nullable #35294
  • Refine UriUtils#decode and StringUtils#uriDecode implementation and documentation #35253
  • Provide configurable useCaches option for URLConnection usage in UrlResource (avoiding jar file leak) #35218

🐞 Bug Fixes

  • @Scheduled tasks running in SimpleAsyncTaskScheduler are interrupted immediately on context close #35254
  • ScriptUtils.executeSqlScript() does not support multiple results per statement #35248
  • Successful Autowiring Dependent on Configuration ordering and Primary Bean flag #35239
  • Locale parameter in MessageSource#getMessage methods should be nullable #35230
  • Allow any @Transactional propagation for @TransactionalEventListener with BEFORE_COMMIT phase #35150
  • Catalog name should be handled with the provided case #35064
  • Accept support for generated keys column name array on HSQLDB and Derby as well #34790
  • Handle direct CanncelationException on timeout in JdkClientHttpRequest #34721

πŸ“” Documentation

  • Add documentation of RequestMapping about SpEL #35232
  • Document SqlBinaryValue behaviour with PostgreSQL #34786

πŸ”¨ Dependency Upgrades

  • Upgrade to Micrometer 1.14.10 #35313
  • Upgrade to Reactor 2024.0.9 #35312

❀️ Contributors

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

@Allan-QLB, @carsago, @cw-dimedis, and @giampa91

v7.0.0-M7

17 Jul 10:04
Compare
Choose a tag to compare
v7.0.0-M7 Pre-release
Pre-release

⭐ New Features

  • LocalDataSourceJobStore should re-initialize statically registered Quartz ConnectionProvider on context restart #35208
  • Make rootObject parameter consistently nullable #35206
  • Refine multipart converter registration in HttpMessageConverters #35203
  • Introduce getSource() in ApplicationContextEvent with covariant return type #35197
  • Introduce ContextRestartedEvent as a subtype of ContextStartedEvent #35194
  • Align HttpMessageConverters builder with WebFlux codecs variants #35187
  • Transaction-scoped resource binding in TransactionSynchronizationManager #35182
  • Use flexible generics nullness in RestClient.RequestHeadersSpec.ExchangeFunction #35180
  • Introduce ConfigurableApplicationContext.restart() method #35171
  • Pause unused application contexts in the TestContext framework #35168
  • Skip initialization of a NullBean #35165
  • Short-circuit matching algorithm in InstanceFilter #35161
  • Support direct matching against exceptions in ExceptionTypeFilter #35160
  • InstanceFilter and ExceptionTypeFilter should set matchIfEmpty to true by default #35158
  • Require explicit constraints in @Contract #35157
  • Specify fetchSize/maxRows/queryTimeout per statement in JdbcClient #35155
  • Include MethodParameter[] parameters in HttpRequestValues.Processor #35148
  • Deprecate DaoSupport classes #35145
  • Remove maxDuration/maxElapsedTime support from RetryPolicy #35144
  • Introduce @ConcurrencyLimit annotation based on ConcurrencyThrottleInterceptor #35133
  • Consistently implement toString() in BackOff strategies #35120
  • Support API versioning for functional endpoints #35113
  • Migrate orm.hibernate5 to orm.jpa.hibernate package for Hibernate ORM 7.0 #35111
  • Redesign RetryPolicy to directly incorporate BackOff #35110
  • Ability to limit list of supported API versions to explicitly configured ones for Spring MVC #35105
  • Refine nullability of PropertyResolver.getProperty(key: String) extension #35104
  • Support for exposing additional object types in SmartFactoryBean #35101
  • Add missing @Nullable to MethodInvoker::setArguments parameter #35089
  • Support @RequestBody in interface method when computing "consumes" condition #35086
  • Consistent validation of supported API versions #35082
  • Resolve optional HandlerMethod parameter of @ExceptionHandler method to null #35067
  • Add ability to decorate HttpExchangeAdapter through HttpServiceProxyFactory #35059
  • Introduce Builder API and factory methods for RetryPolicy #35058
  • Revise RetryTemplate for alignment with Reactor (in preparation for @Retryable) #35057
  • Add ApiVersionResolver based on parameter in media type #35050
  • Support deprecation information in API versioning #35049
  • Add support for configuring SslInfo in WebTestClient #35042
  • Make built-in RetryPolicy implementations final #35040
  • Specify flexible generics nullness in spring-jdbc #34911
  • Allow usage of @CheckReturnValue on types and constructors #34910
  • Support repeatable writes in FormHttpMessageConverter#writeMultipart #34859
  • Convert applicable methods in Scope to default methods #34757
  • Add public method to get bean order #34712
  • Discard further rows once maxRows has been reached #34709
  • Support DefaultWebFilterChain allowing the current filter to provide its name explicitly #34702
  • API Versioning Support #34565
  • Introduce @Retryable AOP support (based on core.retry and Reactor retry functionality) #34529
  • Revisit converters and codecs default setup in HTTP stacks #33894
  • ConfigurationBeanNameGenerator for @Bean-annotated methods #33448
  • Qualified EntityManager/EntityManagerFactory injection (aligned with Jakarta Persistence 3.2) #33414
  • Introduce JmsClient with customizable send/receive operations #32501
  • Allow conditional handling of 404 with HTTP Interface clients #32105
  • Allow to set TTL (and other QoS-related settings) on a per-message (and/or per-send) basis #26840

🐞 Bug Fixes

  • Allow ordering of HttpMessageConverterss through WebMvcConfigurer.configureMessageConverters(HttpMessageConverters.Builder) #35177
  • Content-Disposition response header duplicated for failed StreamingResponseBody #35116
  • CachingMetadataReaderFactory does not cache all metadatareader calls #35112
  • sslInfo() should return the builder for MockServerHttpRequest #35075
  • HttpService group adapters could not be instantiated in a native image #35038

πŸ“” Documentation

  • Improve URLs in Validation chapter of the reference manual #35181
  • Update Spring MVC message converters documentation #35166
  • Add a note about Field/Method vs. TYPE_USE annotations in reference docs #35098
  • Document intention of toString() in HandlerMethod #35055
  • Add section in docs on byte-range requests in Spring MVC and WebFlux #35052

πŸ”¨ Dependency Upgrades

  • Upgrade to Jetty 12.1.0.beta1 #35084
  • Upgrade to Kotlin 2.2.0 #34453
  • Upgrade to Micrometer 1.16.0-M1 #35170
  • Upgrade to Reactor 2025.0.0-M5 #35169

❀️ Contributors

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

@Allan-QLB, @NeatGuyCoding, @OlgaMaciaszek, @Pankraz76, @izeye, @ngocnhan-tran1996, @quaff, @remeio, @renatomameli, @scordio, and @wonyongg

v6.2.9

17 Jul 07:54
Compare
Choose a tag to compare

⭐ New Features

  • OncePerRequestFilter cannot be CGLib-proxied #35198
  • Consistently catch InaccessibleObjectException next to IllegalAccessException #35190
  • Introduce Date-to-Instant and Instant-to-Date converters #35175
  • Consistent nullability and exception declarations in AbstractMessagingTemplate hierarchy #35159
  • Register runtime hints for Instant-to-Timestamp conversion #35156
  • Improve handling of ResponseEntity<?> in Spring MVC #35153
  • Support @CacheConfig("myCacheName") declarations for simplified configuration #35152
  • Declare messageSelector parameters in JmsOperations as @Nullable #35151
  • Add getter for OverflowStrategy in ConcurrentWebSocketSessionDecorator #35132
  • Use preset Content-Type for streaming and reactive responses in Spring MVC #35130
  • Leniently tolerate null @Aspect bean #35074
  • DataAccessResourceFailureException thrown when transaction times out on PostgreSQL #35073
  • MethodInvokingFactoryBean fails to invoke publicly exported methods overridden by internal classes when using JPMS #34028

🐞 Bug Fixes

  • Restore preference for interface (most abstract) method in getPubliclyAccessibleMethodIfPossible #35189
  • Make targetBeanName field in AbstractBeanFactoryBasedTargetSource protected to avoid exceptions in logging and toString() #35172
  • Fix inconsistencies in StaticListableBeanFactory #35119
  • Support StreamingHttpOutputMessage in RestClient #35102
  • When building DELETE requests, the request body is not used in JdkClientHttpRequest.buildRequest #35068
  • AOT-generated bean registration file contains "too many constants" when building with many beans #35044
  • Prevent cache pollution by storing only the factories #34732
  • WebFlux decodes wildcard content-types as form-data/multipart #34660
  • AOT-generated CGLib proxies do not contain method overrides #34642
  • 500 response for ResourceHttpRequestHandler when requested range is not satisfied #34490

πŸ“” Documentation

  • Document how to register runtime hints for convention-based conversion #35178
  • Link to @ContextConfiguration Javadoc from reference manual #35088

πŸ”¨ Dependency Upgrades

  • Upgrade to JUnit 5.13.3 #35103
  • Upgrade to Micrometer 1.14.9 #35202
  • Upgrade to Reactor 2024.0.8 #35201

❀️ Contributors

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

@Meijuh, @RazorNd, @chenggwang, @izeye, @mjd507, @ngocnhan-tran1996, and @philwebb

v7.0.0-M6

12 Jun 10:22
Compare
Choose a tag to compare
v7.0.0-M6 Pre-release
Pre-release

⭐ New Features

  • Allow FixedBackOff to be constructed with only a custom interval #35028
  • Use String.replace in MetadataEncoder #35025
  • Revise @Nullable declarations for contains*() methods in CollectionUtils #35023
  • Introduce JacksonJsonMessageConverter.getObjectMapper() #34963
  • Remove (String, String) variants of setProperty() and withProperty() from MockEnvironment #34948
  • Allow access to env from SupplierContextDsl #34943
  • Consistently declare nullability @Contract for core utilities #34934
  • Update HttpServiceGroupConfigurer API #34926
  • Make ProblemDetailJacksonXmlMixin compatible with Jackson 3 #34925
  • Introduce hints in RestClient API #34924
  • Add Kotlin body advices #34923
  • Add support for callable references to BeanRegistrarDsl #34922
  • Additional updates for API versioning in test and client support #34919
  • Define nullability @Contract for quote and getFilename in StringUtils #34896
  • Support @Import on interfaces #34820
  • Use HexFormat in CharacterEditor #34798
  • Use HexFormat in ContentDisposition #34797
  • Introduce minimal retry functionality as a core framework feature #34716
  • Add support for "application/*+x-protobuf" media type #34645
  • Support OutputStream and InputStream in HTTP Interface clients #32358

🐞 Bug Fixes

  • @Contract for SupplierUtils.resolve(Supplier) incorrectly declares !null -> !null #34987
  • Consistent null check on injection points for pre-existing singleton beans #34952

πŸ“” Documentation

  • Refine null-safety documentation terms #34982
  • Stop referring to JUnit 5 in documentation #34970
  • Fix typos in API versioning #34961
  • Add missing since attributes for @Deprecated declarations #34942
  • Improve Javadoc for getFilename() and getFilenameExtension() in StringUtils #34932
  • Add documentation for HTTP service proxy registry #34912
  • Update outdated JettyHttpHandlerAdapter example in reference documentation #34877

πŸ”¨ Dependency Upgrades

  • Upgrade to Jackson 3.0.0-rc5 #34945
  • Upgrade to Jetty 12.1.0.beta0 #34930
  • Upgrade to Kotlin 2.2.0-RC2 #34946
  • Upgrade to Micrometer 1.15.1 #35019
  • Upgrade to Netty v4.2.2.Final and Reactor 2025.0.0-SNAPSHOT #34996
  • Upgrade to Reactor 2025.0.0-M4 #34997

❀️ Contributors

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

@Tussle0410, @doroszkiewicz, @fmbenhassine, @hgh1472, @izeye, @kilink, @kssumin, @kwondh5217, @quaff, @scottfrederick, and @violetagg

v6.2.8

12 Jun 09:42
Compare
Choose a tag to compare

⭐ New Features

  • Nullability @Contract declaration for CodeFlow.isIntegerForNumericOp() is unnecessary #34985
  • Serializer hint registration is broken for some Kotlin classes #34979
  • Clients created using JdkClientHttpRequestFactory set content-length for GET, DELETE and HEAD requests #34971
  • Support registration of non-public BeanDefinitionReader via @ImportResource #34928
  • Make max size for pattern cache in PathPatternMatchableHandlerMapping configurable #34918
  • Add optimized DataBufferInputStream overrides #34799

🐞 Bug Fixes

  • Encode non-printable character in Content-Disposition parameter #35034
  • Allow update of existing WebSession after max sessions limit is reached #35013
  • Fix support for collections in AbstractKotlinSerializationHttpMessageConverter #34992
  • PathPattern#combine throws StringIndexOutOfBoundsException #34986
  • Fix AOT code generation for autowired inner class constructor #34974
  • AbstractFileResolvingResource.exists closes JAR resource input streams with v6.2.7 #34955
  • Enhanced configuration class fails to call package-visible superclass constructor on WebSphere #34950
  • Fix REPLY_CHANNEL header check in MessageHeaderAccessor #34949
  • MockEnvironment does not accept Object property values #34947
  • PropertySourcesPlaceholderConfigurer no longer uses ConversionService from Environment #34936
  • @Contract for StreamUtils.drain() incorrectly declares null results in an exception #34933
  • Inconsistent behavior injecting null @Bean factory parameter #34929
  • MockHttpServletRequest.addHeader duplicates "Content-Type" header #34913
  • BeanUtils.getParameterNames fails for Kotlin data classes #34760
  • JAXB message converters ignore Content-Type charset #34745
  • Aspect Not Triggered After Restart in Spring Boot 3.4.x (But Works in 3.3.10) #34735
  • Add caching headers to unmodified static resources #34614

πŸ“” Documentation

  • Apply gh-34856 to MockClientHttpRequest in testfixture package #35031
  • Fix ResourceHttpRequestHandler#setHeaders JavaDoc #35004
  • Remove reference to AspectJ Eclipse Javadoc #35000
  • Mention CompletableFuture in Spring MVC "Asynchronous Requests" section of reference manual #34991
  • Fix exception name in ModelAttribute docs #34980
  • Fix syntax in @SqlGroup example #34972
  • Update X-Forwarded-Proto doc to say https / http #34959
  • Update Guidance on Best Practices To Test Code That Uses RestClient and RestTemplate #34892
  • Add a section for WebAsyncTask in mvc-ann-async.adoc #34885
  • Clarify what @RestControllerAdvice vs @ControllerAdvice apply to by default #34866
  • Improve Javadoc for @ExceptionHandler #34554

πŸ”¨ Dependency Upgrades

  • Upgrade to HttpComponents HttpClient 5.5 #34941
  • Upgrade to Micrometer 1.14.8 #35020
  • Upgrade to Reactor 2024.0.7 #35021

❀️ Contributors

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

@Allan-QLB, @Aurh1l, @BowieDu, @DhruvTheDev1, @Dongnyoung, @JimmyAx, @addoDev, @dmitrysulman, @izeye, @jjank, @kilink, @mbazos, @msnsaeed71, @ngocnhan-tran1996, @nosan, @remeio, @vpavic, and @yuzawa-san

v6.1.21

12 Jun 08:55
Compare
Choose a tag to compare

🐞 Bug Fixes

  • Encode non-printable character in Content-Disposition parameter #35035
  • Allow update of existing WebSession after max sessions limit is reached #35018
  • Enhanced configuration class fails to call package-visible superclass constructor on WebSphere #34951

πŸ”¨ Dependency Upgrades

  • Upgrade to Reactor 2023.0.19 #35022

v7.0.0-M5

15 May 10:31
Compare
Choose a tag to compare
v7.0.0-M5 Pre-release
Pre-release

⭐ New Features

  • Deprecate PropertyPlaceholderConfigurer and PreferencesPlaceholderConfigurer for removal #34880
  • Add Consumer based variant methods to HttpRequestValues builder #34870
  • Add defaultApiVersion to RestClient and WebClient builders #34857
  • Evaluate system properties in default HttpClient in ReactorClientHttpRequestFactory #34850
  • Use beanClassLoader in the HTTP Service Registrar #34846
  • Deprecate JUnit 4 support in the Spring TestContext Framework #34794
  • Ability to validate supported API versions only against explicitly configured ones #34775
  • Revisit Jackson support #33798

🐞 Bug Fixes

  • ClassFileAnnotationMetadata.fromTypeDescriptor(…) fails on Java 24 #34882
  • Align ClassFileClassMetadata with other implementations #34869
  • Incorrect filtering of groups with HttpServiceGroupConfigurer #34867
  • Aggregated Javadoc no longer published since 7.0.0-M4 #34774

πŸ“” Documentation

  • Add Reference Documentation for API Versioning #34569

πŸ”¨ Dependency Upgrades

  • Upgrade to Kotlin 2.1.21 #34900
  • Upgrade to Micrometer 1.15.0 #34888
  • Upgrade to Reactor 2025.0.0-M3 #34897

❀️ Contributors

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

@dmitrysulman, @philwebb, and @siom79