|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.aspectj.weaver.tools.cache.DefaultFileCacheBacking
public class DefaultFileCacheBacking
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 | |
---|---|
static class |
DefaultFileCacheBacking.IndexEntry
|
Field Summary | |
---|---|
static java.lang.String |
INDEX_FILE
|
static java.lang.String |
WEAVED_CLASS_CACHE_DIR
|
Constructor Summary | |
---|---|
protected |
DefaultFileCacheBacking(java.io.File cacheDirectory,
CacheKeyResolver resolver)
|
Method Summary | |
---|---|
void |
clear()
Clear the entire cache |
protected static void |
close(java.io.InputStream in,
java.io.File file)
|
protected static void |
close(java.io.OutputStream out,
java.io.File file)
|
static CacheBacking |
createBacking(java.io.File cacheDir,
CacheKeyResolver resolver)
|
static CacheBacking |
createBacking(java.lang.String scope,
CacheKeyResolver resolver)
|
protected static void |
delete(java.io.File file)
|
CachedClassEntry |
get(CachedClassReference ref)
Get a cache entry |
java.lang.String[] |
getKeys(java.lang.String regex)
Return a list of keys which match the given regex. |
void |
put(CachedClassEntry entry)
Put an entry in the cache |
protected byte[] |
read(java.io.File file,
long expectedCRC)
|
static DefaultFileCacheBacking.IndexEntry[] |
readIndex(java.io.File indexFile)
|
void |
remove(CachedClassReference ref)
Remove an entry from the cache |
protected long |
write(java.io.File file,
byte[] bytes)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String WEAVED_CLASS_CACHE_DIR
public static final java.lang.String INDEX_FILE
Constructor Detail |
---|
protected DefaultFileCacheBacking(java.io.File cacheDirectory, CacheKeyResolver resolver)
Method Detail |
---|
public static CacheBacking createBacking(java.io.File cacheDir, CacheKeyResolver resolver)
public static DefaultFileCacheBacking.IndexEntry[] readIndex(java.io.File indexFile)
public void clear()
CacheBacking
clear
in interface CacheBacking
public static CacheBacking createBacking(java.lang.String scope, CacheKeyResolver resolver)
public java.lang.String[] getKeys(java.lang.String regex)
CacheBacking
getKeys
in interface CacheBacking
public CachedClassEntry get(CachedClassReference ref)
CacheBacking
get
in interface CacheBacking
ref
- entry to retrieve
public void put(CachedClassEntry entry)
CacheBacking
put
in interface CacheBacking
entry
- key of the entrypublic void remove(CachedClassReference ref)
CacheBacking
remove
in interface CacheBacking
protected byte[] read(java.io.File file, long expectedCRC)
protected long write(java.io.File file, byte[] bytes)
protected static void delete(java.io.File file)
protected static void close(java.io.OutputStream out, java.io.File file)
protected static void close(java.io.InputStream in, java.io.File file)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |