v7.1.0-M2
- Align DispatcherServlet bean detection logs #37296
- Extract bean property path support into PropertyPath #37275
- Expose matched PathPattern as MVC request attribute #37272
- Add a configurable limit for maximum nesting depth in property paths #37252
- Enforce "data: " (with space) prefix for outgoing SSE data payloads #37242
- Parse RFC 9651-like date headers #37224
- Polish ScheduledAnnotationBeanPostProcessor to refine null-safety #37219
- Add batch update support to JdbcClient #37216
- Emit multipart parts with empty bodies in PartGenerator #37202
- Upgrade to HtmlUnit 5 #37194
- Ignore invalid SSE retry field #37193
- Handle MIME type parameter names case-insensitively #37192
- Deprecate
SpelParserConfigurationconstructors in favor of the builder API #37190 - When connection to client is lost while writing JSON, it should not be logged as warning #37151
- JMS
SimpleMessageConverter.fromMessage()can returnnulldespite@NullMarkedpackage #37148 - Avoid unnecessary allocations for cached annotation mappings #37141
- Update
MockCookie#parse(String)validation #37136 - Add WebFlux OpenTelemetry observation convention #37131
- Limit bracket depth in
PropertyEditorRegistrySupport'saddStrippedPropertyPaths()#37020 - Improve efficiency of map creation in
DataBinder#37019 - Reject overlapping declared and generated key columns in
SimpleJdbcInsert#37014 - Reject MIME type parameters differing only in case #37008
- Use depth-aware bracket parsing in
PropertyAccessorUtils#36999 - Account for all array objects when checking array size in SpEL #36998
- Align SpEL's default max auto-grow size with Spring data binding #36995
- Avoid redundant registration of Date/Calendar/Long converters in DefaultFormattingConversionService #36951
- Suppress CGLIB validation WARN for lifecycle callbacks #36935
- Add Cache-Control must-understand directive #36918
- validate samesite attribute in ResponseCookie #36905
- Close contexts when clearing test context cache #36825
- Use immutable map for static cache in TypeDescriptor #36813
- Add a configurable limit for structural nesting depth in SpEL expressions #36723
- Simplify programmatic scheduling of cron tasks with time zone #36556
- Deprecate Derby support #36045
- Add support for generating resources linked to a feature #35862
- Add RFC 10008 (QUERY HTTP method) support #34993
- PartGenerator.switchToFile() doesn't count buffered bytes toward maxDiskUsagePerPart #37238
- Reject write methods not starting with "set" in
Property#37139 - Meta-annotations with attributes are still unnecessarily synthesized in
MergedAnnotations#37135 - Use the 4-argument
Propertyconstructor in SpEL'sReflectivePropertyAccessor#37123 - Fix
BeanFactory.getBean(String, ParameterizedTypeReference)to respect AOP proxy #37047 - Fix
OptionalToObjectConverterapplicability check #36913 - Fix
Propertyname resolution for record-style accessors #36911
- Upgrade to Kotlin 2.4.20 #37271
- Upgrade to Micrometer 1.18.0-M2 and Tracing 1.8.0-M2 #37288
- Upgrade to Reactor 2026.0.0-M2 #37263
Thank you to all the contributors who worked on this release:
@DevJunz, @Eymenonar, @Sineaggi, @Will-thom, @blackdurumi, @cookie-meringue, @desiderantes, @dxbjavid, @froggy0m0, @gregjotau, @heka1024, @junhyeong9812, @junhyung8795, @kilink, @lArtiquel, @marschall, @mateo-maza, @ngocnhan-tran1996, @noojung, @quaff, @sabberworm, @seonwooj0810, @shaggyinsomniac, @verhasi, and @vpavic
v4.2.0-M2
- Deprecate AppOptics as it has retired #51810
- Improve classpath entry lookup performance during jar creation and extraction #51787
- Add spring.kafka.listener.await-async-results-on-stop property #51774
- Rationalize Kafka configuration outside of KafkaProperties #51769
- Make the active Observation LongTaskTimer on the auto-configured DefaultMeterObservationHandler opt-in #51762
- Configure allowed HTTP methods in GraphQL transports #51732
- Allow to use Mongo JobRepository with any PlatformTransactionManager #51725
- Resolve property placeholders in constructor binding default values #51661
- Add auto-configured BaggageTaggingSpanProcessor for OpenTelemetry tag fields #51656
- Improve the performance of layer index creation #51654
- Speed up layer lookups when extracting a layered jar #51653
- Move Tomcat's servlet-specific properties beneath server.tomcat.servlet #51603
- Align handling of null and empty values in SPRING_APPLICATION_JSON with YAML processing #51583
- Remove Dependency Management for Janino #51567
- Add jarmode tools command to print / export the SBOM #51505
- Pick up all
@TypeExcludeFiltersannotations on test classes #51489 - Make it easier to map MessageSourceProperties onto a user-provided AbstractResourceBasedMessageSource #51484
- Support multi-segment additional health endpoint paths #51470
- Honor spring.ldap.* properties in the Embedded LDAP server #51465
- Add a configuration property for configuring embedded LDAP operation types that require authentication #51461
- Add TWENTY_SEVEN to JavaVersion enum #51427
- Automatically filter additional configuration metadata from Spring Boot-built archives #51386
- Add SSL bundle support to LDAP auto-configuration #51382
- Align the default for server.tomcat.use-relative-redirects with Tomcat's default #51173
- Allow configuring Micrometer Tracing MDC keys #50595
- Add common OTLP configuration for endpoint, compression and headers #50461
- Retain probe defaults when configuring other properties on probe health groups #50296
- Include security error body in WebFlux Cloud Foundry endpoint responses #50256
- Provide a configuration property to switch from Micrometer to OpenTelemetry semantic conventions #49241
- Support listener and template specific Kafka Admin properties #38830
- spring.http.clients.cookie-handling has no effect when using a reactive client backed by an HttpComponents connector #51767
- NullPointerException can be thrown when using uber jars due to a race condition in NestedJarFileResources #51746
- Connection fails when rabbitmq Docker Compose service is configured to use SSL #51668
- SBOM-related manifest attributes are missing from Maven-packaged wars #51652
- When server.reactive.session.cookie.same-site is not set, session cookies have no SameSite attribute #51640
- OAuth2 resource server ignores authorities-claim-delimiter when set on its own #51631
- developmentOnly and testAndDevelopmentOnly configurations do not specify any attributes causing potential resolution problems #51624
- In a reactive web application, Cloud Foundry security integration returns a 500 rather than a 503 when the cloud controller URL is unavailable #51615
- ReactiveOAuth2ResourceServerWebSecurityAutoConfiguration annotated with wrong condition #51588
- WritableJson.toByteArray() may corrupt supplementary characters #51586
- Layer temp file is not deleted when layer creation fails #51582
- Docker Compose integration for RabbitMQ skips credential fallbacks when an environment variable has no value #51579
- Some assertion messages name the wrong parameter #51575
- OAuth2ResourceServerProperties.Jwt has a setter that does not match its getter #51566
- jarmode tools commands print stacktrace instead of an error message #51548
- Docker Compose ProcessRunner can hang or leave orphan processes #51539
- NestedByteChannel.read(ByteBuffer) incorrectly returns 0 when buffer could not be filled #51521
- Customizer null checks in HTTP client builders assert the wrong attribute #51514
- SSL host config customizations may be lost during Tomcat initialization #51512
- SQL Server Docker Compose integration may duplicate the JDBC URL's encrypt parameter #51482
- SSL host config customizations are lost when reloading SSL bundles #51458
- OAuth2ClientProperties are not available when a user-defined ClientRegistrationRepository bean is provided #51451
- LdapHealthIndicator reports UNKNOWN instead of UP when LDAP server doesn't expose a protocol version #51442
- JmsHealthIndicator leaks watchdog threads if start fails immediately #51434
- Honour a wrapper's unwrap when resolving the root DataSource #51420
- Source is not closed consistently by all JSON marshal testers #51419
- File handle in SpringBootJoranConfigurator should be closed #51416
- Validation of deprecated io.buildpacks.stack.id is too aggressive #51401
- Document support for Java 27 #51826
- Fix broken links from reference documentation to external Javadoc #51821
- Remove reference to AppOptics in the reference guide as it has retired #51809
- Fix broken links #51803
- Update Spring Framework reference links #51772
- Update testcontainers javadoc links #51766
- Maven plugin documentation incorrectly references remote restart property #51748
- Fix documented default of spring.test.database.replace #51729
- Fix ActiveMQContainer Javadoc link in Testcontainers documentation #51723
- Correct Jackson 3 Javadoc links #51664
- Document baggage propagation over gRPC #51657
- Fix typo in deprecated Pushgateway base-url property metadata #51633
- Remove references to Spring Data Geode #51565
- Fix typos in service containers javadoc and reference documentation #51446
- Document SAML2 back-off in WebFlux security documentation #51436
- Remove reference to removed SpringBootWebSecurityConfiguration #51414
- Upgrade to ActiveMQ 6.3.2 #51669
- Upgrade to Artemis 2.57.0 #51670
- Upgrade to Build Helper Maven Plugin 3.6.2 #51734
- Upgrade to Byte Buddy 1.18.14 #51753
- Upgrade to Couchbase Client 3.12.3 #51754
- Upgrade to Elasticsearch Client 9.5.4 #51831
- Upgrade to FreeMarker 2.3.35 #51672
- Upgrade to GraphQL Java 26.1 #51735
- Upgrade to Groovy 5.1.2 #51673
- Upgrade to H2 2.5.250 #51674
- Upgrade to Hibernate 7.4.9.Final #51832
- Upgrade to HtmlUnit 5.5.0 #51676
- Upgrade to Infinispan 16.2.3 #51677
- Upgrade to Jackson 2 Bom 2.21.6 #51678
- Upgrade to Jackson Bom 3.1.6 #51679
- Upgrade to Jakarta Json Bind 3.0.3 #51680
- Upgrade to Jaybird 6.0.6 #51681
- Upgrade to Jedis 8.0.1 #51756
- Upgrade to Jetty 12.1.13 #51682
- Upgrade to jOOQ 3.21.8 #51683
- Upgrade to Kotlin 2.4.20 #51816
- Upgrade to Lettuce 7.7.0.RELEASE #51757
- Upgrade to Liquibase 5.0.4 #51684
- Upgrade to Logback 1.6.3 #51685
- Upgrade to Lombok 1.18.48 #51686
- Upgrade to Maven Compiler Plugin 3.16.0 #51687
- Upgrade to Maven Deploy Plugin 3.2.0 #51758
- Upgrade to Maven Failsafe Plugin 3.6.0 #51688
- Upgrade to Maven Install Plugin 3.2.0 #51759
- Upgrade to Maven Surefire Plugin 3.6.0 #51689
- Upgrade to Micrometer 1.18.0-M2 #51776
- Upgrade to Micrometer Tracing 1.8.0-M2 #51777
- Upgrade to MongoDB 5.11.1 #51760
- Upgrade to MSSQL JDBC 13.6.0.jre11 #51690
- Upgrade to Native Build Tools Plugin 1.1.14 #51834
- Upgrade to Netty 4.2.18.Final #51692
- Upgrade to OpenTelemetry 1.65.0 #51779
- Upgrade to Pooled JMS 3.2.5 #51693
- Upgrade to Prometheus Client 1.9.0 #51811
- Upgrade to Protobuf Maven Plugin 5.1.9 #51737
- Upgrade to Qpid ProtonJ2 1.3.0 #51694
- Upgrade to R2DBC MariaDB 1.4.2 #51695
- Upgrade to R2DBC MSSQL 1.0.6.RELEASE #51696
- Upgrade to RabbitMQ AMQP Client 1.5.0 #51698
- Upgrade to RabbitMQ Client 5.36.0 #51818
- Upgrade to RabbitMQ Stream Client 1.11.0 #51699
- Upgrade to Reactor Bom 2026.0.0-M2 #51710
- Upgrade to Selenium 4.49.0 #51700
- Upgrade to Selenium HtmlUnit 4.48.0 #51701
- Upgrade to SLF4J 2.0.19 #51702
- Upgrade to SnakeYAML 2.7 #51703
- Upgrade to Spring AMQP 4.2.0-M2 #51711
- Upgrade to Spring Batch 6.1.0-M2 #51778
- Upgrade to Spring Data Bom 2026.1.0-M2 #51752
- Upgrade to Spring Framework 7.1.0-M2 #51712
- Upgrade to Spring GraphQL 2.1.0-M1 #51713
- Upgrade to Spring HATEOAS 3.2.0-M2 #51789
- Upgrade to Spring Integration 7.2.0-M2 #51714
- Upgrade to Spring Kafka 4.2.0-M2 #51715
- Upgrade to Spring LDAP 4.2.0-M1 #51804
- Upgrade to Spring Security 7.2.0-M2 #51805
- Upgrade to Spring Session 4.2.0-M1 #51806
- Upgrade to Spring WS 5.1.0-M1 #51716
- Upgrade to SQLite JDBC 3.53.4.0 #51704
- Upgrade to Tomcat 11.0.26 #51819
- Upgrade to Versions Maven Plugin 2.22.0 #51761
- Upgrade to XML Maven Plugin 1.2.2 #51738
Thank you to all the contributors who worked on this release:
@2heunxun, @CHISANW, @COBI-98, @DevJunz, @JunggiKim, @MacAlsandair, @SebTardif, @Wanbinyu, @basteez, @dhruv9b, @dlwhdgus0810, @dlwldn30, @fabio-grassi, @henriquejsza, @hjm12223, @htjworld, @icikle, @jjh75607, @kdomo, @msridhar, @ngocnhan-tran1996, @nikita-kibitkin, @noojung, @nosan, @o-shevchenko, @ohchanKyu, @philsttr, @piyushrajyadav, @quaff, @scottfrederick, @seanxuu, @shakuzen, @somiljain2006, @vlsi, @xoruddl, @xxxxxxjun, and @yyuneu
v1.4.0-M2
Reactor Netty 1.4.0-M2 is part of 2026.0.0-M2 Release Train.
- Remove deprecated
SslProvider$SslContextSpec#sslContext(SslProvider$ProtocolSslContextSpec)by @violetagg in #4376 - Parse the standard
Forwardedheader directly by @violetagg in #4386
- Depend on
Nettyv4.2.18.Finalby @violetagg in #4375 - Depend on
Micrometerv1.18.0-M2by @violetagg in 0a551c4ba - Depend on
Micrometer Tracingv1.8.0-M2by @violetagg in 0a551c4ba - Extend
HttpCompressionOptionsSpecwith the ability to specify desiredmaxPipelineDepthby @reta in #4338 - Expose connection lifetime to custom
MeterRegistrarby @caiges in #4368 - Refactor
WebSocketHTTP/2handshake request creation by @violetagg in #4374 - Extend
HttpServerConfigwith the ability to specify desiredmaxPipelineDepthby @reta in #4380 - Make connections lifetime available to the built-in
Micrometerintegration by @violetagg in #4382
- Resume the read when the pipelined queue drains without a request by @knutwannheden in #4347
- Parse one-digit ports in
HttpClientString URIs by @kalayciburak in #4362 - Ensure websocket handshake error is not swallowed by @violetagg in #4372
- Add a
WebSocketecho client example by @anjeongkyun in #4346
- @anjeongkyun made their first contribution in #4346
- @knutwannheden made their first contribution in #4347
- @kalayciburak made their first contribution in #4362
- @caiges made their first contribution in #4368
- @mbhave made their first contribution in #4373
Full Changelog: https://github.com/reactor/reactor-netty/compare/v1.4.0-M1...v1.4.0-M2
Nightly
- 808f860: [build] Automated Browser Version Update (#18064) (Selenium CI Bot) #18064
- 39e3bde: [dotnet] [build] Include package license/notice files (#18048) (Nikolay Borisenko) #18048
- 9522517: [dotnet][java][js][py][rb] remove deprecated Firefox profile extension and cert methods (#18066) (Titus Fortner) #18066
- c27beca: [build] repin webref CDDL and drop the reffy CDDL header workaround (Titus Fortner)
- fd17e0f: [java] resolve exceptions from the W3C state in ErrorHandler (#18059) (Yash Pardeshi) #18059
- 0de8ca5: [build] Fix the two CDDL repin fallouts breaking every Python target (#18068) (David Burns) #18068
- 70e4595: [build] link Slack workflow alerts to the workflow run instead of commit checks (Titus Fortner)
- 59b28c4: [rb] fix nightly web extension spec failures on Safari and Windows (Titus Fortner)
- 7c76fa0: [dotnet] [bidi] Eliminate BiDi context on hot path (#18069) (Nikolay Borisenko) #18069
- 1d7affd: [py] [dotnet] [java] declare Firefox default preferences in each binding (#18070) (Titus Fortner) #18070
- 9c331e6: [build] improve flakiness report to better represent failures and flakiness (Titus Fortner)
- 27c86e2: [build] add support for Mozilla's Commands fragment in the BiDi schema (#18071) (Titus Fortner) #18071
- 6ff202a: [rb] fix flaky test by not applying timeouts to the setup navigation (Titus Fortner)
- 65602a2: [dotnet] fix flaky test to search the document response body in VerifySearchInResponseBody instead of the last response (Titus Fortner)
- cd7e01d: [java] fix flaky test by waiting for the reveal mutation instead of asserting it arrives last (Titus Fortner)
- 2ba44eb: [js] fix flaky test by matching the revealed element's mutation instead of taking the last one (Titus Fortner)
- 748477d: [rb] remove dead headless, browser and remote config_settings (Titus Fortner)
3.39.5
- #56037 - Always complete the export when the OTLP sender is shut down
- #56255 - Bump org.freemarker:freemarker from 2.3.34 to 2.3.35
- #56349 - [3.39] Bump to Vert.x 4.5.33
- #56573 - Bump aesh 3.18.0, add pipeline stage results, lazy runtime startup
- #56783 - Typo fixes in gRPC guides
- #56796 - docs: Fix the dead Jose4J link in the JWT Build guide
- #56800 - Add javadoc to AbstractSecurityIdentityAssociation
- #56821 - [3.40] SmallRye Fault Tolerance: bump to 6.11.4
- #56831 - [3.40] Qute: EvalSectionHelper and StrEvalNamespaceResolver fixes
- #56837 - Do not stack asciidoc anchors, because it does not work
- #56838 - Fix malformed link
- #56842 - Fix dead link for Redis sandbox
- #56845 - Bump Keycloak version to 26.7.4
- #56849 - [3.40] Upgrade RESTEasy to 6.2.19.Final
- #56853 - [3.40] Upgrade to Hibernate 7.4.9.Final
- #56857 - [3.40] WebSockets Next: add max-pending-messages back-pressure
- #56861 - [3.40] Fix path normalization bypass on wildcard routes (matrix-param + dot-segment)
- #56867 - [3.40] : Bump smallrye-jwt version to 4.6.4
- #56884 - Invalid Java interface declaration in SmallRye GraphQL guide
- #56885 - Fix interface inheritance in SmallRye GraphQL guide
- #56920 - Update Elytron to 2.9.2.SP1
- #56925 - aesh 3.18.1