cache

added refresh ttl policy env

10/18/2020 2:56:53 AM

Details

diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java b/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java
index 279ae7b..c4584fd 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/Caffeine.java
@@ -28,6 +28,7 @@ public class Caffeine<K, V> implements Cache<K, V>, AutoCloseable {
 
     private static final boolean CACHE_EVALUATE_PERFORMANCE = System.getenv("CACHE_EVENTS") == null || !System.getenv("CACHE_EVENTS").equals("false");
     private static final boolean CACHE_REGISTER_SIZE = System.getenv("CACHE_REGISTER_SIZE") != null && System.getenv("CACHE_REGISTER_SIZE").equals("true");
+    private static final boolean CACHE_REFRESH_TTL = System.getenv("CACHE_REFRESH_TTL") != null && System.getenv("CACHE_REFRESH_TTL").equals("true");
     private final com.github.benmanes.caffeine.cache.Cache<Optional<K>, Optional<V>> cache;
     private final ConcurrentHashMap<Optional<K>, Long> keyHasTTL;
     private final CachePerformance cachePerformance;
@@ -89,6 +90,9 @@ public class Caffeine<K, V> implements Cache<K, V>, AutoCloseable {
 
                     @Override
                     public long expireAfterRead(Optional<K> key, Optional<V> value, long currentTime, long currentDuration) {
+                        if (CACHE_REFRESH_TTL) {
+                            return expireAfterCreate(key, value, currentTime);
+                        }
                         return currentDuration;
                     }
                 });