public class AuthCache<K,V> extends java.lang.Object implements AuthCacheMBean
| Modifier and Type | Field and Description |
|---|---|
protected com.github.benmanes.caffeine.cache.LoadingCache<K,V> |
cache
Underlying cache.
|
| Modifier | Constructor and Description |
|---|---|
protected |
AuthCache(java.lang.String name,
java.util.function.IntConsumer setValidityDelegate,
java.util.function.IntSupplier getValidityDelegate,
java.util.function.IntConsumer setUpdateIntervalDelegate,
java.util.function.IntSupplier getUpdateIntervalDelegate,
java.util.function.IntConsumer setMaxEntriesDelegate,
java.util.function.IntSupplier getMaxEntriesDelegate,
java.util.function.Function<K,V> loadFunction,
java.util.function.BooleanSupplier cacheEnabledDelegate) |
| Modifier and Type | Method and Description |
|---|---|
V |
get(K k)
Retrieve a value from the cache.
|
int |
getMaxEntries() |
protected java.lang.String |
getObjectName() |
int |
getUpdateInterval() |
int |
getValidity() |
protected void |
init()
Do setup for the cache and MBean.
|
protected com.github.benmanes.caffeine.cache.LoadingCache<K,V> |
initCache(com.github.benmanes.caffeine.cache.LoadingCache<K,V> existing)
(Re-)initialise the underlying cache.
|
void |
invalidate()
Invalidate the entire cache.
|
void |
invalidate(K k)
Invalidate a key
|
void |
setMaxEntries(int maxEntries)
Set maximum number of entries in the cache.
|
void |
setUpdateInterval(int updateInterval)
Time in milliseconds after which an entry in the cache should be refreshed (it's load function called again)
|
void |
setValidity(int validityPeriod)
Time in milliseconds that a value in the cache will expire after.
|
protected void |
unregisterMBean() |
protected AuthCache(java.lang.String name,
java.util.function.IntConsumer setValidityDelegate,
java.util.function.IntSupplier getValidityDelegate,
java.util.function.IntConsumer setUpdateIntervalDelegate,
java.util.function.IntSupplier getUpdateIntervalDelegate,
java.util.function.IntConsumer setMaxEntriesDelegate,
java.util.function.IntSupplier getMaxEntriesDelegate,
java.util.function.Function<K,V> loadFunction,
java.util.function.BooleanSupplier cacheEnabledDelegate)
name - Used for MBeansetValidityDelegate - Used to set cache validity period. See Policy#expireAfterWrite()getValidityDelegate - Getter for validity periodsetUpdateIntervalDelegate - Used to set cache update interval. See Policy#refreshAfterWrite()getUpdateIntervalDelegate - Getter for update intervalsetMaxEntriesDelegate - Used to set max # entries in cache. See Policy.Eviction.setMaximum(long)getMaxEntriesDelegate - Getter for max entries.loadFunction - Function to load the cache. Called on get(Object)cacheEnabledDelegate - Used to determine if cache is enabled.protected void init()
protected void unregisterMBean()
protected java.lang.String getObjectName()
public V get(K k)
LoadingCache.get(Object) which will
"load" the value if it's not present, thus populating the key.k - K if cached or loaded.
See LoadingCache.get(Object) for possible exceptions.public void invalidate()
invalidate in interface AuthCacheMBeanpublic void invalidate(K k)
k - key to invalidatepublic void setValidity(int validityPeriod)
setValidity in interface AuthCacheMBeanvalidityPeriod - in millisecondspublic int getValidity()
getValidity in interface AuthCacheMBeanpublic void setUpdateInterval(int updateInterval)
setUpdateInterval in interface AuthCacheMBeanupdateInterval - in millisecondspublic int getUpdateInterval()
getUpdateInterval in interface AuthCacheMBeanpublic void setMaxEntries(int maxEntries)
setMaxEntries in interface AuthCacheMBeanmaxEntries - public int getMaxEntries()
getMaxEntries in interface AuthCacheMBeanprotected com.github.benmanes.caffeine.cache.LoadingCache<K,V> initCache(com.github.benmanes.caffeine.cache.LoadingCache<K,V> existing)
LoadingCache will be initiated based on the provided loadFunction.
Note: If you need some unhandled cache setting to be set you should extend AuthCache and override this method.existing - If not null will only update cache update validity, max entries, and update interval.LoadingCache if existing was null, otherwise the existing cacheCopyright © 2009-2022 The Apache Software Foundation