Uploaded image for project: 'Shiro'
  1. Shiro
  2. SHIRO-481

Provide CacheManager implementation based on Guava caching API

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Closed
    • Minor
    • Resolution: Won't Do
    • 1.2.2
    • None
    • Caching

    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.

      Attachments

        1. SHIRO-481.patch
          10 kB
          Brendan Le Ny

        Activity

          People

            Unassigned Unassigned
            bleny Brendan Le Ny
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 1h
                1h
                Remaining:
                Remaining Estimate - 1h
                1h
                Logged:
                Time Spent - Not Specified
                Not Specified