Brendan Le Ny created SHIRO-481:
-----------------------------------

             Summary: Provide CacheManager implementation based on Guava 
caching API
                 Key: SHIRO-481
                 URL: https://issues.apache.org/jira/browse/SHIRO-481
             Project: Shiro
          Issue Type: Wish
          Components: Caching 
    Affects Versions: 1.2.2
            Reporter: Brendan Le Ny
            Priority: Minor


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.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to