Skip to content

Changelog

huangli edited this page Sep 12, 2024 · 56 revisions
  • 2.7.7 (2024-09-12)
    • perf: fix encode/decode performance issue with lettuce (#908)
    • feat: allow customize CacheNotifyMonitor
    • fix: concurrent problem in LinkedHashMapCache, affect 2.7.5 and 2.7.6 (#914)
  • 2.7.6 (2024-6-2)
    • perf: support jedis cluster pipeline (#866)
    • perf: improve the performance of jedis batch commands. (#873)
    • ci: publish Bill of Materials POMs (#877)
    • fix: SquashedLogger not print Throwable class and message (#888)
    • update fastjson2 to 2.0.51
  • 2.7.5 (2024-01-20)
    • optimise for java 21
    • fix: concurrent problem in DecoderMap. (#852)
  • 2.7.4 (2023-09-09)
    • improve spring-boot 3 compatibility and use spring-boot3/spring-framework6 as default dependency, remove javax.annotation:javax.annotation-api (#813 and more)
    • allow custom AutoConfigureBeans #783
    • fix: log wrong exception when decode failed #806
    • bump fastjson2 / jedis / lettuce / slf4j / logback / jackson
    • fix: thread id generation has concurrent problem in JetCacheExecutor #811
  • 2.7.3 (2023-01-18)
    • Key converter which implements KeyConvertor interface (not Function<Object,Object>) can process byte[] and String.
  • 2.7.2 (2022-12-20)
    • add support for spring-boot3, spring-framework6
    • update encoder/decoder for redisson implementation, incompatible with 2.7.1
    • upgrade fastjson2 to 2.0.21
  • 2.7.1 (2022-11-12)
    • update dependencies and docs
  • 2.7.0 (2022-08-24) (compare to 2.7.0.RC3)
    • (#705) fix bean name of CacheManager conflict with spring cache
    • fix: the parse in SpringConfigProvider is not SpringXXXParser instance by default.
    • 2.7 Compatibility notes: 中文/English
  • 2.7.0.RC3 (2022-08-06) (compare to 2.7.0.RC)
    • fix cache load and refresh problem for SimpleCacheManager.getOrCreateCache()
    • look source_code/docs/language/Compatibility.md for more notes
  • 2.7.0.RC (2022-08-05) (compare to 2.7.0.M2)
    • new feature: add CacheManager.getOrCreateCache(QuickConfig) to replace CreateCache annotation, the CreateCache annotation is deprecated
    • fix problem in local cache invalidate notification
    • support kryo5/fastjson2/jackson as value encoder/decoder, fastjson2/jackson is not register by default
    • fix redisson expire problem
    • fix some build problems
    • compatibility: change default key convertor from fastjson to fastjson2
    • compatibility: make kryo/fastjson dependency optional, new dependency kryo5/jackson is also optional, fastjson2 is not optional (it is default key convertor)
    • compatibility: change GlobalCacheConfig.areaInCacheName default value to false
    • compatibility: Remove CacheManager.defaultManager() method, some internal public methods changed
    • look source_code/docs/language/Compatibility.md for more notes
  • 2.7.0.M2 (2022-07-18) (compare to 2.7.0.M1)
    • New feature: add redisson support
    • New feature: add local cache invalidate notification for lettuce/spring-data/redisson
    • add SquashedLogger to improve exception log
    • upgrade fastjson/spring/jedis/slf4j/logback-classic, make mvel dependency optional
    • support jackson as key convertor
    • eliminate ClassCastException when some properties are set in auto-configuration initialization
    • add lettuce cluster topology refresh config for auto configuration. (#670)
    • Fix: auto-configuration not set key convertor for RedisBroadcastManage (#674)
    • Fix ExpressionUtil always return false issue (#682)
    • Fix RedisLettuceCache not catch and log decode exception during GET/GET_ALL. (#688)
    • move wiki documents to source repository
    • add some sample code
  • 2.6.7 (2022-07-18)
    • Fix RedisLettuceCache not catch and log decode exception during GET/GET_ALL. (#688)
    • move wiki documents to source repository
    • add some sample code
  • 2.6.6 (2022-07-12)
    • Add lettuce cluster topology refresh config for auto configuration. (#670)
    • Fix ExpressionUtil always return false issue (#682)
  • 2.6.5 (2022-05-27)
    • Fix cache.getAll() not cache null value (#652)
    • Upgrade fastjson to 1.2.83
    • Support jackson as key convertor
  • 2.7.0.M1 (2022-05-08) (compare to 2.6.4)
    • New feature: support invalidate local cache when MultiLevelCache put/remove. Add syncLocal property to Cached/CreateCache annotation. jedis support the feature in this release.
    • Upgrade jedis to 4.2.2, notice that spring boot 2.6.6 need jedis 3.x
    • Add support for JedisCluster (jedis 4+ is required)
    • Fix LoadingCache.getAll() not cache null value (#652)
  • 2.6.4 (2022-04-17)
    • Add cluster mode for spring boot auto configuration when there is only one uri
  • 2.6.3 (2022-04-09)
    • Fix loop dependency (especially with spring boot 2.6+)
    • Fix potential NPE when context class loader is null
    • CacheManager now support @CreateCache annotation
    • Remove useless code
  • 2.6.2 (2021-12-22)
    • Fix #627: use spring boot starter may have a null key prefix (in 2.6.1)
  • 2.6.1 (2021-12-08)
    • (#573) use custom bean as convertor or encoder/decoder may cause NPE
    • (#593) Cache key prefix can dynamic change in runtime
    • (#605) Fix concurrent problem of CacheResult
    • (#618) Optimise penetration protect: eliminate duplicate load in some concurrent case
    • update fastjson to 1.2.76
  • 2.6.0 (2020-03-28)
    • (incompatible) GET/GET_ALL method of RefreshCache will not trigger auto refresh
    • Integrate with spring-data-redis
    • Remove lettuce 4 support
    • Upgrade jedis to 3.1.0. Jedis 2.9 is not supported.
    • Simplify customization of CacheMonitor/MetricsCallback, KeyConvertor, ValueEncoder/Decoder, CacheNameGeneratoradd CacheMessagePublisher
    • Rename DefaultCacheMonitorManager to DefaultMetricsManager, rename statCallback to metricsCallback
  • 2.5.16 (2019-12-27)
    • Fix spel compiler problem
  • 2.5.15 (2019-11-09)
    • Update jedis to 2.10.2 and fastjson to 1.2.62
    • Optimise penetration protect
    • Fix compatible problem for Kryo 5
    • Fix hard code of fastjson KeyConvertor
    • Some minor fixes
  • 2.5.14 (2019-08-04)
    • Add cache refresh mechanism to computeIfAbsent method.
  • 2.5.13 (2019-06-21)
    • Add MockRemoteCache to jetcache-core for unit test
    • Improve cache initialization in CacheManager
    • Some minor fix
  • 2.5.12 (2019-04-04)
    • add CacheManager to get Cache instance generated by Cached and CreateCache annotation.
    • add penetration protect wait timeout.
    • lettuce static master/slave support (for AWS ElastiCache Cluster)
    • read from slave support for jedis
  • 2.5.11 (2019-01-20)
    • Fix dulipcated init with lettuce 4
    • Fix dead lock with @CachePenetrationProtect in some conditions
    • Fix duplicated aop proxy in some conditions (multi advisor)
  • 2.5.10.1 (2018-12-13)
    • bug fix: CacheResultCode returned in RedisLettuceCache.PUT_ALL method is not correct (allways SUCCESS).
    • bug fix: cacheNullValue doesn't work for CacheType.BOTH in Cached annotation.
  • 2.5.9 (2018-10-19)
    • async operation timeout support for lettuce
    • fast fail setting for RedisLettuceAutoConfiguration
    • compatibility for Java 11 during build process
  • 2.5.8 (2018-10-16)
    • Compatibility for SpringFramework 5.1
  • 2.5.7 (2018-09-10)
    • LoadingCache use batch update when penetration protect is disabled
    • Add multi support to @CacheInvalidate and @CacheUpdate
  • 2.5.6 (2018-08-04)
    • Fix compatibility between JavaValueDecoder and spring boot dev tools
  • 2.5.5 (2018-07-08)
    • Fix bug with expireAfterAccess config
  • 2.5.4 (2018-06-30)
    • Fix problem: read from slave of a cluster
  • 2.5.3 (2018-06-24)
    • Support read from slave for lettuce
    • Fix spring boot placeholder problem (#99)
    • Fix compatibility with spring boot dev tools
    • Add jetcache.enableMethodCache property
  • 2.5.2 (2018-05-30)
    • Eliminate the warning log : "jetcache REMOVE return unexpected code: NOT_EXISTS"
  • 2.5.1 (2018-05-15)
    • Add postCondition to @Cached
    • @CacheUpdate and @CacheInvalidate now support reference method result in SpEL script
    • Fix bug in LoadingCache that method getAll does not respect to cacheNullValue config
    • Fix bug that null value put into cache when value script of @CacheUpdate evaluate fails
    • Optimize memory performance of JavaValueEncoder and KryoValueEncoder
    • Fix scope of JUnit4
  • 2.5.0 (2018-05-06)
    • Compatibility Note: ClassCastException may occurs when upgrade directly from versions <=2.3.3 and MultiLevelCache(or cacheType=CacheType.BOTH) is used. To solve this problem, upgrade to 2.4.4 and deploy it to product env first, then upgrade to 2.5.0 or above.
    • Add penetration protect feature. Only one thread execute loader when cache miss. Add @CachePenetrationProtect. Affected methods include AbstractCache#computeIfAbsent, LoadingCache#get, LoadingCache#getAll.
    • Allow set expire of local and remote sub cache respectively, in MultiLevelCache. Add useExpireOfSubCache to MultiLevelCache, add localExpire to @Cached and @CreateCache. This may break remote value compatibility of MultiLevelCache, version <=2.3.3
    • Annotations on sub classes will override annotations on interfaces and super class.
    • Add targetClass to NameGenerator.generateCacheName, see #46
    • Update minor version of dependencies
  • 2.4.4 (2018-03-28)
    • Automatically detect encode type before decode, so no error occurs after changing encoder/decoder for a remote cache.
    • Add useIdentityNumber option to Encoder/Decoder
    • Support using a Spring bean as KeyConvertor/ValueEncoder/ValueDecoder
    • Add CacheNameGenerator, now you can customize your own CacheNameGenerator by overwriting SpringConfigProvider
    • Fix bug: configProvider in CacheContext is not init properly
    • Add areaInCacheName in GlobalCacheConfig
  • 2.4.3 (2018-03-19)
    • Optimise cache refresh with MultiLevelCache.
    • Override close method for MultiLevelCache.
  • 2.4.2 (2018-03-16)
    • fix #27, @CacheRefresh doesn't work if cacheType=CacheType.BOTH
    • fix duplicated statistic of load count in method cache
  • 2.4.1 (2018-02-06)
    • add @CacheRefresh for automatically refresh method cache using annotation; remove unless attribute from @Cached
    • bugfix: fix type bug in asynchronous API in 2.4.0 and 2.3.4
    • bugfix: cacheNullValue config in RefreshCache does not work
  • 2.3.5 (2018-02-06)
    • bugfix: fix type bug in asynchronous API in 2.4.0 and 2.3.4
    • bugfix: cacheNullValue config in RefreshCache does not work
  • 2.4.0 (2018-01-30)
    • introduce @CacheInvalidate and @CacheUpdate for removing or updating method cache
    • @Cached support specify key using SpEL in "key" attribute
    • bugfix: ClassCastException occurs when different application server connect to same remote cache server using different cacheType(CacheType.REMOTE or CacheType.BOTH).
  • 2.3.4 (2018-01-30)
    • bugfix: ClassCastException occurs when different application server connect to same remote cache server using different cacheType(CacheType.REMOTE or CacheType.BOTH).
  • 2.3.3 (2018-01-11)
    • optimise auto refresh
    • Simplify tryLock implementation and enhance retry mechanism, add 3 parameters to CacheConfig: tryLockUnlockCount, tryLockInquiryCount, tryLockLockCount
  • 2.3.2 (2018-01-05)
    • bypass local cache when refresh in a MultiLevelCache instance
    • fix issue #25 : putIfAbsent issue in CaffeineCache and LinkedHashMapCache
  • 2.3.1 (2017-12-04)
    • set class scope ConfigTree to public
  • 2.2.2 (2017-12-04)
    • set class scope ConfigTree to public
  • 2.3.0 (2017-11-24)
    • support lettuce 5 in artifact jetcache-redis-lettuce and jetcache-starter-redis-lettuce
    • rename old artifact jetcache-redis-luttece,jetcache-starter-redis-luttece to jetcache-redis-lettuce4,jetcache-starter-redis-lettuce4 to provide lettuce 4 support
    • fix all misspell of "lettuce" in package name, class name and config
    • update dependencies: spring 4.3.7 -> 4.3.12, boot 1.5.2 -> 1.5.8, fastjson 1.2.32 -> 1.2.41, mvel 2.3.1 -> 2.4.0, kryo 4.0.0 -> 4.0.1, caffeine 2.5.2 -> 2.6.0
  • 2.2.1 (2017-11-22)
    • If sub cache has a loader, MultiLevelCache will throw a CacheConfigException during construction
    • Fix problems when spring boot version <= 1.2.X
    • Compatible with Spring Boot 2.0.0.M6
    • Update lettuce to 4.4.2 and fix misspell "lettuce" in configuration
  • 2.1.8 (2017-11-22)
    • Fix problems when spring boot version <= 1.2.X
    • unwrap method in class RedisCache now work with parameter Pool.class and RedisSentinelPool.class
  • 2.2.0 (2017-09-01)
    • unwrap method in class RedisCache now work with parameter Pool.class and RedisSentinelPool.class
    • add direct jedis dependency for jetcache-starter-redis
    • coverage tools integration
  • 2.1.7 (2017-06-12)
    • declare beanDependencyManager bean in static way to eliminate warning log during startup
  • 2.2.0.Beta4 (2017-06-12)
    • declare beanDependencyManager bean in static way to eliminate warning log during startup
  • 2.1.6 (2017-6-12)
    • fix compatible problem with Spring(<=4.2) in jetcache 2.1.5
  • 2.2.0.Beta3 (2017-06-12)
    • fix compatible problem with Spring(<=4.2) in jetcache 2.1.5, 2.2.0.Beta1, 2.2.0.Beta2
  • 2.2.0.Beta2 (2017-06-08)
    • MultiLevelCache now supports unwrap method
    • optimise RefreshCache
  • 2.2.0.Beta1 (2017-06-05)
    • support redis luttece client
    • introduce asynchronous cache API (when using luttece)
    • introduce auto load (read through) and auto refresh features
    • add timeUnit attribute to @Cached and @CreateCache
    • some internal API refactor
  • 2.1.5 (2017-05-08)
    • fix issue #5 : exception occurs when invoking @Cached method in @PostConstruct method with Spring Boot
  • 2.1.4 (2017-04-27)
    • fix bug with redis auto configuration when using sentinel.
    • update spring boot dependency to 1.5.2
Clone this wiki locally