Package org.aspectj.weaver.tools.cache
Class DefaultFileCacheBacking
java.lang.Object
org.aspectj.weaver.tools.cache.AbstractCacheBacking
org.aspectj.weaver.tools.cache.AbstractFileCacheBacking
org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
org.aspectj.weaver.tools.cache.DefaultFileCacheBacking
- All Implemented Interfaces:
CacheBacking
Naive File-Backed Class Cache with no expiry or application
centric invalidation.
Enabled with the system property, "aj.weaving.cache.dir" If this system property is not set, no caching will be performed.
A CRC checksum is stored alongside the class file to verify the bytes on read. If for some reason there is an error reading either the class or crc file, or if the crc does not match the class data the cache entry is deleted.
An alternate implementation of this could store the class file as a jar/zip directly, which would have the required crc; as a first pass however it is somewhat useful to view these files in expanded form for debugging.
-
Nested Class Summary
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.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 TypeMethodDescriptionvoid
clear()
Clear the entire cachestatic final DefaultFileCacheBacking
createBacking
(File cacheDir) static CacheBacking
createBacking
(String scope) protected void
get
(CachedClassReference ref, byte[] originalBytes) Get a cache entryprotected Map<String,
AbstractIndexedFileCacheBacking.IndexEntry> getIndex()
String[]
Return a list of keys which match the given regex.void
put
(CachedClassEntry entry, byte[] originalBytes) Put an entry in the cacheprotected byte[]
protected Map<String,
AbstractIndexedFileCacheBacking.IndexEntry> void
Remove an entry from the cacheprotected long
protected void
Methods inherited from class org.aspectj.weaver.tools.cache.AbstractIndexedFileCacheBacking
createIndexEntry, getIndexFile, readIndex, readIndex, writeIndex, writeIndex, writeIndex, writeIndex
Methods inherited from class org.aspectj.weaver.tools.cache.AbstractFileCacheBacking
close, close, getCacheDirectory, writeClassBytes
Methods inherited from class org.aspectj.weaver.tools.cache.AbstractCacheBacking
crc
-
Constructor Details
-
DefaultFileCacheBacking
-
-
Method Details
-
createBacking
-
getIndex
- Specified by:
getIndex
in classAbstractIndexedFileCacheBacking
-
resolveIndexMapEntry
protected AbstractIndexedFileCacheBacking.IndexEntry resolveIndexMapEntry(File cacheDir, AbstractIndexedFileCacheBacking.IndexEntry ie) - Overrides:
resolveIndexMapEntry
in classAbstractIndexedFileCacheBacking
-
readIndex
- Overrides:
readIndex
in classAbstractIndexedFileCacheBacking
-
writeIndex
protected void writeIndex()- Overrides:
writeIndex
in classAbstractIndexedFileCacheBacking
-
clear
public void clear()Description copied from interface:CacheBacking
Clear the entire cache -
createBacking
-
getKeys
Description copied from interface:CacheBacking
Return a list of keys which match the given regex.- Specified by:
getKeys
in interfaceCacheBacking
- Overrides:
getKeys
in classAbstractIndexedFileCacheBacking
- Returns:
-
get
Description copied from interface:CacheBacking
Get a cache entry- Parameters:
ref
- entry to retrieveoriginalBytes
- Pre-weaving class bytes - required in order to ensure that the cached entry refers to the same original class- Returns:
- the cached bytes or null, if the entry does not exist
-
put
Description copied from interface:CacheBacking
Put an entry in the cache- Parameters:
entry
- key of the entryoriginalBytes
- Pre-weaving class bytes - required in order to ensure that the cached entry refers to the same original class
-
remove
Description copied from interface:CacheBacking
Remove an entry from the cache -
delete
- Overrides:
delete
in classAbstractFileCacheBacking
-
read
-
write
-