List of usage examples for com.google.common.cache CacheBuilder maximumSize
long maximumSize
To view the source code for com.google.common.cache CacheBuilder maximumSize.
Click Source Link
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//from w w w . ja va 2 s . c o m */ 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:no.digipost.cache.inmemory.CacheConfig.java
public static CacheConfig maximumSize(final long size) { return new CacheConfig() { @Override//from w w w. java 2 s . c om public CacheBuilder<Object, Object> configure(CacheBuilder<Object, Object> builder) { LOG.info("Maximum size = {}", size); return builder.maximumSize(size); } }; }
From source file:com.google.gitiles.ConfigUtil.java
/** * Get a {@link CacheBuilder} from a config. * * @param config JGit config object.//w ww . jav a 2 s . co 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.vsct.dt.hesperides.util.HesperidesCacheBuilder.java
/** * Create cache with easy setup.//from w w w .java 2 s . c om * * @param config setup * @param weigher Guava weighter * * @return cache */ public static CacheBuilder<Object, Object> newBuilder(final HesperidesCacheParameter config, final Weigher<? extends Object, ? extends Object> weigher) { final CacheBuilder<Object, Object> cache = CacheBuilder.newBuilder(); if (config != null) { final int maxSize = config.getMaxSize(); final int weight = config.getWeight(); final String expire = config.getItemExpireAfter(); if (maxSize != HesperidesCacheParameter.NOT_SET) { cache.maximumSize(maxSize); } if (weight != HesperidesCacheParameter.NOT_SET) { if (weigher == null) { throw new IllegalArgumentException("Parameter 'weight' is not supported for this cache."); } cache.maximumWeight(weight); } if (expire != null) { final Pattern p = Pattern.compile("^([0-9]+)(m|s|h|d)"); final Matcher m = p.matcher(expire); if (m.find()) { final int time = Integer.valueOf(m.group(1)); TimeUnit unit = TimeUnit.SECONDS; switch (m.group(2)) { case "m": unit = TimeUnit.MINUTES; break; case "h": unit = TimeUnit.HOURS; break; case "d": unit = TimeUnit.DAYS; break; default: // Nothing } cache.expireAfterWrite(time, unit); cache.expireAfterAccess(time, unit); } else { throw new IllegalArgumentException( "Parameter 'itemExpireAfter' is not valid. Valid usage is [0-9]+(m|h|d|s). (Where 'm' is minutes, 'h' is hours, 'd' is days, 's' seconds."); } } } return cache; }
From source file:org.opendaylight.infrautils.caches.guava.internal.GuavaCacheProvider.java
private static <K, V> CacheBuilder<K, V> newCacheBuilder(BaseCacheConfig cacheConfig, CachePolicy initialPolicy) {// w w w . j a va2 s . c om Objects.requireNonNull(cacheConfig, "cacheConfig"); @SuppressWarnings("unchecked") // TODO support from(String) with CacheBuilderSpec for configuration from CachePolicy's extensions CacheBuilder<K, V> builder = (CacheBuilder<K, V>) CacheBuilder.newBuilder(); // builder.concurrencyLevel(concurrencyLevel) <= this is a Guava specific setting, TBD String CacheBuilderSpec if (initialPolicy.statsEnabled()) { builder.recordStats(); } long maxEntries = initialPolicy.maxEntries(); if (maxEntries != CachePolicy.UNLIMITED_ENTRIES) { builder.maximumSize(maxEntries); } // TODO @see CachePolicy // * TODO builder.concurrencyLevel(initialPolicy.?.concurrencyLevel); // * TODO builder.initialCapacity(initialPolicy.?.initialCapacity) return builder; }
From source file:com.sri.ai.expresso.core.DefaultSymbol.java
private static Cache<Object, Symbol> newSymbolTable() { CacheBuilder<Object, Object> cb = CacheBuilder.newBuilder(); long maximumSize = ExpressoConfiguration.getGlobalSymbolTableMaximumSize(); // 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); }/*from w w w . j a v a2 s . c o m*/ if (AICUtilConfiguration.isRecordCacheStatistics()) { cb.recordStats(); } Cache<Object, Symbol> result = cb.build(); return result; }
From source file:com.streamsets.pipeline.lib.parser.net.netflow.v9.NetflowV9Decoder.java
public static Cache<FlowSetTemplateCacheKey, FlowSetTemplate> buildTemplateCache(int maxTemplateCacheSize, int templateCacheTimeoutMs) { CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder(); if (maxTemplateCacheSize > 0) { cacheBuilder = cacheBuilder.maximumSize(maxTemplateCacheSize); }// w w w .j a va 2s .c o m if (templateCacheTimeoutMs > 0) { cacheBuilder = cacheBuilder.expireAfterAccess(templateCacheTimeoutMs, TimeUnit.MILLISECONDS); } if (LOG.isTraceEnabled()) { cacheBuilder = cacheBuilder.removalListener( (notification) -> LOG.trace("Removing flow set template entry {} for cause: {} ", notification.getKey(), notification.getCause())); } return cacheBuilder.build(); }
From source file:com.sri.ai.expresso.core.DefaultSyntaxLeaf.java
private static Cache<Object, SyntaxLeaf> newSymbolTable() { CacheBuilder<Object, Object> cb = CacheBuilder.newBuilder(); long maximumSize = ExpressoConfiguration.getGlobalSymbolTableMaximumSize(); // 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); }// ww w. j a v a2 s . c o m if (AICUtilConfiguration.isRecordCacheStatistics()) { cb.recordStats(); } Cache<Object, SyntaxLeaf> result = cb.build(); return result; }
From source file:com.github.benmanes.caffeine.cache.testing.GuavaLocalCache.java
/** Returns a Guava-backed cache. */ @SuppressWarnings("CheckReturnValue") public static <K, V> Cache<K, V> newGuavaCache(CacheContext context) { checkState(!context.isAsync(), "Guava caches are synchronous only"); CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder(); if (context.initialCapacity != InitialCapacity.DEFAULT) { builder.initialCapacity(context.initialCapacity.size()); }//from w w w . jav a 2 s.c o m if (context.isRecordingStats()) { builder.recordStats(); } if (context.maximumSize != MaximumSize.DISABLED) { if (context.weigher == CacheWeigher.DEFAULT) { builder.maximumSize(context.maximumSize.max()); } else { builder.weigher(new GuavaWeigher<Object, Object>(context.weigher)); builder.maximumWeight(context.maximumWeight()); } } if (context.afterAccess != Expire.DISABLED) { builder.expireAfterAccess(context.afterAccess.timeNanos(), TimeUnit.NANOSECONDS); } if (context.afterWrite != Expire.DISABLED) { builder.expireAfterWrite(context.afterWrite.timeNanos(), TimeUnit.NANOSECONDS); } if (context.refresh != Expire.DISABLED) { builder.refreshAfterWrite(context.refresh.timeNanos(), TimeUnit.NANOSECONDS); } if (context.expires() || context.refreshes()) { builder.ticker(context.ticker()); } if (context.keyStrength == ReferenceType.WEAK) { builder.weakKeys(); } else if (context.keyStrength == ReferenceType.SOFT) { throw new IllegalStateException(); } if (context.valueStrength == ReferenceType.WEAK) { builder.weakValues(); } else if (context.valueStrength == ReferenceType.SOFT) { builder.softValues(); } if (context.removalListenerType != Listener.DEFAULT) { boolean translateZeroExpire = (context.afterAccess == Expire.IMMEDIATELY) || (context.afterWrite == Expire.IMMEDIATELY); builder.removalListener(new GuavaRemovalListener<>(translateZeroExpire, context.removalListener)); } Ticker ticker = (context.ticker == null) ? Ticker.systemTicker() : context.ticker; if (context.loader == null) { context.cache = new GuavaCache<>(builder.<Integer, Integer>build(), ticker); } else if (context.loader().isBulk()) { context.cache = new GuavaLoadingCache<>( builder.build(new BulkLoader<Integer, Integer>(context.loader())), ticker); } else { context.cache = new GuavaLoadingCache<>( builder.build(new SingleLoader<Integer, Integer>(context.loader())), ticker); } @SuppressWarnings("unchecked") Cache<K, V> castedCache = (Cache<K, V>) context.cache; return castedCache; }
From source file:com.github.benmanes.caffeine.cache.testing.GuavaCacheFromContext.java
/** Returns a Guava-backed cache. */ @SuppressWarnings("CheckReturnValue") public static <K, V> Cache<K, V> newGuavaCache(CacheContext context) { checkState(!context.isAsync(), "Guava caches are synchronous only"); CacheBuilder<Object, Object> builder = CacheBuilder.newBuilder(); context.guava = builder;// w w w . j ava2s.c o m builder.concurrencyLevel(1); if (context.initialCapacity != InitialCapacity.DEFAULT) { builder.initialCapacity(context.initialCapacity.size()); } if (context.isRecordingStats()) { builder.recordStats(); } if (context.maximumSize != Maximum.DISABLED) { if (context.weigher == CacheWeigher.DEFAULT) { builder.maximumSize(context.maximumSize.max()); } else { builder.weigher(new GuavaWeigher<Object, Object>(context.weigher)); builder.maximumWeight(context.maximumWeight()); } } if (context.afterAccess != Expire.DISABLED) { builder.expireAfterAccess(context.afterAccess.timeNanos(), TimeUnit.NANOSECONDS); } if (context.afterWrite != Expire.DISABLED) { builder.expireAfterWrite(context.afterWrite.timeNanos(), TimeUnit.NANOSECONDS); } if (context.refresh != Expire.DISABLED) { builder.refreshAfterWrite(context.refresh.timeNanos(), TimeUnit.NANOSECONDS); } if (context.expires() || context.refreshes()) { builder.ticker(context.ticker()); } if (context.keyStrength == ReferenceType.WEAK) { builder.weakKeys(); } else if (context.keyStrength == ReferenceType.SOFT) { throw new IllegalStateException(); } if (context.valueStrength == ReferenceType.WEAK) { builder.weakValues(); } else if (context.valueStrength == ReferenceType.SOFT) { builder.softValues(); } if (context.removalListenerType != Listener.DEFAULT) { boolean translateZeroExpire = (context.afterAccess == Expire.IMMEDIATELY) || (context.afterWrite == Expire.IMMEDIATELY); builder.removalListener(new GuavaRemovalListener<>(translateZeroExpire, context.removalListener)); } Ticker ticker = (context.ticker == null) ? Ticker.systemTicker() : context.ticker; if (context.loader == null) { context.cache = new GuavaCache<>(builder.<Integer, Integer>build(), ticker, context.isRecordingStats()); } else if (context.loader().isBulk()) { context.cache = new GuavaLoadingCache<>( builder.build(new BulkLoader<Integer, Integer>(context.loader())), ticker, context.isRecordingStats()); } else { context.cache = new GuavaLoadingCache<>( builder.build(new SingleLoader<Integer, Integer>(context.loader())), ticker, context.isRecordingStats()); } @SuppressWarnings("unchecked") Cache<K, V> castedCache = (Cache<K, V>) context.cache; return castedCache; }