Package org.aspectj.weaver.loadtime
Class ClassLoaderWeavingAdaptor
- java.lang.Object
-
- org.aspectj.weaver.tools.WeavingAdaptor
-
- org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
-
- All Implemented Interfaces:
org.aspectj.bridge.IMessageContext
public class ClassLoaderWeavingAdaptor extends WeavingAdaptor
- Author:
- Alexandre Vasseur, Andy Clement, Abraham Nevado, David Knibb, John Kew
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.aspectj.weaver.tools.WeavingAdaptor
WeavingAdaptor.WeavingAdaptorMessageHolder, WeavingAdaptor.WeavingAdaptorMessageWriter
-
-
Field Summary
-
Fields inherited from class org.aspectj.weaver.tools.WeavingAdaptor
activeProtectionDomain, bcelWorld, cache, delegateForCurrentClass, generatedClasses, generatedClassHandler, SHOW_WEAVE_INFO_PROPERTY, TRACE_MESSAGES_PROPERTY, verbose, weaver, WEAVING_ADAPTOR_VERBOSE
-
-
Constructor Summary
Constructors Constructor Description ClassLoaderWeavingAdaptor()
ClassLoaderWeavingAdaptor(java.lang.ClassLoader deprecatedLoader, IWeavingContext deprecatedContext)
Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
accept(java.lang.String className, byte[] bytes)
Determine whether a type should be accepted for weaving, by checking it against any includes/excludes.void
flushGeneratedClasses()
Flush the generated classes cachevoid
flushGeneratedClassesFor(java.lang.String className)
Remove generated classes based on the supplied className.boolean
generatedClassesExistFor(java.lang.String className)
Check to see if any classes are stored in the generated classes cache.java.lang.String
getContextId()
protected java.lang.String
getDumpDir()
java.lang.String
getNamespace()
void
initialize(java.lang.ClassLoader classLoader, IWeavingContext context)
protected void
lint(java.lang.String name, java.lang.String[] infos)
protected boolean
shouldDump(java.lang.String className, boolean before)
-
Methods inherited from class org.aspectj.weaver.tools.WeavingAdaptor
addURL, createMessageHandler, debug, disable, dump, enable, ensureDelegateInitialized, error, error, getFullClassPath, getMessageHandler, getMessageHolder, info, initializeCache, isEnabled, setActiveProtectionDomain, setMessageHandler, warn, warn, weaveClass, weaveClass
-
-
-
-
Constructor Detail
-
ClassLoaderWeavingAdaptor
public ClassLoaderWeavingAdaptor()
-
ClassLoaderWeavingAdaptor
@Deprecated public ClassLoaderWeavingAdaptor(java.lang.ClassLoader deprecatedLoader, IWeavingContext deprecatedContext)
Deprecated.We don't need a reference to the class loader and using it during construction can cause problems with recursion. It also makes sense to supply the weaving context during initialization to.
-
-
Method Detail
-
initialize
public void initialize(java.lang.ClassLoader classLoader, IWeavingContext context)
-
lint
protected void lint(java.lang.String name, java.lang.String[] infos)
-
getContextId
public java.lang.String getContextId()
- Specified by:
getContextId
in interfaceorg.aspectj.bridge.IMessageContext
- Overrides:
getContextId
in classWeavingAdaptor
-
accept
protected boolean accept(java.lang.String className, byte[] bytes)
Determine whether a type should be accepted for weaving, by checking it against any includes/excludes.- Overrides:
accept
in classWeavingAdaptor
- Parameters:
className
- the name of the type to possibly acceptbytes
- the bytecode for the type (in case we need to look inside, eg. annotations)- Returns:
- true if it should be accepted for weaving
-
shouldDump
protected boolean shouldDump(java.lang.String className, boolean before)
- Overrides:
shouldDump
in classWeavingAdaptor
-
getDumpDir
protected java.lang.String getDumpDir()
- Overrides:
getDumpDir
in classWeavingAdaptor
- Returns:
- the directory in which to dump - default is _ajdump but it
-
getNamespace
public java.lang.String getNamespace()
- Returns:
- Returns the key.
-
generatedClassesExistFor
public boolean generatedClassesExistFor(java.lang.String className)
Check to see if any classes are stored in the generated classes cache. Then flush the cache if it is not empty- Parameters:
className
- TODO- Returns:
- true if a class has been generated and is stored in the cache
-
flushGeneratedClasses
public void flushGeneratedClasses()
Flush the generated classes cache
-
flushGeneratedClassesFor
public void flushGeneratedClassesFor(java.lang.String className)
Remove generated classes based on the supplied className. This will remove any entries related to this name - so the class itself plus and inner classes.- Parameters:
className
- a slashed classname (e.g. com/foo/Bar)
-
-