Example usage for com.google.common.cache CacheBuilder build

List of usage examples for com.google.common.cache CacheBuilder build

Introduction

In this page you can find the example usage for com.google.common.cache CacheBuilder build.

Prototype

public <K1 extends K, V1 extends V> Cache<K1, V1> build() 

Source Link

Document

Builds a cache which does not automatically load values when keys are requested.

Usage

From source file:com.tesora.dve.sql.schema.cache.SchemaCache.java

private Cache<SchemaCacheKey<?>, Object> buildCache(int size) {
    CacheBuilder<SchemaCacheKey<?>, Object> boo = CacheBuilder.newBuilder().removalListener(this).recordStats();
    if (size > -1)
        boo = boo.maximumSize(size);/*from   w w  w .  j av a  2s .co m*/
    return boo.build();
}

From source file:org.elasticsearch.script.ScriptService.java

@Inject
public ScriptService(Settings settings, Environment env, Set<ScriptEngineService> scriptEngines,
        ResourceWatcherService resourceWatcherService) {
    super(settings);

    int cacheMaxSize = componentSettings.getAsInt("cache.max_size", 500);
    TimeValue cacheExpire = componentSettings.getAsTime("cache.expire", null);
    logger.debug("using script cache with max_size [{}], expire [{}]", cacheMaxSize, cacheExpire);

    this.defaultLang = componentSettings.get("default_lang", "mvel");
    this.disableDynamic = componentSettings.getAsBoolean("disable_dynamic", true);

    CacheBuilder cacheBuilder = CacheBuilder.newBuilder();
    if (cacheMaxSize >= 0) {
        cacheBuilder.maximumSize(cacheMaxSize);
    }/*from   w  w  w  . j a  v  a  2  s .c o  m*/
    if (cacheExpire != null) {
        cacheBuilder.expireAfterAccess(cacheExpire.nanos(), TimeUnit.NANOSECONDS);
    }
    this.cache = cacheBuilder.build();

    ImmutableMap.Builder<String, ScriptEngineService> builder = ImmutableMap.builder();
    for (ScriptEngineService scriptEngine : scriptEngines) {
        for (String type : scriptEngine.types()) {
            builder.put(type, scriptEngine);
        }
    }
    this.scriptEngines = builder.build();

    // put some default optimized scripts
    staticCache.put("doc.score", new CompiledScript("native", new DocScoreNativeScriptFactory()));

    // add file watcher for static scripts
    scriptsDirectory = new File(env.configFile(), "scripts");
    FileWatcher fileWatcher = new FileWatcher(scriptsDirectory);
    fileWatcher.addListener(new ScriptChangesListener());

    if (componentSettings.getAsBoolean("auto_reload_enabled", true)) {
        // automatic reload is enabled - register scripts
        resourceWatcherService.add(fileWatcher);
    } else {
        // automatic reload is disable just load scripts once
        fileWatcher.init();
    }
}

From source file:org.elasticsearch.indices.cache.filter.terms.IndicesTermsFilterCache.java

@Inject
public IndicesTermsFilterCache(Settings settings, Client client) {
    super(settings);
    this.client = client;

    ByteSizeValue size = componentSettings.getAsBytesSize("size", new ByteSizeValue(10, ByteSizeUnit.MB));
    TimeValue expireAfterWrite = componentSettings.getAsTime("expire_after_write", null);
    TimeValue expireAfterAccess = componentSettings.getAsTime("expire_after_access", null);

    CacheBuilder<BytesRef, TermsFilterValue> builder = CacheBuilder.newBuilder().maximumWeight(size.bytes())
            .weigher(new TermsFilterValueWeigher());

    if (expireAfterAccess != null) {
        builder.expireAfterAccess(expireAfterAccess.millis(), TimeUnit.MILLISECONDS);
    }//from www .j av a  2 s  . c  om
    if (expireAfterWrite != null) {
        builder.expireAfterWrite(expireAfterWrite.millis(), TimeUnit.MILLISECONDS);
    }

    this.cache = builder.build();
}

From source file:org.geogit.di.caching.CacheFactory.java

protected synchronized void createCache() {
    if (cache != null) {
        return;/*from  www .j a  va  2s  .co m*/
    }
    if (!cacheIsEnabled()) {
        this.cache = NO_CACHE;
        return;
    }
    final int maxSize = getConfig("maxSize", 50 * 1000);
    final int concurrencyLevel = getConfig("concurrencyLevel", 0);
    if (concurrencyLevel == 0) {
        this.cache = new SimpleCache<ObjectId, RevObject>(maxSize);
        LOGGER.info("Cache '{}' configured with maxSize: {}", configKeywordPrefix, maxSize);
        return;
    }

    final int expireSeconds = getConfig("expireSeconds", 30);
    final int initialCapacity = getConfig("initialCapacity", 10 * 1000);
    CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder = cacheBuilder.maximumSize(maxSize);
    cacheBuilder.expireAfterAccess(expireSeconds, TimeUnit.SECONDS);
    cacheBuilder.initialCapacity(initialCapacity);
    cacheBuilder.concurrencyLevel(concurrencyLevel);

    try {
        this.cache = cacheBuilder.build();
    } catch (RuntimeException e) {
        LOGGER.error(
                "Error configuring cache '{}' with maxSize: {}, expireSeconds: {}, initialCapacity: {}, concurrencyLevel: {}",
                configKeywordPrefix, maxSize, expireSeconds, initialCapacity, concurrencyLevel, e);

        throw e;
    }

    LOGGER.debug(
            "Cache '{}' configured with maxSize: {}, expireSeconds: {}, initialCapacity: {}, concurrencyLevel: {}",
            configKeywordPrefix, maxSize, expireSeconds, initialCapacity, concurrencyLevel);

}

From source file:org.socraticgrid.workbench.service.KnowledgeModuleServiceProcessor.java

private KnowledgeModuleServiceProcessor() {
    try {//from www.  ja  va  2 s  .  co m
        String implName = ApplicationSettings.getInstance().getSetting("knowledge.module.service.impl");
        this.knowledgeModuleService = (KnowledgeModuleService) Class.forName(implName).newInstance();

        useReferenceDataCache = Boolean.parseBoolean(ApplicationSettings.getInstance()
                .getSetting("knowledge.module.service.cache.enabled", "false"));
        if (useReferenceDataCache) {
            String maxCacheSize = ApplicationSettings.getInstance()
                    .getSetting("knowledge.module.service.cache.maxsize");
            String cacheExpirationTime = ApplicationSettings.getInstance()
                    .getSetting("knowledge.module.service.cache.expiration");

            CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();

            if (maxCacheSize != null) {
                cacheBuilder.maximumSize(Long.parseLong(maxCacheSize));
            }
            if (cacheExpirationTime != null) {
                cacheBuilder.expireAfterWrite(Long.parseLong(maxCacheSize), TimeUnit.MINUTES);
            }

            this.referenceDataCache = cacheBuilder.build();
        }

    } catch (Exception ex) {
        throw new IllegalStateException(ex);
    }
}

From source file:com.bazaarvoice.dropwizard.caching.LocalCacheConfiguration.java

public Cache<String, CachedResponse> buildCache() {
    CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();

    if (!_expire.isPresent() && !_maximumSize.isPresent()) {
        cacheBuilder.maximumSize(0);//from   w ww .j av  a2 s  .co m
    } else {
        if (_expire.isPresent()) {
            Duration expire = _expire.get();
            cacheBuilder.expireAfterWrite(expire.getQuantity(), expire.getUnit());
        }

        if (_maximumSize.isPresent()) {
            cacheBuilder.weigher(CachedResponseWeigher.INSTANCE).maximumWeight(_maximumSize.get().toBytes());
        }
    }

    return cacheBuilder.build();
}

From source file:com.datatorrent.lib.db.cache.CacheStore.java

@Override
public void connect() throws IOException {
    open = true;/*from   w w w  . j  av a  2  s  . c o  m*/

    CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    cacheBuilder.maximumSize(maxCacheSize);
    if (entryExpiryStrategy == ExpiryType.EXPIRE_AFTER_ACCESS) {
        cacheBuilder.expireAfterAccess(entryExpiryDurationInMillis, TimeUnit.MILLISECONDS);
    } else if (entryExpiryStrategy == ExpiryType.EXPIRE_AFTER_WRITE) {
        cacheBuilder.expireAfterWrite(entryExpiryDurationInMillis, TimeUnit.MILLISECONDS);
    }
    cache = cacheBuilder.build();
    this.cleanupScheduler = Executors.newScheduledThreadPool(1);
    cleanupScheduler.scheduleAtFixedRate(new Runnable() {
        @Override
        public void run() {
            cache.cleanUp();
        }
    }, cacheCleanupIntervalInMillis, cacheCleanupIntervalInMillis, TimeUnit.MILLISECONDS);
}

From source file:org.apache.hadoop.hive.ql.io.orc.LocalCache.java

LocalCache(int numThreads, long cacheMemSize, boolean useSoftRef) {
    CacheBuilder<Path, TailAndFileData> builder = CacheBuilder.newBuilder()
            .initialCapacity(DEFAULT_CACHE_INITIAL_CAPACITY).concurrencyLevel(numThreads)
            .maximumWeight(cacheMemSize).weigher(new Weigher<Path, TailAndFileData>() {
                @Override/*  w ww.jav a2s .com*/
                public int weigh(Path key, TailAndFileData value) {
                    return value.getMemoryUsage();
                }
            });

    if (useSoftRef) {
        builder = builder.softValues();
    }
    cache = builder.build();
}

From source file:com.sri.ai.util.cache.DefaultCacheMap.java

private void initStorage() {
    CacheBuilder<Object, Object> cb = CacheBuilder.newBuilder();

    if (weakKeys) {
        cb.weakKeys();//from   w  w  w.ja v  a 2 s  .co m
    }
    // Note: a maximumSize of 
    // < 0 means no size restrictions
    // = 0 means no cache
    // > 0 means maximum size of cache
    if (maximumSize >= 0L) {
        cb.maximumSize(maximumSize);
    }
    if (AICUtilConfiguration.isRecordCacheStatistics()) {
        cb.recordStats();
    }

    storage = cb.build();
    delegate = storage.asMap();
}

From source file:org.alfresco.repo.cache.DefaultSimpleCache.java

/**
 * Construct a cache using the specified capacity and name.
 * /*from   w w  w  .ja  v  a 2  s  .  com*/
 * @param maxItems The cache capacity. 0 = use {@link #DEFAULT_CAPACITY}
 * @param useMaxItems Whether the maxItems value should be applied as a size-cap for the cache.
 * @param cacheName An arbitrary cache name.
 */
@SuppressWarnings("unchecked")
public DefaultSimpleCache(int maxItems, boolean useMaxItems, int ttlSecs, int maxIdleSecs, String cacheName) {
    if (maxItems == 0) {
        maxItems = DEFAULT_CAPACITY;
    } else if (maxItems < 0) {
        throw new IllegalArgumentException("maxItems may not be negative, but was " + maxItems);
    }
    this.maxItems = maxItems;
    this.useMaxItems = useMaxItems;
    this.ttlSecs = ttlSecs;
    this.maxIdleSecs = maxIdleSecs;
    setBeanName(cacheName);

    // The map will have a bounded size determined by the maxItems member variable.
    @SuppressWarnings("rawtypes")
    CacheBuilder builder = CacheBuilder.newBuilder();

    if (useMaxItems) {
        builder.maximumSize(maxItems);
    }
    if (ttlSecs > 0) {
        builder.expireAfterWrite(ttlSecs, TimeUnit.SECONDS);
    }
    if (maxIdleSecs > 0) {
        builder.expireAfterAccess(maxIdleSecs, TimeUnit.SECONDS);
    }
    builder.concurrencyLevel(32);

    cache = (Cache<K, AbstractMap.SimpleImmutableEntry<K, V>>) builder.build();
}