7.8.0.RELEASE
The Lettuce team is pleased to announce the Lettuce 7.8.0 minor release!
Lettuce 7.8.0 supports Redis 2.6+ up to Redis 8.x. In terms of Java runtime, Lettuce requires at least Java 8 and works with Java 24. The driver is tested against Redis 8.10, Redis 8.8, Redis 8.6, Redis 8.4, Redis 8.2, Redis 8.0, Redis 7.4 and Redis 7.2.
Thanks to all contributors who made Lettuce 7.8.0.RELEASE possible.
📗 Links Reference documentation: https://lettuce.io/core/7.8.0.RELEASE
⭐ New Features
- [Redis 8.10] Add FT.AGGREGATE REDUCE COLLECT support with complex-value FieldValue by @uglide in https://github.com/redis/lettuce/pull/3878
- Prepare public APIs for optional Reactor support by @a-TODO-rov in https://github.com/redis/lettuce/pull/3915
- Extend ZRANGE with additional arguments by @Dgramada in https://github.com/redis/lettuce/pull/3908
- Rework codecs for redis search module by @viktoriya-kutsarova in https://github.com/redis/lettuce/pull/3884
🐞 Bug Fixes
- Relax timeouts on MOVING rebind without buffered commands by @ggivo in https://github.com/redis/lettuce/pull/3894
- Signal onError instead of hanging when a reactive complex-output command errors by @HwangRock in https://github.com/redis/lettuce/pull/3851
- Fix ObjectOutput handling of top-level scalar responses by @cfcromn in https://github.com/redis/lettuce/pull/3861
- LCS command broken for non String codecs by @Dgramada in https://github.com/redis/lettuce/pull/3919
- fix: XAUTOCLAIM with JUSTID reports deleted PEL entries as claimed messages by @waterWang in https://github.com/redis/lettuce/pull/3901
- Support Sentinel implementations with a partial command surface by @uglide in https://github.com/redis/lettuce/pull/3920
⚙️ Maintenance
- Bump Netty to 4.2.17.Final by @a-TODO-rov in https://github.com/redis/lettuce/pull/3899
- Upgrade Reactor Core to 3.8.7 by @a-TODO-rov in https://github.com/redis/lettuce/pull/3905
💡 Other
- Promote geo failover API to GA by @a-TODO-rov in https://github.com/redis/lettuce/pull/3914
- Deprecate sorted set commands by @Dgramada in https://github.com/redis/lettuce/pull/3913
- Deprecate legacy client-side caching support by @a-TODO-rov in https://github.com/redis/lettuce/pull/3897
- Make partitions and readFrom volatile in PooledClusterConnectionProvider #3777 by @big-cir in https://github.com/redis/lettuce/pull/3783
- Report test metrics from a nightly workflow by @bobymicroby in https://github.com/redis/lettuce/pull/3903
- Add warm up docs by @a-TODO-rov in https://github.com/redis/lettuce/pull/3895
- Update the docs after 7.7 release by @a-TODO-rov in https://github.com/redis/lettuce/pull/3896
- Support running integration tests against externally provisioned Redis Enterprise databases by @uglide in https://github.com/redis/lettuce/pull/3898
❤️ New Contributors - Welcome to the Lettuce family!
- @cfcromn made their first contribution in https://github.com/redis/lettuce/pull/3861
- @waterWang made their first contribution in https://github.com/redis/lettuce/pull/3901
- @bobymicroby made their first contribution in https://github.com/redis/lettuce/pull/3903
Full Changelog: https://github.com/redis/lettuce/compare/7.7.0.RELEASE...7.8.0.RELEASE
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
v3.0.0
- (Base)
PlatformUtilsrenamed toOS. - (Sampler) SceneBuilder integration removed in favor of the SceneBuilder plugin.
- 🚀 CSD decoration styles (see JDK-8356115) for all major OSs in
atlantafx-decorationsmodule. - 🚀 SceneBuilder plugin for SceneBuilder 24+ in
atlantafx-scene-buildermodule. - 🚀 Fluent validation API in
atlantafx-validationmodule. - 🚀 Spin control (base) with 30 different skins in
atlantafx-spinsmodule. - 🚀 (Base) New API for
Themeand related features:ThemeManagerfor centralized control over application themes and dynamic style options.ThemeManifestto expose theme variables (colors, paddings, etc.) for programmatic access.ThemePropertiesfor associating user-specific data with a theme.- Modular (partial) theme loading support.
- 🚀 (Base) Sidebar control.
- (CSS) Utility classes for
border-radius(thanks to ennerf). - (CSS) Size support for
ToggleButton(thanks to tanhuang2016). - (Sampler) Auto-downloading extra themes provided by
dlsc-software-consulting-gmbh/atlantafx-themes(thanks to dlemmermann).
- (Build) Java version bump to 25. All artifacts are compiled with the same version.
- (Build) JavaFX version bump to 27.
- (Base) Added GraalVM reachability metadata (thanks to ennerf).
- (Base) All modules switched to JSpecify annotations (and lots of internal refactoring caused by this change).
- (Base) Themes can now be discovered via
ServiceLoader. - (Base)
atlantafx.base.utilpackage promoted from internal utils to provide general utility classes for app development:StyleMaphelper for managing Node's inline CSS styles.- Toolkit-agnostic actions to open resources in the default OS app.
- Cross-platform
XDGspecification implementation. - Observable
Colourutility to simplify working with colors. - Auxiliary classes and contract interfaces:
Lazy,Focusable,Disposable. - Various documentation and API improvements.
- (Base)
Animationsreset logic refactored to avoid registering helper listeners and store initial values as Node properties instead. - (Base)
Styles.toDataUri()deprecated in favor of newStyles.encode()andStyles.decode()methods that are aware of MIME types. - (Sampler) Prepared Sampler to be released as a native image (thanks to ennerf).
- (Sampler) Used GemsFX
StageManagerto restore stage size (thanks to dlemmermann).
- (CSS)
PieChartline color. - (CSS) Removed vertical menu extra item padding.
- (CSS) JavaFX regression where scrollbar thumb height became invisible in large textareas and tables.
- (CSS) Removed accent hover border from toolbar buttons.
- (CSS)
MenuButtonicon color.
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)