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 . It's convenient since it's in-memory and thread-safe, Guava has a mature quality code base and it support few tweaking options:
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.