Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-2418

Implement cache aging and flushing on PersonServiceImpl

    Details

    • Type: Task Task
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.0
    • Component/s: Development
    • Labels:
      None
    • Similar issues:
      KULRICE-2385Implement caching on the IdentityManagementService - Phase 2
      KULRICE-2315Implement caching of data to the IdentityManagementService implementation
      KULRICE-7258Implement caching on ExtensionRepositoryService
      KULRICE-6498Create custom maintainables where needed for cache flushing.
      KULRICE-9455Ingesting a doc type needs to flush additional caches
      KULRICE-7205Cache administration screen doesn't provide feedback on flush
      KULRICE-5967Investigate whether we should publish methods on services to flush caches
      KULRICE-5097KIM Caches are not being flushed as required.
      KULRICE-12457KRMS error and cache flush messages not appearing right
      KULRICE-5942See if we can improve our cache flushing with new Spring cache annotations
    • Rice Module:
      KIM
    • Application Requirement:
      KFS, Rice

      Description

      Add caching configuration and implementation on the PersonServiceImpl similar to the implementation on the identity management service.

      Split out the SoftReference sub-class into its own file (it can stay in the KIM service impl package as a package private for now) and use that class in both places.

      Also, if it makes sense, change the implementation of the soft reference so it checks the age of the item on retrieve to simplify the use of the class.

      You might also be able to eliminate a little overhead by using System.currentTimeMillis() rather than new Date().getTime() since we don't really need a Date object at any point in there.

        Activity

        Hide
        Nate Johnson (Inactive) added a comment -

        I was able to override get() on the SoftReference to check isValid() first. This did simplify the caching code quite a bit. All Dates were changed to System.currentTimeMillis() and the class was broken out. PersonServiceImpl now uses the same spring configurable caching.

        Show
        Nate Johnson (Inactive) added a comment - I was able to override get() on the SoftReference to check isValid() first. This did simplify the caching code quite a bit. All Dates were changed to System.currentTimeMillis() and the class was broken out. PersonServiceImpl now uses the same spring configurable caching.

          People

          • Assignee:
            Nate Johnson (Inactive)
            Reporter:
            Jonathan Keller
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Structure Helper Panel