Class FlatFileCacheBacking
- All Implemented Interfaces:
CacheBacking
Uses a "flat" files model to store the cached instrumented classes
and aspects - i.e., each class/aspect is stored as a separate (binary)
file. This is a good mechanism when the number of instrumented class is
relatively small (a few 10's). The reason for it is that scanning a folder
that has many files in it quickly becomes an I/O bottleneck. Also, some
O/S-es may impose internal limits on the maximum number of "children"
a folder node may have. On the other hand, it is much faster (again, for
small number of instrumented classes) than the ZIP cache since each class/aspect
is represented by a single file - thus adding/removing/modifying it is easier.
- Author:
- Lyor Goldstein
-
Nested Class Summary
Nested classes/interfaces inherited from class AsynchronousFileCacheBacking
AsynchronousFileCacheBacking.AbstractCommand, AsynchronousFileCacheBacking.AsyncCommand, AsynchronousFileCacheBacking.AsynchronousFileCacheBackingCreator<T>, AsynchronousFileCacheBacking.ClearCommand, AsynchronousFileCacheBacking.InsertCommand, AsynchronousFileCacheBacking.KeyedCommand, AsynchronousFileCacheBacking.RemoveCommand, AsynchronousFileCacheBacking.UpdateIndexCommandNested classes/interfaces inherited from class AbstractIndexedFileCacheBacking
AbstractIndexedFileCacheBacking.IndexEntry -
Field Summary
Fields inherited from class AsynchronousFileCacheBacking
bytesMap, exposedBytes, exposedIndex, indexFields inherited from class AbstractIndexedFileCacheBacking
EMPTY_INDEX, EMPTY_KEYS, INDEX_FILEFields inherited from class AbstractFileCacheBacking
WEAVED_CLASS_CACHE_DIRFields inherited from class AbstractCacheBacking
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic final FlatFileCacheBackingcreateBacking(File cacheDir) readClassBytes(Map<String, AbstractIndexedFileCacheBacking.IndexEntry> indexMap, File cacheDir) readClassBytes(Map<String, AbstractIndexedFileCacheBacking.IndexEntry> indexMap, File[] files) protected voidremoveClassBytes(String key) protected voidwriteClassBytes(String key, byte[] bytes) Methods inherited from class AsynchronousFileCacheBacking
clear, createBacking, executeClearCommand, executeCommand, executeInsertCommand, executeRemoveCommand, executeUpdateIndexCommand, get, getBytesMap, getIndex, getIndexEntries, getIndexMap, postCacheCommand, put, remove, remove, toStringMethods inherited from class AbstractIndexedFileCacheBacking
createIndexEntry, getIndexFile, getKeys, readIndex, readIndex, readIndex, writeIndex, writeIndex, writeIndex, writeIndex, writeIndexMethods inherited from class AbstractFileCacheBacking
close, close, delete, getCacheDirectoryMethods inherited from class AbstractCacheBacking
crc
-
Constructor Details
-
FlatFileCacheBacking
-
-
Method Details
-
createBacking
-
readClassBytes
protected Map<String,byte[]> readClassBytes(Map<String, AbstractIndexedFileCacheBacking.IndexEntry> indexMap, File cacheDir) - Specified by:
readClassBytesin classAsynchronousFileCacheBacking
-
readClassBytes
-
resolveIndexMapEntry
protected AbstractIndexedFileCacheBacking.IndexEntry resolveIndexMapEntry(File cacheDir, AbstractIndexedFileCacheBacking.IndexEntry ie) - Overrides:
resolveIndexMapEntryin classAbstractIndexedFileCacheBacking
-
writeClassBytes
- Overrides:
writeClassBytesin classAbstractFileCacheBacking- Throws:
Exception
-
removeClassBytes
Description copied from class:AsynchronousFileCacheBacking- Specified by:
removeClassBytesin classAsynchronousFileCacheBacking- Parameters:
key- The key representing the class whose bytes are to be removed- Throws:
Exception- if failed to remove class bytes
-