cache

replace CACHE_EVENTS= by CACHE_EVALUATE_PERFORMANCE=false

8/3/2019 1:24:53 AM

Details

diff --git a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
index fcba33f..bbb0395 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/cache/MultiCache.java
@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
  */
 public class MultiCache<K, V> implements Cache<K, V> {
 
-    private static final String CACHE_EVENTS = System.getenv("CACHE_EVENTS") != null && !System.getenv("CACHE_EVENTS").isEmpty() ? System.getenv("CACHE_EVENTS") : null;
+    private static final boolean CACHE_EVALUATE_PERFORMANCE = System.getenv("CACHE_EVALUATE_PERFORMANCE") == null || !System.getenv("CACHE_EVALUATE_PERFORMANCE").equals("false");
     private static final boolean CACHE_REGISTER_SIZE = System.getenv("CACHE_REGISTER_SIZE") != null && System.getenv("CACHE_REGISTER_SIZE").equals("true");
     private final HashMap<K, V> map;
     private final ConcurrentHashMap<Optional<K>, Long> keyHasTTL;
@@ -105,9 +105,11 @@ public class MultiCache<K, V> implements Cache<K, V> {
                 .collect(Collectors.
                         toMap(entry -> entry.getKey(), entry -> entry.getValue())
                 ).entrySet();
-        entrySet.forEach(entry -> {
-            registerEvent(EventType.HIT, entry.getValue());
-        });
+        if (CACHE_EVALUATE_PERFORMANCE) {
+            entrySet.forEach(entry -> {
+                registerEvent(EventType.HIT, entry.getValue());
+            });
+        }
         return entrySet;
     }
 
@@ -116,9 +118,11 @@ public class MultiCache<K, V> implements Cache<K, V> {
                 .filter(entry -> isValid(entry.getKey()))
                 .map(entry -> entry.getValue())
                 .collect(Collectors.toList());
-        values.forEach(get -> {
-            registerEvent(EventType.HIT, get);
-        });
+        if (CACHE_EVALUATE_PERFORMANCE) {
+            values.forEach(get -> {
+                registerEvent(EventType.HIT, get);
+            });
+        }
         return values;
     }
 
@@ -131,7 +135,7 @@ public class MultiCache<K, V> implements Cache<K, V> {
     }
 
     private void registerEvent(EventType eventType, Object object) {
-        if (CACHE_EVENTS == null) {
+        if (!CACHE_EVALUATE_PERFORMANCE) {
             return;
         }
         String identifier = getIdentifier(object);