Details
-
Wish
-
Status: Closed
-
Minor
-
Resolution: Won't Do
-
1.2.2
-
None
Description
Guava has become a common library used in many projects.
Provided default implementation (MemoryConstrainedCacheManager) seems to retain data in cache for too long for common cases.
Others implementation (ehcache, terracotta) require the developper to add some dependencies.
Guava provides a caching API [1]. It's convenient since it's in-memory and thread-safe, Guava has a mature quality code base and it support few tweaking options:
concurrencyLevel
initialCapacity
maximumSize
maximumWeight
expireAfterAccess
expireAfterWrite
refreshAfterWrite
weakKeys
softValues
weakValues
recordStats
I've already programmed the whole thing (patch provided) and I was wondering if the Shiro team would be interested to integrate this as a new module. It's tiny (no dependency except guava and shiro-cache).
We could just put this CacheManager implementation in shiro-core or in shiro-cache module or in it's own module (but i think a module for a single class is overkill).
It's not perfect but i did some Javadoc.