Package org.aspectj.weaver.tools.cache
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 org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking
AsynchronousFileCacheBacking.AbstractCommand, AsynchronousFileCacheBacking.AsyncCommand, AsynchronousFileCacheBacking.AsynchronousFileCacheBackingCreator<T extends AsynchronousFileCacheBacking>, AsynchronousFileCacheBacking.ClearCommand, AsynchronousFileCacheBacking.InsertCommand, AsynchronousFileCacheBacking.KeyedCommand, AsynchronousFileCacheBacking.RemoveCommand, AsynchronousFileCacheBacking.UpdateIndexCommand
Nested classes/interfaces inherited from class org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
AbstractIndexedFileCacheBacking.IndexEntry
-
Field Summary
Fields inherited from class org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking
bytesMap, exposedBytes, exposedIndex, index
Fields inherited from class org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
EMPTY_INDEX, EMPTY_KEYS, INDEX_FILE
Fields inherited from class org.aspectj.weaver.tools.cache.AbstractFileCacheBacking
WEAVED_CLASS_CACHE_DIR
Fields inherited from class org.aspectj.weaver.tools.cache.AbstractCacheBacking
logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic final FlatFileCacheBacking
createBacking
(File cacheDir) readClassBytes
(Map<String, AbstractIndexedFileCacheBacking.IndexEntry> indexMap, File cacheDir) readClassBytes
(Map<String, AbstractIndexedFileCacheBacking.IndexEntry> indexMap, File[] files) protected void
removeClassBytes
(String key) protected void
writeClassBytes
(String key, byte[] bytes) Methods inherited from class org.aspectj.weaver.tools.cache.AsynchronousFileCacheBacking
clear, createBacking, executeClearCommand, executeCommand, executeInsertCommand, executeRemoveCommand, executeUpdateIndexCommand, get, getBytesMap, getIndex, getIndexEntries, getIndexMap, postCacheCommand, put, remove, remove, toString
Methods inherited from class org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
createIndexEntry, getIndexFile, getKeys, readIndex, readIndex, readIndex, writeIndex, writeIndex, writeIndex, writeIndex, writeIndex
Methods inherited from class org.aspectj.weaver.tools.cache.AbstractFileCacheBacking
close, close, delete, getCacheDirectory
Methods inherited from class org.aspectj.weaver.tools.cache.AbstractCacheBacking
crc
-
Constructor Details
-
FlatFileCacheBacking
-
-
Method Details
-
createBacking
-
readClassBytes
protected Map<String,byte[]> readClassBytes(Map<String, AbstractIndexedFileCacheBacking.IndexEntry> indexMap, File cacheDir) - Specified by:
readClassBytes
in classAsynchronousFileCacheBacking
-
readClassBytes
-
resolveIndexMapEntry
protected AbstractIndexedFileCacheBacking.IndexEntry resolveIndexMapEntry(File cacheDir, AbstractIndexedFileCacheBacking.IndexEntry ie) - Overrides:
resolveIndexMapEntry
in classAbstractIndexedFileCacheBacking
-
writeClassBytes
- Overrides:
writeClassBytes
in classAbstractFileCacheBacking
- Throws:
Exception
-
removeClassBytes
Description copied from class:AsynchronousFileCacheBacking
- Specified by:
removeClassBytes
in classAsynchronousFileCacheBacking
- Parameters:
key
- The key representing the class whose bytes are to be removed- Throws:
Exception
- if failed to remove class bytes
-