Skip to content

Releases: alibaba/jetcache

v2.5.1

15 May 02:47
Compare
Choose a tag to compare
  • Add postCondition to Cached annotation
  • 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 annatation evaluate fails
  • Optimize memory performance of JavaValueEncoder and KryoValueEncoder
  • Fix scope of JUnit4

v2.5.0

06 May 14:32
Compare
Choose a tag to compare
  • 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

v2.4.4

28 Mar 13:52
Compare
Choose a tag to compare
  • 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

v2.4.3

19 Mar 07:50
Compare
Choose a tag to compare
  • Optimise cache refresh with MultiLevelCache.
  • Override close method for MultiLevelCache.

v2.4.2

16 Mar 06:02
Compare
Choose a tag to compare
  • fix #27, @cacherefresh doesn't work if cacheType=CacheType.BOTH
  • fix duplicated statistic of load count in method cache

v2.4.1

16 Mar 06:02
Compare
Choose a tag to compare
  • 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

v2.3.5

16 Mar 06:01
Compare
Choose a tag to compare
  • bugfix: fix type bug in asynchronous API in 2.4.0 and 2.3.4
  • bugfix: cacheNullValue config in RefreshCache does not work

v2.4.0

31 Jan 05:58
Compare
Choose a tag to compare
  • 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).

v2.3.4

31 Jan 05:58
Compare
Choose a tag to compare

bugfix: ClassCastException occurs when different application server connect to same remote cache server using different cacheType(CacheType.REMOTE or CacheType.BOTH).

v2.3.3

11 Jan 14:17
Compare
Choose a tag to compare
  • optimise auto refresh
  • Simplify tryLock implementation and enhance retry mechanism, add 3 parameters to CacheConfig: tryLockUnlockCount, tryLockInquiryCount, tryLockLockCount