Class ClassLoaderWeavingAdaptor
java.lang.Object
org.aspectj.weaver.tools.WeavingAdaptor
org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
- All Implemented Interfaces:
IMessageContext
- 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
ConstructorsConstructorDescriptionClassLoaderWeavingAdaptor
(ClassLoader deprecatedLoader, IWeavingContext deprecatedContext) Deprecated. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
Determine whether a type should be accepted for weaving, by checking it against any includes/excludes.static MethodHandle
createMethodHandle
(Method method) static MethodHandle
createMethodHandle
(Method method, boolean setAccessible) static MethodHandle
createMethodHandle
(String className, String methodName, Class<?>... argumentTypes) protected void
defineClass
(ClassLoader loader, String name, byte[] bytes) protected void
defineClass
(ClassLoader loader, String name, byte[] bytes, ProtectionDomain protectionDomain) void
Flush the generated classes cachevoid
flushGeneratedClassesFor
(String className) Remove generated classes based on the supplied className.boolean
generatedClassesExistFor
(String className) Check to see if any classes are stored in the generated classes cache.protected String
void
initialize
(ClassLoader classLoader, IWeavingContext context) protected void
protected boolean
shouldDump
(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 Details
-
ClassLoaderWeavingAdaptor
public ClassLoaderWeavingAdaptor() -
ClassLoaderWeavingAdaptor
@Deprecated public ClassLoaderWeavingAdaptor(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 Details
-
initialize
-
lint
-
getContextId
- Specified by:
getContextId
in interfaceIMessageContext
- Overrides:
getContextId
in classWeavingAdaptor
-
accept
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
- Overrides:
shouldDump
in classWeavingAdaptor
-
getDumpDir
- Overrides:
getDumpDir
in classWeavingAdaptor
- Returns:
- the directory in which to dump - default is _ajdump but it
-
getNamespace
- Returns:
- Returns the key.
-
generatedClassesExistFor
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
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)
-
createMethodHandle
public static MethodHandle createMethodHandle(String className, String methodName, Class<?>... argumentTypes) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException -
createMethodHandle
- Throws:
IllegalAccessException
-
createMethodHandle
public static MethodHandle createMethodHandle(Method method, boolean setAccessible) throws IllegalAccessException - Throws:
IllegalAccessException
-
defineClass
-
defineClass
protected void defineClass(ClassLoader loader, String name, byte[] bytes, ProtectionDomain protectionDomain)
-