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

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

Introduction

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

Prototype

public CacheBuilder<K, V> expireAfterWrite(long duration, TimeUnit unit) 

Source Link

Document

Specifies that each entry should be automatically removed from the cache once a fixed duration has elapsed after the entry's creation, or the most recent replacement of its value.

Usage

From source file:no.digipost.cache.inmemory.CacheConfig.java

public static CacheConfig expireAfterWrite(final Duration expiryTime) {
    return new CacheConfig() {
        @Override/*from w  ww  .j  av a  2  s.c  o m*/
        public CacheBuilder<Object, Object> configure(CacheBuilder<Object, Object> builder) {
            LOG.info("Expire values {} ms after they are written to the cache", expiryTime.getMillis());
            return builder.expireAfterWrite(expiryTime.getMillis(), TimeUnit.MILLISECONDS);
        }
    };
}

From source file:org.rapidoid.plugins.cache.guava.GuavaCache.java

@SuppressWarnings("unchecked")
private static <K, V> CacheBuilder<K, V> builder(long timeToLiveMs, boolean resetTimeToLiveWhenAccessed) {
    CacheBuilder<K, V> builder = (CacheBuilder<K, V>) CacheBuilder.newBuilder();

    if (resetTimeToLiveWhenAccessed) {
        return builder.expireAfterAccess(timeToLiveMs, TimeUnit.MILLISECONDS);
    } else {/*  w  w w .  ja  v a2  s.  co  m*/
        return builder.expireAfterWrite(timeToLiveMs, TimeUnit.MILLISECONDS);
    }
}

From source file:com.googlecode.webutilities.filters.ResponseCacheFilter.java

private static Cache<String, CacheObject> buildCache(/*int reloadAfterAccess, */int reloadAfterWrite) {
    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder().softValues();
    // if(reloadAfterAccess > 0)
    //     builder.expireAfterAccess(reloadAfterAccess, TimeUnit.SECONDS);
    if (reloadAfterWrite > 0)
        builder.expireAfterWrite(reloadAfterWrite, TimeUnit.SECONDS);
    return builder.build();
}

From source file:com.vityuk.ginger.provider.DefaultLocalizationProvider.java

private static LoadingCache<Locale, PropertyResolver> createPropertyResolverCache(Builder builder,
        CacheLoader<Locale, PropertyResolver> cacheLoader) {
    CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    if (builder.maxCacheTimeInSec >= 0) {
        cacheBuilder.expireAfterWrite(builder.maxCacheTimeInSec, TimeUnit.SECONDS);
    }/*from w  w  w.  ja  va  2s . c om*/
    return cacheBuilder.build(cacheLoader);
}

From source file:com.google.gitiles.ConfigUtil.java

/**
 * Get a {@link CacheBuilder} from a config.
 *
 * @param config JGit config object.//  w ww  .j av  a 2 s  . c  o  m
 * @param name name of the cache subsection under the "cache" section.
 * @return a new cache builder.
 */
public static CacheBuilder<Object, Object> getCacheBuilder(Config config, String name) {
    CacheBuilder<Object, Object> b = CacheBuilder.newBuilder();
    try {
        if (config.getString("cache", name, "maximumWeight") != null) {
            b.maximumWeight(config.getLong("cache", name, "maximumWeight", 20 << 20));
        }
        if (config.getString("cache", name, "maximumSize") != null) {
            b.maximumSize(config.getLong("cache", name, "maximumSize", 16384));
        }
        Duration expireAfterWrite = getDuration(config, "cache", name, "expireAfterWrite", null);
        if (expireAfterWrite != null) {
            b.expireAfterWrite(expireAfterWrite.getMillis(), TimeUnit.MILLISECONDS);
        }
        Duration expireAfterAccess = getDuration(config, "cache", name, "expireAfterAccess", null);
        if (expireAfterAccess != null) {
            b.expireAfterAccess(expireAfterAccess.getMillis(), TimeUnit.MILLISECONDS);
        }
        // Add other methods as needed.
    } catch (IllegalArgumentException e) {
        throw new IllegalArgumentException("Error getting CacheBuilder for " + name, e);
    } catch (IllegalStateException e) {
        throw new IllegalStateException("Error getting CacheBuilder for " + name, e);
    }
    return b;
}

From source file:com.davidbracewell.cache.impl.GuavaCacheUtils.java

/**
 * Converts a CacheSpec into a CacheBuilder
 *
 * @param specification The specification
 * @param <K>           The key type
 * @param <V>           The value type
 * @return The CacheBuilder/*w  w w  .  j  a  va 2s  .com*/
 */
public static <K, V> CacheBuilder<K, V> cacheBuilderFromSpec(CacheSpec<K, V> specification) {
    CacheBuilder cacheBuilder = CacheBuilder.newBuilder();
    if (specification.getMaxSize() > 0) {
        cacheBuilder.maximumSize(specification.getMaxSize());
    }
    if (specification.getConcurrencyLevel() > 0) {
        cacheBuilder.concurrencyLevel(specification.getMaxSize());
    }
    if (specification.getInitialCapacity() > 0) {
        cacheBuilder.initialCapacity(specification.getInitialCapacity());
    }
    if (specification.getExpiresAfterAccess() > 0) {
        cacheBuilder.expireAfterAccess(specification.getExpiresAfterAccess(), TimeUnit.MILLISECONDS);
    }
    if (specification.getExpiresAfterWrite() > 0) {
        cacheBuilder.expireAfterWrite(specification.getExpiresAfterWrite(), TimeUnit.MILLISECONDS);
    }
    if (specification.isWeakKeys()) {
        cacheBuilder.weakKeys();
    }
    if (specification.isWeakValues()) {
        cacheBuilder.weakValues();
    }
    return Cast.as(cacheBuilder);
}

From source file:io.prestosql.plugin.hive.metastore.CachingHiveMetastore.java

private static CacheBuilder<Object, Object> newCacheBuilder(OptionalLong expiresAfterWriteMillis,
        OptionalLong refreshMillis, long maximumSize) {
    CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
    if (expiresAfterWriteMillis.isPresent()) {
        cacheBuilder = cacheBuilder.expireAfterWrite(expiresAfterWriteMillis.getAsLong(), MILLISECONDS);
    }/*from  w  w  w .ja  v a2s.  co  m*/
    if (refreshMillis.isPresent() && (!expiresAfterWriteMillis.isPresent()
            || expiresAfterWriteMillis.getAsLong() > refreshMillis.getAsLong())) {
        cacheBuilder = cacheBuilder.refreshAfterWrite(refreshMillis.getAsLong(), MILLISECONDS);
    }
    cacheBuilder = cacheBuilder.maximumSize(maximumSize);
    return cacheBuilder;
}

From source file:org.nuxeo.ecm.core.cache.InMemoryCacheImpl.java

public InMemoryCacheImpl(CacheDescriptor desc) {
    super(desc);/*  w  w  w .j  a  va  2 s  .c o  m*/
    CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder();
    builder = builder.expireAfterWrite(desc.ttl, TimeUnit.MINUTES);
    if (desc.options.containsKey("concurrencyLevel")) {
        builder = builder.concurrencyLevel(Integer.valueOf(desc.options.get("concurrencyLevel")).intValue());
    }
    if (desc.options.containsKey("maxSize")) {
        builder = builder.maximumSize(Integer.valueOf(desc.options.get("maxSize")).intValue());
    }
    cache = builder.build();
}

From source file:org.cache2k.benchmark.thirdparty.GuavaCacheFactory.java

@Override
public BenchmarkCache<Integer, Integer> create(int _maxElements) {
    MyBenchmarkCacheAdapter c = new MyBenchmarkCacheAdapter();
    c.size = _maxElements;/*w w w. j  a  v a 2  s .  c  o  m*/
    CacheBuilder cb = CacheBuilder.newBuilder().maximumSize(_maxElements);
    if (withExpiry) {
        cb.expireAfterWrite(5 * 60, TimeUnit.SECONDS);
    }
    c.cache = cb.build();
    return c;
}

From source file:com.hazelcast.client.GuavaNearCacheImpl.java

public GuavaNearCacheImpl(NearCacheConfig nc, final MapClientProxy<K, V> map) {
    this.map = map;
    CacheBuilder cacheBuilder = CacheBuilder.newBuilder().maximumSize(nc.getMaxSize());
    if (nc.getTimeToLiveSeconds() > 0)
        cacheBuilder.expireAfterWrite(nc.getTimeToLiveSeconds(), TimeUnit.SECONDS);
    if (nc.getMaxIdleSeconds() > 0)
        cacheBuilder.expireAfterAccess(nc.getMaxIdleSeconds(), TimeUnit.SECONDS);
    cache = cacheBuilder.build(new CacheLoader() {
        @Override/*from   w w  w  .j  a v  a2  s . c  o  m*/
        public Object load(Object o) throws Exception {
            try {
                return map.get0(o);
            } catch (Exception e) {
                throw new ExecutionException(e);
            }
        }
    });
}