Remove redundant store parameter from ChronicleMapCacheImpl The ChronicleMap store is currently passed as an argument to both the ChronicleMapCacheImpl and the ChronicleMapCacheLoader. This is unnecessary, since the ChronicleMapCacheImpl can always derive the store from its loader. This simplifies the signature of the constructor. Change-Id: If0042afd5b31d8f67adace5c42a9137af3ef83f3
diff --git a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheFactory.java b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheFactory.java index 58e2ff5..af13d57 100644 --- a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheFactory.java +++ b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheFactory.java
@@ -138,8 +138,7 @@ config, metricMaker, memLoader, - new InMemoryCacheLoadingFromStoreImpl<>(mem, false), - store); + new InMemoryCacheLoadingFromStoreImpl<>(mem, false)); } catch (IOException e) { throw new UncheckedIOException(e); @@ -204,8 +203,7 @@ config, metricMaker, memLoader, - new InMemoryCacheLoadingFromStoreImpl<>(mem, true), - store); + new InMemoryCacheLoadingFromStoreImpl<>(mem, true)); } catch (IOException e) { throw new UncheckedIOException(e); }
diff --git a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheImpl.java b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheImpl.java index 181192e..53a57ec 100644 --- a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheImpl.java +++ b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheImpl.java
@@ -74,8 +74,7 @@ ChronicleMapCacheConfig config, MetricMaker metricMaker, ChronicleMapCacheLoader<K, V> memLoader, - InMemoryCache<K, V> mem, - ChronicleMap<KeyWrapper<K>, TimedValue<V>> store) { + InMemoryCache<K, V> mem) { this.cacheDefinition = def; this.config = config; @@ -84,7 +83,7 @@ (int) Math.max(config.getMaxEntries() * config.getpercentageHotKeys() / 100, 1)); this.memLoader = memLoader; this.mem = mem; - this.store = store; + this.store = memLoader.getStore(); ChronicleMapStorageMetrics metrics = new ChronicleMapStorageMetrics(metricMaker); metrics.registerCallBackMetrics(def.name(), this);
diff --git a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheLoader.java b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheLoader.java index 66f214f..8aa6349 100644 --- a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheLoader.java +++ b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheLoader.java
@@ -119,6 +119,10 @@ } } + public ChronicleMap<KeyWrapper<K>, TimedValue<V>> getStore() { + return store; + } + TimedValue<V> loadIfPresent(K key) { TimedValue<V> h = store.get(new KeyWrapper<>(key)); if (h != null && !expired(h.getCreated())) {