|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.atlassian.confluence.cache.CacheManagerSupport com.atlassian.confluence.cache.hazelcast.AbstractHazelcastCacheManager<C,R>
public abstract class AbstractHazelcastCacheManager<C extends ManagedLockingCache,R extends com.atlassian.cache.CachedReference>
An abstract base class for CacheManager
implementations that use Hazelcast. Concrete
implementations need only implement methods to construct actual Cache
and CachedReference
objects.
Constructor Summary | |
---|---|
AbstractHazelcastCacheManager(java.lang.Iterable<java.lang.String> nonFlushableCaches,
CacheSettingsManager settingsManager,
com.atlassian.util.concurrent.Supplier<com.hazelcast.core.HazelcastInstance> instanceSupplier)
|
Method Summary | |
---|---|
protected void |
assertCacheSettingsAreCompatible(java.lang.String cacheName,
com.atlassian.cache.CacheSettings cacheSettings)
Check that the given cache settings are compatible with this cache manager. |
com.hazelcast.config.MapConfig |
configureHazelcastMap(java.lang.String cacheName,
java.lang.String mapName,
com.atlassian.cache.CacheSettings settings)
Configures hazelcast map config accordingly to given cache settings |
protected abstract C |
createCache(java.lang.String cacheName,
com.atlassian.cache.CacheLoader cacheLoader,
com.atlassian.cache.CacheSettings settings,
com.hazelcast.map.MapContainer mapContainer,
com.hazelcast.core.IMap hazelcastMap)
|
protected abstract R |
createCachedReference(java.lang.String cacheName,
com.atlassian.cache.Supplier supplier,
com.atlassian.cache.CacheSettings required,
com.hazelcast.core.IMap hazelcastMap)
|
void |
flushCaches()
|
protected java.util.Map<java.lang.String,C> |
getAllCaches()
|
protected java.util.Map<java.lang.String,C> |
getAllCaches(java.lang.String mapNamePrefix)
|
C |
getCache(java.lang.String cacheName,
com.atlassian.cache.CacheLoader loader,
com.atlassian.cache.CacheSettings required)
|
protected java.util.concurrent.locks.Lock |
getCacheCreationLock(java.lang.String cacheName)
Return the Lock to be acquired when creating a cache. |
R |
getCachedReference(java.lang.String cacheName,
com.atlassian.cache.Supplier supplier,
com.atlassian.cache.CacheSettings required)
|
java.util.Collection<com.atlassian.cache.Cache<?,?>> |
getCaches()
|
com.hazelcast.core.IMap |
getHazelcastMapForCache(java.lang.String cacheName)
|
com.hazelcast.core.IMap |
getHazelcastMapForCachedReference(java.lang.String cacheName)
|
java.lang.String |
getHazelcastMapNameForCache(java.lang.String cacheName)
|
java.lang.String |
getHazelcastMapNameForCachedReference(java.lang.String cacheName)
|
C |
getManagedCache(java.lang.String cacheName)
|
java.util.Collection<com.atlassian.cache.ManagedCache> |
getManagedCaches()
|
protected com.hazelcast.map.MapContainer |
getMapContainerForMap(java.lang.String mapName)
Retrieves MapContainer to which is bind ot given map Using map container is needed for runtime cache settings change because update mapconfig from actual hazelcast is not used after instance has been start. |
protected com.hazelcast.core.HazelcastInstance |
hazelcast()
|
protected boolean |
isFlushable(java.lang.String cacheName)
|
protected C |
lockAndCreateCache(java.lang.String cacheName,
com.atlassian.cache.CacheLoader<?,?> loader,
com.atlassian.cache.CacheSettings required)
|
protected R |
lockAndCreateCachedReference(java.lang.String cacheName,
com.atlassian.cache.Supplier<R> supplier,
com.atlassian.cache.CacheSettings required)
|
Methods inherited from class com.atlassian.confluence.cache.CacheManagerSupport |
---|
buildMergedCacheSettings, getCache, getCache, getCache, getCache, getCachedReference, getCachedReference, getCachedReference, isLocalCache, isReplicatedCache, toName |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AbstractHazelcastCacheManager(java.lang.Iterable<java.lang.String> nonFlushableCaches, CacheSettingsManager settingsManager, com.atlassian.util.concurrent.Supplier<com.hazelcast.core.HazelcastInstance> instanceSupplier)
Method Detail |
---|
public C getCache(java.lang.String cacheName, com.atlassian.cache.CacheLoader loader, com.atlassian.cache.CacheSettings required)
getCache
in interface com.atlassian.cache.CacheFactory
getCache
in class CacheManagerSupport
public R getCachedReference(java.lang.String cacheName, com.atlassian.cache.Supplier supplier, com.atlassian.cache.CacheSettings required)
getCachedReference
in interface com.atlassian.cache.CacheFactory
getCachedReference
in class CacheManagerSupport
protected java.util.Map<java.lang.String,C> getAllCaches()
protected java.util.Map<java.lang.String,C> getAllCaches(java.lang.String mapNamePrefix)
protected boolean isFlushable(java.lang.String cacheName)
public void flushCaches()
flushCaches
in interface com.atlassian.cache.CacheManager
protected java.util.concurrent.locks.Lock getCacheCreationLock(java.lang.String cacheName)
Lock
to be acquired when creating a cache.
cacheName
- the name of the cache to be created
protected com.hazelcast.map.MapContainer getMapContainerForMap(java.lang.String mapName)
public com.hazelcast.config.MapConfig configureHazelcastMap(java.lang.String cacheName, java.lang.String mapName, com.atlassian.cache.CacheSettings settings)
configureHazelcastMap
in interface HazelcastHelper
protected com.hazelcast.core.HazelcastInstance hazelcast()
protected R lockAndCreateCachedReference(java.lang.String cacheName, com.atlassian.cache.Supplier<R> supplier, com.atlassian.cache.CacheSettings required)
protected C lockAndCreateCache(java.lang.String cacheName, com.atlassian.cache.CacheLoader<?,?> loader, com.atlassian.cache.CacheSettings required)
protected void assertCacheSettingsAreCompatible(java.lang.String cacheName, com.atlassian.cache.CacheSettings cacheSettings)
java.lang.IllegalArgumentException
- if the cache settings are not compatiblepublic java.lang.String getHazelcastMapNameForCache(java.lang.String cacheName)
getHazelcastMapNameForCache
in interface HazelcastHelper
public java.lang.String getHazelcastMapNameForCachedReference(java.lang.String cacheName)
getHazelcastMapNameForCachedReference
in interface HazelcastHelper
public com.hazelcast.core.IMap getHazelcastMapForCache(java.lang.String cacheName)
getHazelcastMapForCache
in interface HazelcastHelper
public com.hazelcast.core.IMap getHazelcastMapForCachedReference(java.lang.String cacheName)
getHazelcastMapForCachedReference
in interface HazelcastHelper
public java.util.Collection<com.atlassian.cache.Cache<?,?>> getCaches()
getCaches
in interface com.atlassian.cache.CacheManager
public java.util.Collection<com.atlassian.cache.ManagedCache> getManagedCaches()
getManagedCaches
in interface com.atlassian.cache.CacheManager
public C getManagedCache(@NotNull java.lang.String cacheName)
getManagedCache
in interface com.atlassian.cache.CacheManager
protected abstract C createCache(java.lang.String cacheName, com.atlassian.cache.CacheLoader cacheLoader, com.atlassian.cache.CacheSettings settings, com.hazelcast.map.MapContainer mapContainer, com.hazelcast.core.IMap hazelcastMap)
protected abstract R createCachedReference(java.lang.String cacheName, com.atlassian.cache.Supplier supplier, com.atlassian.cache.CacheSettings required, com.hazelcast.core.IMap hazelcastMap)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |