summaryrefslogtreecommitdiffstats
path: root/gerrit-cache-mem/src/main/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-cache-mem/src/main/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java')
-rw-r--r--gerrit-cache-mem/src/main/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java98
1 files changed, 0 insertions, 98 deletions
diff --git a/gerrit-cache-mem/src/main/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java b/gerrit-cache-mem/src/main/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java
deleted file mode 100644
index 8091e16f08..0000000000
--- a/gerrit-cache-mem/src/main/java/com/google/gerrit/server/cache/mem/DefaultMemoryCacheFactory.java
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright (C) 2012 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.server.cache.mem;
-
-import com.google.common.base.Strings;
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import com.google.common.cache.Weigher;
-import com.google.gerrit.server.cache.CacheBinding;
-import com.google.gerrit.server.cache.ForwardingRemovalListener;
-import com.google.gerrit.server.cache.MemoryCacheFactory;
-import com.google.gerrit.server.config.ConfigUtil;
-import com.google.gerrit.server.config.GerritServerConfig;
-import com.google.inject.Inject;
-import java.util.concurrent.TimeUnit;
-import org.eclipse.jgit.lib.Config;
-
-public class DefaultMemoryCacheFactory implements MemoryCacheFactory {
- private final Config cfg;
- private final ForwardingRemovalListener.Factory forwardingRemovalListenerFactory;
-
- @Inject
- DefaultMemoryCacheFactory(
- @GerritServerConfig Config config,
- ForwardingRemovalListener.Factory forwardingRemovalListenerFactory) {
- this.cfg = config;
- this.forwardingRemovalListenerFactory = forwardingRemovalListenerFactory;
- }
-
- @Override
- public <K, V> Cache<K, V> build(CacheBinding<K, V> def) {
- return create(def).build();
- }
-
- @Override
- public <K, V> LoadingCache<K, V> build(CacheBinding<K, V> def, CacheLoader<K, V> loader) {
- return create(def).build(loader);
- }
-
- @SuppressWarnings("unchecked")
- private <K, V> CacheBuilder<K, V> create(CacheBinding<K, V> def) {
- CacheBuilder<K, V> builder = newCacheBuilder();
- builder.recordStats();
- builder.maximumWeight(cfg.getLong("cache", def.name(), "memoryLimit", def.maximumWeight()));
-
- builder = builder.removalListener(forwardingRemovalListenerFactory.create(def.name()));
-
- Weigher<K, V> weigher = def.weigher();
- if (weigher == null) {
- weigher = unitWeight();
- }
- builder.weigher(weigher);
-
- Long age = def.expireAfterWrite(TimeUnit.SECONDS);
- if (has(def.name(), "maxAge")) {
- builder.expireAfterWrite(
- ConfigUtil.getTimeUnit(
- cfg, "cache", def.name(), "maxAge", age != null ? age : 0, TimeUnit.SECONDS),
- TimeUnit.SECONDS);
- } else if (age != null) {
- builder.expireAfterWrite(age, TimeUnit.SECONDS);
- }
-
- return builder;
- }
-
- private boolean has(String name, String var) {
- return !Strings.isNullOrEmpty(cfg.getString("cache", name, var));
- }
-
- @SuppressWarnings("unchecked")
- private static <K, V> CacheBuilder<K, V> newCacheBuilder() {
- return (CacheBuilder<K, V>) CacheBuilder.newBuilder();
- }
-
- private static <K, V> Weigher<K, V> unitWeight() {
- return new Weigher<K, V>() {
- @Override
- public int weigh(K key, V value) {
- return 1;
- }
- };
- }
-}