|
JBoss AOP Parent POM 2.2.2.GA | |||||||||
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 javassist.ClassPool |
classPool
|
protected javassist.CodeConverter |
converter
|
static String |
HELPER_FIELD_NAME
Helper class's field name. |
protected JoinpointClassifier |
joinpointClassifier
|
protected AspectManager |
manager
|
protected static Collection<javassist.CtClass> |
processedClasses
|
Constructor Summary | |
---|---|
protected |
Instrumentor(AspectManager manager,
JoinpointClassifier joinpointClassifier)
|
protected |
Instrumentor(javassist.ClassPool pool,
AspectManager manager,
JoinpointClassifier joinpointClassifier,
DynamicTransformationObserver observer)
Constructs new instrumentor. |
Method Summary | |
---|---|
protected javassist.CtMethod |
addMixinMethod(Advisor advisor,
javassist.CtMethod method,
javassist.CtClass clazz,
javassist.CtMethod delegate,
long hash)
|
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. |
static void |
addSyntheticAttribute(javassist.CtConstructor ctor)
|
static void |
addSyntheticAttribute(javassist.CtField field)
|
static void |
addSyntheticAttribute(javassist.CtMethod method)
|
static void |
addSyntheticAttribute(javassist.bytecode.MethodInfo info)
|
boolean |
applyCallerPointcuts(javassist.CtClass clazz,
ClassAdvisor advisor)
|
void |
convertProcessedClasses(HotSwapper hotSwapper,
javassist.CtClass clazz,
Collection<javassist.CtField> fieldReads,
Collection<javassist.CtField> fieldWrites,
boolean constructor)
Converts all processed classes to make wrapping of the appropriate joinpoints. |
protected boolean |
convertReferences(javassist.CtClass clazz,
ClassAdvisor clazzAdvisor)
Find all classes that this class references. |
protected javassist.CtMethod |
createInvokeMethod(javassist.CtClass clazz)
Creates generic invoke method to be wrapped by real signatures. |
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(javassist.ClassPool pool,
String name)
Gets a class by its name. |
javassist.CtClass |
forName(String name)
Gets a class by its name. |
static List<javassist.CtField> |
getAdvisableFields(javassist.CtClass clazz)
Gets sorted collection of advisable methods. |
javassist.ClassPool |
getClassPool()
|
List<javassist.CtConstructor> |
getConstructors(javassist.CtClass clazz)
|
static boolean |
implementsAdvised(javassist.CtClass clazz)
|
void |
interceptorChainsUpdated(Collection<JoinpointStatusUpdate> joinpointUpdates,
HotSwapper hotSwapper)
Notifies the Instrumentor that some joinpoint status were updated. |
protected abstract void |
intitialiseTransformers()
|
boolean |
isAdvised(javassist.CtClass clazz)
|
protected boolean |
isBaseClass(javassist.CtClass clazz)
|
boolean |
isProxyObject(javassist.CtClass clazz)
|
static boolean |
isTransformable(javassist.CtClass clazz)
|
protected static String |
mixinFieldName(javassist.CtClass mixinClass)
|
void |
prepareClassForTransformation(javassist.CtClass clazz)
|
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 javassist.ClassPool classPool
protected boolean basicsSet
protected javassist.CodeConverter converter
protected AspectManager manager
protected JoinpointClassifier joinpointClassifier
protected static Collection<javassist.CtClass> processedClasses
Constructor Detail |
---|
protected Instrumentor(javassist.ClassPool 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 boolean isAdvised(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
public boolean isProxyObject(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
public void prepareClassForTransformation(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
public static boolean implementsAdvised(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)
protected javassist.CtMethod addMixinMethod(Advisor advisor, javassist.CtMethod method, javassist.CtClass clazz, javassist.CtMethod delegate, long hash) throws Exception
Exception
public boolean applyCallerPointcuts(javassist.CtClass clazz, ClassAdvisor advisor) throws javassist.CannotCompileException
javassist.CannotCompileException
protected boolean convertReferences(javassist.CtClass clazz, ClassAdvisor clazzAdvisor) throws Exception
Exception
protected boolean shouldNotTransform(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
public boolean transform(javassist.CtClass clazz, ClassAdvisor advisor)
public List<javassist.CtConstructor> getConstructors(javassist.CtClass clazz)
public static List<javassist.CtField> getAdvisableFields(javassist.CtClass clazz) throws javassist.NotFoundException
javassist.NotFoundException
protected javassist.CtMethod createInvokeMethod(javassist.CtClass clazz) throws javassist.CannotCompileException
javassist.CannotCompileException
public javassist.CtClass forName(String name) throws javassist.NotFoundException
javassist.NotFoundException
public javassist.CtClass forName(javassist.ClassPool pool, 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<JoinpointStatusUpdate> 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 static void addSyntheticAttribute(javassist.CtMethod method)
public static void addSyntheticAttribute(javassist.bytecode.MethodInfo info)
public static void addSyntheticAttribute(javassist.CtConstructor ctor)
public static void addSyntheticAttribute(javassist.CtField field)
public void convertProcessedClasses(HotSwapper hotSwapper, javassist.CtClass clazz, Collection<javassist.CtField> fieldReads, Collection<javassist.CtField> 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
|
JBoss AOP Parent POM 2.2.2.GA | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |