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 AuthCacheMBean
public void invalidate(K k)
k
- key to invalidatepublic void setValidity(int validityPeriod)
setValidity
in interface AuthCacheMBean
validityPeriod
- in millisecondspublic int getValidity()
getValidity
in interface AuthCacheMBean
public void setUpdateInterval(int updateInterval)
setUpdateInterval
in interface AuthCacheMBean
updateInterval
- in millisecondspublic int getUpdateInterval()
getUpdateInterval
in interface AuthCacheMBean
public void setMaxEntries(int maxEntries)
setMaxEntries
in interface AuthCacheMBean
maxEntries
- public int getMaxEntries()
getMaxEntries
in interface AuthCacheMBean
protected 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 cache
Copyright © 2009- The Apache Software Foundation