Package org.apache.fulcrum.cache.impl
Class DefaultGlobalCacheService
- java.lang.Object
- 
- org.apache.avalon.framework.logger.AbstractLogEnabled
- 
- org.apache.fulcrum.cache.impl.DefaultGlobalCacheService
 
 
- 
- All Implemented Interfaces:
- Runnable,- org.apache.avalon.framework.activity.Disposable,- org.apache.avalon.framework.activity.Initializable,- org.apache.avalon.framework.configuration.Configurable,- org.apache.avalon.framework.logger.LogEnabled,- org.apache.avalon.framework.thread.ThreadSafe,- GlobalCacheService
 
 public class DefaultGlobalCacheService extends org.apache.avalon.framework.logger.AbstractLogEnabled implements GlobalCacheService, Runnable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.activity.Disposable, org.apache.avalon.framework.thread.ThreadSafe This Service functions as a Global Cache. A global cache is a good place to store items that you may need to access often but don't necessarily need (or want) to fetch from the database everytime. A good example would be a look up table of States that you store in a database and use throughout your application. Since information about States doesn't change very often, you could store this information in the Global Cache and decrease the overhead of hitting the database everytime you need State information.- Version:
- $Id: DefaultGlobalCacheService.java 1890338 2021-05-31 10:31:19Z gk $
- Author:
- Dave Bryson, Jon S. Stevens, John Thorhauer, Henning P. Schmiedehausen, Eric Pugh, Peter CourefreshableCachedObjectux
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected ConcurrentHashMap<String,CachedObject<?>>cacheThe cache.static StringCACHE_CHECK_FREQUENCYThe property for the Cache check frequencystatic longDEFAULT_CACHE_CHECK_FREQUENCYCache check frequency in Millis (1000 Millis = 1 second).static intDEFAULT_INITIAL_CACHE_SIZEInitial size of hash table Value must be > 0.static StringINITIAL_CACHE_SIZEThe property for the InitalCacheSize- 
Fields inherited from interface org.apache.fulcrum.cache.GlobalCacheServiceROLE
 
- 
 - 
Constructor SummaryConstructors Constructor Description DefaultGlobalCacheService()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> voidaddObject(String objectId, CachedObject<T> object)Adds an object to the cache.voidclearCache()Iterate through the cache and remove or refresh stale objects.voidconfigure(org.apache.avalon.framework.configuration.Configuration conf)Avalon component lifecycle methodvoiddispose()Avalon component lifecycle methodvoidflushCache()Flush the cache of all objects.longgetCacheCheckFrequency()Get the Cache Check Frequency in millisecondsList<CachedObject<?>>getCachedObjects()Returns a copy of the non-expired CachedObjects in the cache as a list.intgetCacheSize()Returns the current size of the cache.List<String>getKeys()Returns a copy of keys to objects in the cache as a list.intgetNumberOfObjects()Returns the number of objects currently stored in the cache<T> CachedObject<T>getObject(String objectId)Returns an item from the cache. /** Returns an item from the cache.voidinitialize()Avalon component lifecycle methodvoidremoveObject(String objectId)Removes an object from the cache.voidrun()Circle through the cache and remove stale objects.
 
- 
- 
- 
Field Detail- 
DEFAULT_INITIAL_CACHE_SIZEpublic static final int DEFAULT_INITIAL_CACHE_SIZE Initial size of hash table Value must be > 0. Default = 20- See Also:
- Constant Field Values
 
 - 
INITIAL_CACHE_SIZEpublic static final String INITIAL_CACHE_SIZE The property for the InitalCacheSize- See Also:
- Constant Field Values
 
 - 
CACHE_CHECK_FREQUENCYpublic static final String CACHE_CHECK_FREQUENCY The property for the Cache check frequency- See Also:
- Constant Field Values
 
 - 
DEFAULT_CACHE_CHECK_FREQUENCYpublic static final long DEFAULT_CACHE_CHECK_FREQUENCY Cache check frequency in Millis (1000 Millis = 1 second). Value must be > 0. Default = 5 seconds- See Also:
- Constant Field Values
 
 - 
cacheprotected transient ConcurrentHashMap<String,CachedObject<?>> cache The cache.
 
- 
 - 
Method Detail- 
getCacheCheckFrequencypublic long getCacheCheckFrequency() Get the Cache Check Frequency in milliseconds- Returns:
- the time between two cache check runs in milliseconds
 
 - 
getObjectpublic <T> CachedObject<T> getObject(String objectId) throws ObjectExpiredException Returns an item from the cache. /** Returns an item from the cache. RefreshableCachedObject will be refreshed if it is expired and not untouched.- Specified by:
- getObjectin interface- GlobalCacheService
- Type Parameters:
- T- type of object to return
- Parameters:
- objectId- The key of the stored object.
- Returns:
- The object from the cache.
- Throws:
- ObjectExpiredException- when either the object is not in the cache or it has expired.
 
 - 
addObjectpublic <T> void addObject(String objectId, CachedObject<T> object) Adds an object to the cache.- Specified by:
- addObjectin interface- GlobalCacheService
- Type Parameters:
- T- type of object to add
- Parameters:
- objectId- The key to store the object by.
- object- The object to cache.
 
 - 
removeObjectpublic void removeObject(String objectId) Removes an object from the cache.- Specified by:
- removeObjectin interface- GlobalCacheService
- Parameters:
- objectId- The String id for the object.
 
 - 
getKeyspublic List<String> getKeys() Returns a copy of keys to objects in the cache as a list. Note that keys to expired objects are not returned.- Specified by:
- getKeysin interface- GlobalCacheService
- Returns:
- A List of String's representing the keys to objects in the cache.
 
 - 
getCachedObjectspublic List<CachedObject<?>> getCachedObjects() Returns a copy of the non-expired CachedObjects in the cache as a list.- Specified by:
- getCachedObjectsin interface- GlobalCacheService
- Returns:
- A List of CachedObjectobjects held in the cache
 
 - 
runpublic void run() Circle through the cache and remove stale objects. Frequency is determined by the cacheCheckFrequency property.
 - 
clearCachepublic void clearCache() Iterate through the cache and remove or refresh stale objects.
 - 
getNumberOfObjectspublic int getNumberOfObjects() Returns the number of objects currently stored in the cache- Specified by:
- getNumberOfObjectsin interface- GlobalCacheService
- Returns:
- int number of object in the cache
 
 - 
getCacheSizepublic int getCacheSize() throws IOExceptionReturns the current size of the cache.- Specified by:
- getCacheSizein interface- GlobalCacheService
- Returns:
- int representing current cache size in number of bytes
- Throws:
- IOException- if unable to return cache size
 
 - 
flushCachepublic void flushCache() Flush the cache of all objects.- Specified by:
- flushCachein interface- GlobalCacheService
 
 - 
configurepublic void configure(org.apache.avalon.framework.configuration.Configuration conf) throws org.apache.avalon.framework.configuration.ConfigurationExceptionAvalon component lifecycle method- Specified by:
- configurein interface- org.apache.avalon.framework.configuration.Configurable
- Throws:
- org.apache.avalon.framework.configuration.ConfigurationException
 
 - 
initializepublic void initialize() throws ExceptionAvalon component lifecycle method- Specified by:
- initializein interface- org.apache.avalon.framework.activity.Initializable
- Throws:
- Exception
 
 - 
disposepublic void dispose() Avalon component lifecycle method- Specified by:
- disposein interface- org.apache.avalon.framework.activity.Disposable
 
 
- 
 
-