redisson-4.8.0
Feature - Redisson AI implemented
Feature - REmbeddingModel object added
Feature - REmbeddingsCache object added
Feature - RVectorStore object added
Feature - RSemanticCache object added
Feature - RAgentMemory object added
Feature - Spring AI 2.0.0 integration
Feature - Spring AI Chat Memory implementation
Feature - Spring AI Semantic Cache implementation
Feature - Count-min sketch object added
Feature - Time Series (Native) object added
Feature - RTimeSeriesNatives object added for mass operations with Time Series (Native) objects
Feature - RCountMin and RTimeSeriesNative objects added to RBatch object
Feature - Valkey 8.0+ availability zone support through AZ_AFFINITY, AZ_AFFINITY_SLAVES_AND_MASTER, AZ_AFFINITY_MASTER_SLAVE read modes and clientAvailabilityZone setting
Feature - Apache Fory JSON codec added: JsonForyCodec and TypedJsonForyCodec
Feature - PrefixNameMapper object added
Feature - RTimeSeries.add(TimeSeriesAddArgs) method added, old add() methods deprecated
Feature - RTimeSeries.addIfAbsent() and addOrReplace() methods added
Feature - RTimeSeries.aggregate() method added
Feature - RTimeSeries.addAndGet(), addIfLess(), addIfGreater() and addAndSum() methods added
Feature - RTimeSeries.getAll(), getAllEntries(), removeAll(), getAndRemoveAll() and getAndRemoveAllEntries() methods added
Feature - RTimeSeries.readTail() and info() methods added
Feature - RTimeSeries.rangeByLabel(), rangeReversedByLabel(), entryRangeByLabel(), entryRangeReversedByLabel(), removeRangeByLabel() and labels() methods added
Feature - retention setting added to TimeSeriesAddArgs of RTimeSeries object
Feature - RKeys.time() method added (thanks to @dlwhdgus0810)
Feature - StorageMemoryUsageListener and storageStatisticsInterval setting added (thanks to @seakider)
Feature - allowedClasses setting added to JsonJacksonCodec and JsonJackson3Codec
Feature - node address is now passed to FailedNodeDetector methods, legacy methods deprecated (thanks to @rahulrane50)
Improvement - ZStdCodec optimization. Up to 18X faster to encode, up to 91X faster to decode
Improvement - ForyCodec optimization. Up to 2X faster encoding
Improvement - SnappyCodecV2 memory allocation optimization
Improvement - LFUCacheMap optimization: ~25% faster, elements eviction throughput gain is 1.6X-6.9X
Improvement - RTimeSeries entries sharing a timestamp keep insertion order
Improvement - failed command recording is no longer serialized (thanks to @rahulrane50)
Improvement - failed node recovery moved out of health check (thanks to @rahulrane50)
Improvement - Netty updated to 4.2.18.Final
Improvement - Fory lib updated to 1.7.5
Improvement - Kryo lib updated to 5.7.0
Improvement - Jackson libs updated to 2.22.1 and 3.2.1
Improvement - Caffeine lib updated to 3.2.4
Improvement - Javassist lib updated to 3.32.0-GA
Improvement - lz4-java lib updated to 1.11.2
Improvement - Micrometer lib updated to 1.16.6
Improvement - Helidon lib updated to 4.5.4
Improvement - Micronaut lib updated to 5.1.13
Improvement - Quarkus lib updated to 3.40.1
Improvement - Tomcat libs updated to 9.0.121, 10.1.59 and 11.0.25
Fixed - high CPU usage by Hibernate RedissonCacheKeysFactory.createCollectionKey() method
Fixed - CommandDecoder.readLong() performance regression
Fixed - FastRemovalQueue isn't atomic
Fixed - AsyncSemaphore.removeListeners() method should cancel futures
Fixed - AbstractCacheMap view iterators cannot remove
Fixed - AbstractCacheMap.computeIfPresent() method drops a mapping without onValueRemove
Fixed - AbstractCacheMap.entrySet() remove/contains methods compare the wrong types
Fixed - SerializationCodec doesn't use allowedClasses if classLoader isn't defined
Fixed - ZStdCodec, LZ4CodecV2 and LZ4Codec don't check decompression size
Fixed - incorrect maxIdleTime=0 handling in RMapCache.putIfAbsent() method
Fixed - RObject.renamenx() method may throw key not found error
Fixed - RSearch.hasIndex() method throws "unknown index name" error
Fixed - RTimeSeries get/remove methods skip a live entry if an expired one shares its timestamp
Fixed - RTimeSeries range with a limit drops entries sharing a timestamp
Fixed - RTimeSeries fails on timestamps above 1e17 and on an entry missing its expiration
Fixed - RTimeSeries first/last/poll methods return insertion order instead of timestamp order
Fixed - RRateLimiter discards permits returned by release() method if available permits are recalculated (thanks to @likerhythm)
Fixed - FailedCommandsDetector undercounts failures sharing the same millisecond (thanks to @rahulrane50)
Fixed - RKeysRx keys iterator ignores reactive backpressure (thanks to @stlahxm)
Fixed - RSetCache entry added without TTL may become invisible (thanks to @fudianchn)
Fixed - local cache disabled marker isn't cleaned up after transaction commit (thanks to @fudianchn)
Fixed - local cache transaction invalidation events aren't published through sharded topic in cluster (thanks to @fudianchn)
Fixed - RESP3 boolean reply isn't consumed if completed command's reply is skipped (thanks to @fudianchn)
Fixed - ByteBuf leak in BaseTransactionalMap.isEqual() method (thanks to @kalayciburak)
Fixed - RReliableTopic stops polling after listener exception (thanks to @49EHyeon42)
Fixed - RBinaryStream input stream position is incorrect after partial reads (thanks to @daixiheguu)
Fixed - CROSSSLOT error in lock renewal if useSingleServer() is used behind a cluster proxy (thanks to @govansmailbox)
Fixed - missing permit acquisition in connection pool tracking (thanks to @Sebmaster)
Fixed - connection bootstrap ordering around AUTH (thanks to @rahulrane50)
Fixed - failed replica recovery during connection pool selection (thanks to @rahulrane50)
Fixed - Spring Data Redis Reactive hash field expiration ignores expiration type and precision (thanks to @COBI-98)
Fixed - RedissonCache.retrieve() method returns internal NullValue object instead of null (thanks to @stlahxm)
Fixed - Spring Data Redis set() method ignores KEEPTTL and unixTimestamp expirations (thanks to @stlahxm)
Fixed - Spring Data Redis Reactive getEx() method ignores PERSIST, KEEPTTL, EXAT and PXAT options (thanks to @stlahxm)
Fixed - Spring Data Redis getEx() method doesn't apply passed options
Fixed - Same slave node reconnection after failover causes timeout exceptions if performanceMode != NORMAL
Fixed - Quarkus native build fails with GraalVM 25
Nightly
- 4bac0b9: [py] Validate WebSocket response interval correctly (#17984) (cui fliter) #17984
- 54e30d3: prevent bazel from loading packages found in claude worktrees (Titus Fortner)
- 2d4e08d: [build] Reset versions to nightly after selenium-4.50.0 release (Titus Fortner)
- ee91623: [build] Automated Selenium Manager Update (Selenium CI Bot)
- 22ef9f3: [build] ensure ruby version is set to nightly when doing a nightly release (Titus Fortner)
- 9a1d799: [build] skip the Selenium Manager snapshot if the triggering commit updates the pinned version (Titus Fortner)
- b382b9d: [build] after release push the nightly version reset commit to trunk regardless of the source branch (Titus Fortner)
- d5de5d9: [build] overwrite artifacts on upload so re-running a failed job does not collide with the first attempt (Titus Fortner)
- 3941f00: [build] wait for trunk to unlock before running pull request tests on RBE (Titus Fortner)
- e1af1a7: [rb] update tests to guard BiDi browsing context on Safari and Windows Firefox, and unblock digital credentials on Safari (Titus Fortner)
- 72dec72: [js] ensure tests use Chrome for Testing instead of System Chrome (Titus Fortner)
- 0db3e38: [js] fix race condition in tests for BiDi responseCompleted events (Titus Fortner)
- e086574: [py][bidi] Send setClientWindowState rect members as sibling params (#18100) (David Burns) #18100
- 1bb320f: [rust] Degrade to empty metadata when the cache cannot be read (#18101) (David Burns) #18101
- 150d0d4: [build] Automated Selenium Manager Update (Selenium CI Bot)
- e91ce88: [dotnet] [test] Separate project for NUnit infrastructure (#18104) (Nikolay Borisenko) #18104
- a786547: [java] Do not leak the HttpClient on startup failure (#18047) (joerg1985) #18047
- 93d7472: [java] Add RemoteWebDriver.getClientFactory() and move HttpCommandExecutor field removal to 4.53 (#18111) (Diego Molina) #18111
- 888a7a2: [build] wait for trunk to unlock before running pull request tests on GitHub runners (Titus Fortner)
- a8984c2: [dotnet] [test] Parallelize internal testing (#18110) (Nikolay Borisenko) #18110
- bdb7ccc: [build] pin Firefox BiDi vendor CDDL from the Firefox repository (#18094) (Titus Fortner) #18094
- 8e92f06: [build] remove obsolete third_party dependencies and dead build references (#18072) (Titus Fortner) #18072
- 3db7e73: [build] generate release docs at approval and commit them after the packages publish (#18113) (Titus Fortner) #18113
- 90b0072: [dotnet] [test] Upgrade NUnit library to v5 (#18114) (Nikolay Borisenko) #18114
- 68d2843: [build] recover from incomplete Java release by dropping staged repositories when found (#18112) (Titus Fortner) #18112
7.21.0-rc.650
- build(deps): bump tomcat.version from 11.0.25 to 11.0.26 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5562
- build(deps): bump the maven-plugins group across 1 directory with 6 updates by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5563
- build(deps): bump org.codehaus.mojo:extra-enforcer-rules from 1.12.0 to 1.12.1 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5550
- build(deps-dev): bump org.sonarsource.scanner.maven:sonar-maven-plugin from 5.7.0.6970 to 5.8.0.7211 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5548
- build(deps-dev): bump org.codehaus.mojo:versions-maven-plugin from 2.21.0 to 2.22.0 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5551
- build(deps-dev): bump org.codehaus.mojo:exec-maven-plugin from 3.6.3 to 3.6.4 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5552
- build(deps): bump Alfresco/alfresco-build-tools/.github/actions/github-pr-check-metadata from 18.28.3 to 19.1.0 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5578
- build(deps): bump Alfresco/alfresco-build-tools/.github/actions/jx-updatebot-pr from 18.28.3 to 19.1.0 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5577
- build(deps): bump joda-time:joda-time from 2.14.3 to 2.14.4 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5570
- build(deps): bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5575
- build(deps): bump https://github.com/returntocorp/semgrep from v1.176.0 to 1.178.0 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5572
- build(deps): bump Alfresco/alfresco-build-tools/.github/actions/get-branch-name from 18.28.3 to 19.1.0 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5576
- build(deps): bump https://github.com/sirosen/check-jsonschema from 0.38.0 to 0.38.2 by @dependabot[bot] in https://github.com/Activiti/Activiti/pull/5573
- AAE-52182 Bump prettier to 3.9.9 and prettier-plugin-java to 2.10.4 by @dsibilio in https://github.com/Activiti/Activiti/pull/5567
- AAE-52554 Stop SonarCloud reporting other people's code as new in PRs by @mavotto in https://github.com/Activiti/Activiti/pull/5580
- AAE-51998 Defer start payload type validation until output mappings resolve by @amolodyh-hyland in https://github.com/Activiti/Activiti/pull/5557
- @amolodyh-hyland made their first contribution in https://github.com/Activiti/Activiti/pull/5557
Full Changelog: https://github.com/Activiti/Activiti/compare/7.21.0-rc.649...7.21.0-rc.650