|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jboss.aop.instrument.Instrumentor
public abstract class Instrumentor
Transforms byte code, making a class advisable. Implements command line class instrumentor as well. Reads classes from class path and creates advised versions in specified directory. Usage:
Instrumentor [dest. directory] [class[ class...]]You can control which instrumentor to use by passing in the jboss.aop.instrumentor system property.
Field Summary | |
---|---|
static String |
AOP_PACKAGE
Package of AOP classes. |
static String |
ASPECT_MANAGER_CLASS_NAME
Name of helper class. |
protected boolean |
basicsSet
|
protected AOPClassPool |
classPool
|
protected javassist.CodeConverter |
converter
|
static String |
HELPER_FIELD_NAME
Helper class's field name. |
protected JoinpointClassifier |
joinpointClassifier
|
protected AspectManager |
manager
|
protected static Collection |
processedClasses
|
Constructor Summary | |
---|---|
protected |
Instrumentor(AOPClassPool pool,
AspectManager manager,
JoinpointClassifier joinpointClassifier,
DynamicTransformationObserver observer)
Constructs new instrumentor. |
protected |
Instrumentor(AspectManager manager,
JoinpointClassifier joinpointClassifier)
|
Method Summary | |
---|---|
protected javassist.CtField |
addProtectedField(javassist.CtClass clazz,
String name,
String typeName,
javassist.CtField.Initializer initializer)
Adds a protected field to a class. |
protected javassist.CtField |
addStaticField(javassist.CtClass clazz,
String name,
String typeName,
javassist.CtField.Initializer initializer)
Adds a static field to a class. |
boolean |
applyCallerPointcuts(javassist.CtClass clazz,
ClassAdvisor advisor)
|
void |
convertProcessedClasses(HotSwapper hotSwapper,
javassist.CtClass clazz,
Collection fieldReads,
Collection fieldWrites,
boolean constructor)
Converts all processed classes to make wrapping of the appropriate joinpoints. |
protected boolean |
convertReferences(javassist.CtClass clazz)
Find all classes that this class references. |
protected abstract javassist.CtMethod |
createMixinInvokeMethod(javassist.CtClass clazz,
javassist.CtClass mixinClass,
String initializer,
javassist.CtMethod method,
long hash)
Creates generic invoke method to be wrapped by real signatures. |
protected abstract void |
doSetupBasics(javassist.CtClass clazz)
|
javassist.CtClass |
forName(String name)
Gets a class by its name. |
static List |
getAdvisableFields(javassist.CtClass clazz)
Gets sorted collection of advisable methods. |
javassist.ClassPool |
getClassPool()
|
List |
getConstructors(javassist.CtClass clazz)
|
void |
interceptorChainsUpdated(Collection joinpointUpdates,
HotSwapper hotSwapper)
Notifies the Instrumentor that some joinpoint status were updated. |
protected abstract void |
intitialiseTransformers()
|
static boolean |
isAdvisable(javassist.CtField field)
Is the method advisable? |
static boolean |
isAdvisable(javassist.CtMethod method)
Is the method advisable? |
boolean |
isAdvised(javassist.CtClass clazz)
|
protected boolean |
isBaseClass(javassist.CtClass clazz)
|
static boolean |
isTransformable(javassist.CtClass clazz)
|
protected static String |
mixinFieldName(javassist.CtClass mixinClass)
|
void |
setupBasics(javassist.CtClass clazz)
|
protected boolean |
shouldNotTransform(javassist.CtClass clazz)
|
boolean |
transform(javassist.CtClass clazz,
ClassAdvisor advisor)
Makes class advisable. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String AOP_PACKAGE
public static final String ASPECT_MANAGER_CLASS_NAME
public static final String HELPER_FIELD_NAME
protected AOPClassPool classPool
protected boolean basicsSet
protected javassist.CodeConverter converter
protected AspectManager manager
protected JoinpointClassifier joinpointClassifier
protected static Collection processedClasses
Constructor Detail |
---|
protected Instrumentor(AOPClassPool pool, AspectManager manager, JoinpointClassifier joinpointClassifier, DynamicTransformationObserver observer)
joinpointClassifier
- algorithm of joinpoint classification to be used.observer
- need be notified of every joinpoint wrapping caused only
by pointcuts dynamicaly added.protected Instrumentor(AspectManager manager, JoinpointClassifier joinpointClassifier)
Method Detail |
---|
protected abstract void intitialiseTransformers()
public javassist.ClassPool getClassPool()
public static boolean isAdvisable(javassist.CtMethod method)
public static boolean isAdvisable(javassist.CtField field)
public boolean isAdvised(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
public static boolean isTransformable(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
protected boolean isBaseClass(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
protected static String mixinFieldName(javassist.CtClass mixinClass)
public boolean applyCallerPointcuts(javassist.CtClass clazz, ClassAdvisor advisor) throws javassist.CannotCompileException
javassist.CannotCompileException
protected boolean convertReferences(javassist.CtClass clazz) throws Exception
Exception
protected boolean shouldNotTransform(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
public boolean transform(javassist.CtClass clazz, ClassAdvisor advisor)
public List getConstructors(javassist.CtClass clazz)
public static List getAdvisableFields(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
public javassist.CtClass forName(String name) throws javassist.NotFoundException
javassist.NotFoundException
protected javassist.CtField addStaticField(javassist.CtClass clazz, String name, String typeName, javassist.CtField.Initializer initializer) throws javassist.CannotCompileException, javassist.NotFoundException
javassist.CannotCompileException
javassist.NotFoundException
protected javassist.CtField addProtectedField(javassist.CtClass clazz, String name, String typeName, javassist.CtField.Initializer initializer) throws javassist.CannotCompileException, javassist.NotFoundException
javassist.CannotCompileException
javassist.NotFoundException
public void setupBasics(javassist.CtClass clazz) throws javassist.CannotCompileException, javassist.NotFoundException
javassist.CannotCompileException
javassist.NotFoundException
public void interceptorChainsUpdated(Collection joinpointUpdates, HotSwapper hotSwapper)
Instrumentor
that some joinpoint status were updated.
This method hot swaps the code of afected classes.
joinpointUpdates
- a collection of org.jboss.aop.instrument.JoinpointStatusUpdate
.hotSwapper
- object capable of hot swapping classes.public void convertProcessedClasses(HotSwapper hotSwapper, javassist.CtClass clazz, Collection fieldReads, Collection fieldWrites, boolean constructor)
hotSwapper
- responsible for performing any hot swapping operations when
needed.clazz
- the clazz whose transformation involved dynamic wrapping.fieldReads
- collection of fields whose read joinpoit was dynamicaly wrapped.fieldWrites
- collection of fields whose read joinpoit was dynamicaly wrapped.constructor
- true
if the clazz
constructors were
dynamicaly wrapped.protected abstract void doSetupBasics(javassist.CtClass clazz) throws javassist.CannotCompileException, javassist.NotFoundException
javassist.CannotCompileException
javassist.NotFoundException
protected abstract javassist.CtMethod createMixinInvokeMethod(javassist.CtClass clazz, javassist.CtClass mixinClass, String initializer, javassist.CtMethod method, long hash) throws javassist.CannotCompileException, javassist.NotFoundException, Exception
javassist.CannotCompileException
javassist.NotFoundException
Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |