From f8f117808bef16efd520803636c6841332e83c49 Mon Sep 17 00:00:00 2001
From: Jerry James
* This munger is used for @AJ aspects for which inlining wrapper is not done at compile time.
- *
* Specific state and logic is kept in the munger ala ITD so that call/get/set pointcuts can still be matched on the wrapped member * thanks to the EffectiveSignature attribute. + *
* * @author Alexandre Vasseur * @author Andy Clement diff --git a/weaver/src/main/java/org/aspectj/weaver/loadtime/IWeavingContext.java b/weaver/src/main/java/org/aspectj/weaver/loadtime/IWeavingContext.java index 2a6523bb5..0ffd9dbe9 100644 --- a/weaver/src/main/java/org/aspectj/weaver/loadtime/IWeavingContext.java +++ b/weaver/src/main/java/org/aspectj/weaver/loadtime/IWeavingContext.java @@ -40,7 +40,7 @@ public interface IWeavingContext { /** * In an OSGi environment, determin which bundle a URL originated from. - * In a non-OSGi environment, implementors should returnnull.
+ * In a non-OSGi environment, implementors should return null
.
* @param url
* @return
* @deprecated use getFile() or getClassLoaderName()
diff --git a/weaver/src/main/java/org/aspectj/weaver/loadtime/definition/Definition.java b/weaver/src/main/java/org/aspectj/weaver/loadtime/definition/Definition.java
index 81330ed36..e706b240e 100644
--- a/weaver/src/main/java/org/aspectj/weaver/loadtime/definition/Definition.java
+++ b/weaver/src/main/java/org/aspectj/weaver/loadtime/definition/Definition.java
@@ -19,7 +19,7 @@ import java.util.Map;
/**
* A POJO that contains raw strings from the XML (sort of XMLBean for our simple LTW DTD)
*
- * @author Alexandre Vasseur
+ * @author Alexandre Vasseur (alex AT gnilux DOT com)
*/
public class Definition {
diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking.java b/weaver/src/main/java/org/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking.java
index 8203584f0..bb1b88807 100644
--- a/weaver/src/main/java/org/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking.java
+++ b/weaver/src/main/java/org/aspectj/weaver/tools/cache/AsynchronousFileCacheBacking.java
@@ -35,7 +35,7 @@ import org.aspectj.weaver.tools.TraceFactory;
* to signal to a background thread various actions required to "synchronize"
* the in-memory cache with the persisted copy. Whenever there is a cache miss
* from the {@link #get(CachedClassReference)} call, the weaver issues a
- * {@link #put(CachedClassEntry)} call. This call has 2 side-effects:
+ * {@link #put(CachedClassEntry)} call. This call has 2 side-effects:
*
* -
* The in-memory cache is updated so that subsequent calls to {@link #get(CachedClassReference)}
diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheBacking.java b/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheBacking.java
index 0a018d9c8..f6eb1f585 100644
--- a/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheBacking.java
+++ b/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheBacking.java
@@ -15,10 +15,11 @@ package org.aspectj.weaver.tools.cache;
/**
* Interface for the backing to the cache; usually a file,
* but could be an in-memory backing for testing.
- *
+ *
* aspectj and jvmti provide no suitable guarantees
* on locking for class redefinitions, so every implementation
* must have a some locking mechanism to prevent invalid reads.
+ *
*/
public interface CacheBacking {
/**
diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheKeyResolver.java b/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheKeyResolver.java
index 8c76ad878..c729efe7f 100644
--- a/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheKeyResolver.java
+++ b/weaver/src/main/java/org/aspectj/weaver/tools/cache/CacheKeyResolver.java
@@ -20,10 +20,11 @@ import java.util.List;
* a reasonable naive implementation, the management and invalidation
* of the cache may be more usefully accomplished at the Application
* or Container level.
- *
+ *
* The key is not a one-way hash; it must be convertible back to a
* className and must match the regex for the type of key it is
* (generated or weaved).
+ *
*/
public interface CacheKeyResolver {
/**
diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/cache/CachedClassReference.java b/weaver/src/main/java/org/aspectj/weaver/tools/cache/CachedClassReference.java
index 430354855..443958406 100644
--- a/weaver/src/main/java/org/aspectj/weaver/tools/cache/CachedClassReference.java
+++ b/weaver/src/main/java/org/aspectj/weaver/tools/cache/CachedClassReference.java
@@ -18,9 +18,10 @@ package org.aspectj.weaver.tools.cache;
* cache entry is a simple string, but that string may contain
* some specialized encoding. This class handles all of that
* encoding.
- *
+ *
* External users of the cache should not be able to create these
* objects manually.
+ *
*/
public class CachedClassReference {
enum EntryType {
diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultCacheKeyResolver.java b/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultCacheKeyResolver.java
index e2d8288c4..11e9b2f2d 100644
--- a/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultCacheKeyResolver.java
+++ b/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultCacheKeyResolver.java
@@ -22,15 +22,18 @@ import java.util.zip.CRC32;
/**
* Naive default class and classloader hashing implementation useful
* for some multi-classloader environments.
- *
- * This implementation creates classloader scopes of the form:
+ *
+ * This implementation creates classloader scopes of the form:
* "ExampleClassLoaderName.[crc hash]"
- *
- * And weaved class keys of the form:
+ *
+ *
+ * And weaved class keys of the form:
* "com.foo.BarClassName.[bytes len][crc].weaved"
- *
- * And generated class keys of the form:
+ *
+ *
+ * And generated class keys of the form:
* "com.foo.BarClassName$AjClosure.generated
+ *
*/
public class DefaultCacheKeyResolver implements CacheKeyResolver {
public static final String GENERATED_SUFFIX = ".generated";
diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultFileCacheBacking.java b/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultFileCacheBacking.java
index 21543a80d..7bfee2068 100644
--- a/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultFileCacheBacking.java
+++ b/weaver/src/main/java/org/aspectj/weaver/tools/cache/DefaultFileCacheBacking.java
@@ -28,20 +28,23 @@ import org.aspectj.util.LangUtil;
/**
* 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.
+ *
*/
public class DefaultFileCacheBacking extends AbstractIndexedFileCacheBacking {
private final Map index;
diff --git a/weaver/src/main/java/org/aspectj/weaver/tools/cache/WeavedClassCache.java b/weaver/src/main/java/org/aspectj/weaver/tools/cache/WeavedClassCache.java
index c5c079dcf..cc0532316 100644
--- a/weaver/src/main/java/org/aspectj/weaver/tools/cache/WeavedClassCache.java
+++ b/weaver/src/main/java/org/aspectj/weaver/tools/cache/WeavedClassCache.java
@@ -27,44 +27,49 @@ import org.aspectj.weaver.tools.GeneratedClassHandler;
* except designed to operate across multiple restarts of the JVM and with one
* cache per classloader; allowing URLClassLoaders with the same set of URI
* paths to share the same cache (with the default configuration).
- *
+ *
* To enable the default configuration two system properties must be set:
+ *
*
* "-Daj.weaving.cache.enabled=true"
* "-Daj.weaving.cache.dir=/some/directory"
*
- *
+ *
* The class cache is often something that application developers or
* containers would like to manage, so there are a few interfaces for overriding the
* default behavior and performing other management functions.
+ *
*
- * {@link CacheBacking}
+ * {@link CacheBacking}
* Provides an interface for implementing a custom backing store
* for the cache; The default implementation in {@link DefaultFileCacheBacking}
* provides a naive file-backed cache. An alternate implementation may ignore
* caching until signaled explicitly by the application, or only cache files
* for a specific duration. This class delegates the locking and synchronization
* requirements to the CacheBacking implementation.
- *
- * {@link CacheKeyResolver}
+ *
+ *
+ * {@link CacheKeyResolver}
* Provides methods for creating keys from classes to be cached and for
* creating the "scope" of the cache itself for a given classloader and aspect
* list. The default implementation is provided by {@link DefaultCacheKeyResolver}
* but an alternate implementation may want to associate a cache with a particular
* application running underneath a container.
- *
+ *
+ *
* This naive cache does not normally invalidate *any* classes; the interfaces above
* must be used to implement more intelligent behavior. Cache invalidation
* problems may occur in at least three scenarios:
- *
- * 1. New aspects are added dynamically somewhere in the classloader hierarchy; affecting
- * other classes elsewhere.
- * 2. Use of declare parent in aspects to change the type hierarchy; if the cache
+ *
+ *
+ * - New aspects are added dynamically somewhere in the classloader hierarchy; affecting
+ * other classes elsewhere.
+ * - Use of declare parent in aspects to change the type hierarchy; if the cache
* has not invalidated the right classes in the type hierarchy aspectj may not
- * be reconstruct the class incorrectly.
- * 3. Similarly to (2), the addition of fields or methods on classes which have
- * already been weaved and cached could have inter-type conflicts.
- *
+ * be reconstruct the class incorrectly.
+ * - Similarly to (2), the addition of fields or methods on classes which have
+ * already been weaved and cached could have inter-type conflicts.
+ *
*/
public class WeavedClassCache {
public static final String WEAVED_CLASS_CACHE_ENABLED = "aj.weaving.cache.enabled";
--
cgit v1.2.3