List of usage examples for com.google.common.cache CacheBuilder expireAfterAccess
public CacheBuilder<K, V> expireAfterAccess(long duration, TimeUnit unit)
From source file:org.apache.nifi.processors.automna.Parser.java
@OnScheduled public void onScheduled(final ProcessContext context) { final ComponentLog logger = getLogger(); if (CACHE_SIZE > 0) { CacheBuilder cacheBuilder = CacheBuilder.newBuilder().maximumSize(CACHE_SIZE); if (CACHE_TTL_AFTER_LAST_ACCESS > 0) { cacheBuilder = cacheBuilder.expireAfterAccess(CACHE_TTL_AFTER_LAST_ACCESS, TimeUnit.SECONDS); }/* w ww .java2 s . c o m*/ cache = cacheBuilder.build(new CacheLoader<String, Templates>() { public Templates load(String path) throws TransformerConfigurationException { return newTemplates(path); } }); } else { cache = null; logger.warn("Stylesheet cache disabled because cache size is set to 0"); } }
From source file:org.eclipse.xtext.xbase.ide.types.ClasspathScanner.java
protected Cache<Pair<URI, Collection<String>>, Iterable<ITypeDescriptor>> createUriCache() { CacheBuilder<Object, Object> _newBuilder = CacheBuilder.newBuilder(); CacheBuilder<Object, Object> _initialCapacity = _newBuilder.initialCapacity(64); CacheBuilder<Object, Object> _concurrencyLevel = _initialCapacity.concurrencyLevel(2); CacheBuilder<Object, Object> _maximumSize = _concurrencyLevel.maximumSize(256); CacheBuilder<Object, Object> _expireAfterAccess = _maximumSize.expireAfterAccess(30, TimeUnit.MINUTES); return _expireAfterAccess.<Pair<URI, Collection<String>>, Iterable<ITypeDescriptor>>build(); }
From source file:org.geogit.di.caching.CacheFactory.java
protected synchronized void createCache() { if (cache != null) { return;//from www. j ava 2 s .c om } 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.apache.apex.malhar.lib.db.cache.CacheStore.java
@Override public void connect() throws IOException { open = true;/*from ww w.j a va2 s. c om*/ if (numInitCacheLines > maxCacheSize) { logger.warn("numInitCacheLines = {} is greater than maxCacheSize = {}, maxCacheSize was set to {}", numInitCacheLines, maxCacheSize, numInitCacheLines); maxCacheSize = numInitCacheLines; } 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(); if (entryExpiryStrategy == ExpiryType.NO_EVICTION) { return; } this.cleanupScheduler = Executors.newScheduledThreadPool(1); cleanupScheduler.scheduleAtFixedRate(new Runnable() { @Override public void run() { cache.cleanUp(); } }, cacheCleanupIntervalInMillis, cacheCleanupIntervalInMillis, TimeUnit.MILLISECONDS); }
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); }//ww w . j a v a2s. 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.eclipse.osee.cache.admin.internal.CacheFactory.java
private CacheBuilder<Object, Object> createCacheBuilder(CacheConfiguration config) { CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder(); if (config.hasInitialCapacity()) { builder = builder.initialCapacity(config.getInitialCapacity()); }// w w w .ja v a 2s. co m if (config.hasMaximumSize()) { builder = builder.maximumSize(config.getMaximumSize()); } if (config.isExpireAfterAccess()) { Pair<Long, TimeUnit> data = config.getExpireAfterAccess(); builder = builder.expireAfterAccess(data.getFirst(), data.getSecond()); } if (config.isExpireAfterWrite()) { Pair<Long, TimeUnit> data = config.getExpireAfterWrite(); builder = builder.expireAfterWrite(data.getFirst(), data.getSecond()); } if (config.isRefreshAfterWrite()) { Pair<Long, TimeUnit> data = config.getRefreshAfterWrite(); builder = builder.refreshAfterWrite(data.getFirst(), data.getSecond()); } return builder; }
From source file:org.alfresco.repo.cache.DefaultSimpleCache.java
/** * Construct a cache using the specified capacity and name. * /*from w w w . ja v a2 s.c o m*/ * @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(); }
From source file:com.github.pagehelper.cache.GuavaCache.java
public GuavaCache(Properties properties, String prefix) { CacheBuilder cacheBuilder = CacheBuilder.newBuilder(); String maximumSize = properties.getProperty(prefix + ".maximumSize"); if (StringUtil.isNotEmpty(maximumSize)) { cacheBuilder.maximumSize(Long.parseLong(maximumSize)); } else {//from w w w . ja v a2 s .c om cacheBuilder.maximumSize(1000); } String expireAfterAccess = properties.getProperty(prefix + ".expireAfterAccess"); if (StringUtil.isNotEmpty(expireAfterAccess)) { cacheBuilder.expireAfterAccess(Long.parseLong(expireAfterAccess), TimeUnit.MILLISECONDS); } String expireAfterWrite = properties.getProperty(prefix + ".expireAfterWrite"); if (StringUtil.isNotEmpty(expireAfterWrite)) { cacheBuilder.expireAfterWrite(Long.parseLong(expireAfterWrite), TimeUnit.MILLISECONDS); } String initialCapacity = properties.getProperty(prefix + ".initialCapacity"); if (StringUtil.isNotEmpty(initialCapacity)) { cacheBuilder.initialCapacity(Integer.parseInt(initialCapacity)); } CACHE = cacheBuilder.build(); }
From source file:com.sinotopia.mybatis.pagehelper.cache.GuavaCache.java
public GuavaCache(Properties properties, String prefix) { CacheBuilder cacheBuilder = CacheBuilder.newBuilder(); String maximumSize = properties.getProperty(prefix + ".maximumSize"); if (StringUtil.isNotEmpty(maximumSize)) { cacheBuilder.maximumSize(Long.parseLong(maximumSize)); } else {/*from w ww . j a v a 2 s. c om*/ cacheBuilder.maximumSize(1000); } String expireAfterAccess = properties.getProperty(prefix + ".expireAfterAccess"); if (StringUtil.isNotEmpty(expireAfterAccess)) { cacheBuilder.expireAfterAccess(Long.parseLong(expireAfterAccess), TimeUnit.MILLISECONDS); } String expireAfterWrite = properties.getProperty(prefix + ".expireAfterWrite"); if (StringUtil.isNotEmpty(expireAfterWrite)) { cacheBuilder.expireAfterWrite(Long.parseLong(expireAfterWrite), TimeUnit.MILLISECONDS); } String initialCapacity = properties.getProperty(prefix + ".initialCapacity"); if (StringUtil.isNotEmpty(initialCapacity)) { cacheBuilder.initialCapacity(Integer.parseInt(initialCapacity)); } CACHE = cacheBuilder.build(); }
From source file:org.elasticsearch.indices.cache.filter.IndicesFilterCache.java
private void buildCache() { CacheBuilder<WeightedFilterCache.FilterCacheKey, DocIdSet> cacheBuilder = CacheBuilder.newBuilder() .removalListener(this).maximumWeight(sizeInBytes) .weigher(new WeightedFilterCache.FilterCacheValueWeigher()); // defaults to 4, but this is a busy map for all indices, increase it a bit cacheBuilder.concurrencyLevel(16);// w ww. ja v a 2 s. c om if (expire != null) { cacheBuilder.expireAfterAccess(expire.millis(), TimeUnit.MILLISECONDS); } cache = cacheBuilder.build(); }