|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jboss.aop.AspectManager
This singleton class manages all pointcuts and metadata. Coders can access it via the AspectManager.instance() method.
It is also the middle man between the ClassLoader and the actual class instrumentation as well. App Developers that want to create and apply, interceptors, pointcuts, or metadata at runtime can also use this object to do that.
Field Summary | |
protected WeakHashMap |
advisors
|
protected LinkedHashMap |
annotationIntroductions
|
protected LinkedHashMap |
annotationOverrides
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
aspectDefinitions
|
protected LinkedHashMap |
bindings
|
protected boolean |
call
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
cflowStacks
|
static ClassLoaderValidation |
classLoaderValidator
|
protected LinkedHashMap |
classMetaData
|
protected Hashtable |
classMetaDataLoaders
|
protected javassist.ClassPool |
classpool
|
static ClassPoolFactory |
classPoolFactory
|
protected boolean |
construction
|
protected HashMap |
containers
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
convertableReference
|
protected HashMap |
declares
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
dynamicCFlows
|
protected DynamicAOPStrategy |
dynamicStrategy
|
protected ArrayList |
exclude
|
protected boolean |
execution
|
protected boolean |
get
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
hasConstructorInterception
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
hasFieldInterception
|
protected ArrayList |
ignore
|
protected ClassExpression[] |
ignoreExpressions
|
protected ArrayList |
include
|
protected HashMap |
interceptorFactories
|
protected HashMap |
interceptorStacks
|
protected LinkedHashMap |
interfaceIntroductions
|
protected static AspectManager |
manager
|
static AspectNotificationHandler |
notificationHandler
This is a callback object that receives events about new pointcuts, interceptors and metadata. |
static boolean |
optimize
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
perVMAspects
|
protected LinkedHashMap |
pointcutInfos
|
protected LinkedHashMap |
pointcuts
|
protected LinkedHashMap |
precedenceDefs
|
static boolean |
prune
|
protected HashMap |
registeredCLs
|
protected boolean |
set
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
skipConstructorInterception
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
skipConvertableReference
|
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap |
skipFieldInterception
|
protected PrecedenceDefEntry[] |
sortedPrecedenceDefEntries
|
static boolean |
suppressReferenceErrors
Suppress when a class cannot be found that a class references This may happen if code in a class references something and the class is not in the classpath. |
static boolean |
suppressTransformationErrors
|
protected boolean |
transformationStarted
|
protected LinkedHashMap |
typedefs
|
protected HashMap |
ucl2classes
|
static boolean |
verbose
logging switch. |
protected boolean |
within
|
protected boolean |
withincode
|
Constructor Summary | |
AspectManager()
|
Method Summary | |
void |
addAdviceStack(AdviceStack stack)
Add a referencable InterceptorStack( <stack> ) |
void |
addAnnotationIntroduction(AnnotationIntroduction pointcut)
Register an annotation introduction |
void |
addAnnotationOverride(AnnotationIntroduction pointcut)
Register an annotation introduction |
void |
addAspectDefinition(AspectDefinition def)
|
void |
addBinding(AdviceBinding binding)
Add an interceptor pointcut with a given name |
void |
addCFlowStack(CFlowStack stack)
|
void |
addClassMetaData(ClassMetaDataBinding meta)
|
void |
addClassMetaDataLoader(String group,
ClassMetaDataLoader loader)
Every <class-metadata> tag corresponds to a ClassMetaDataLoader. |
void |
addConstructionInterceptionMarker(String classname)
|
void |
addContainer(DomainDefinition def)
|
void |
addDeclare(DeclareDef declare)
|
void |
addDynamicCFlow(String name,
DynamicCFlowDefinition cflow)
|
void |
addFieldInterceptionMarker(String classname)
|
void |
addInterceptorFactory(String name,
InterceptorFactory factory)
Add an interceptor factory that can be referenced by name. |
void |
addInterfaceIntroduction(InterfaceIntroduction pointcut)
Register an introduction pointcut |
void |
addPointcut(Pointcut pointcut)
Add an interceptor pointcut with a given name |
void |
addPrecedence(PrecedenceDef precedenceDef)
|
void |
addTypedef(Typedef def)
|
protected void |
applyInterfaceIntroductions(Advisor advisor,
Class clazz)
|
protected void |
applyInterfaceIntroductions(ClassAdvisor advisor,
javassist.CtClass clazz)
|
protected void |
attachMetaData(ClassAdvisor advisor,
Class clazz)
|
protected boolean |
attachMetaData(ClassAdvisor advisor,
javassist.CtClass clazz,
boolean addAdvisor)
|
void |
clearUnregisteredClassLoaders()
This method will check to see if a register classloader has been undeployed (as in JBoss) |
boolean |
convertReference(String classname)
|
boolean |
excludeClass(String classname)
|
ClassAdvisor |
findAdvisor(Class clazz)
|
ClassMetaDataLoader |
findClassMetaDataLoader(String group)
Every <class-metadata> tag corresponds to a ClassMetaDataLoader. |
javassist.ClassPool |
findClassPool(ClassLoader cl)
|
AdviceStack |
getAdviceStack(String name)
Find an interceptor stack referenced by name ( <stack> ) |
ClassAdvisor |
getAdvisor(Class clazz)
This method is called by the aspectized class when it is loaded This causes all initialization of interceptors for ClassAdvisor |
Advisor |
getAdvisor(String name)
|
ClassAdvisor |
getAdvisorIfAdvised(Class clazz)
|
Map |
getAdvisors()
|
List |
getAnnotationIntroductions()
|
List |
getAnnotationOverrides()
|
AspectDefinition |
getAspectDefinition(String name)
|
Map |
getAspectDefinitions()
|
LinkedHashMap |
getBindings()
|
CFlowStack |
getCFlowStack(String name)
|
Map |
getCflowStacks()
|
Map |
getClassMetaData()
|
Map |
getClassMetaDataLoaders()
|
DomainDefinition |
getContainer(String name)
|
Iterator |
getDeclares()
|
DynamicAOPStrategy |
getDynamicAOPStrategy()
Returns the dynamic aop strategy to be used. |
DynamicCFlow |
getDynamicCFlow(String name)
|
Map |
getDynamicCFlows()
|
ArrayList |
getExclude()
|
ArrayList |
getIgnore()
|
ArrayList |
getInclude()
|
Map |
getInterceptorFactories()
|
InterceptorFactory |
getInterceptorFactory(String name)
Find the interceptor factory that can be referenced by name. |
Map |
getInterceptorStacks()
|
InterfaceIntroduction |
getInterfaceIntroduction(String name)
Retrieve an introduction pointcut of a certain name |
Map |
getInterfaceIntroductions()
|
Object |
getPerVMAspect(AspectDefinition def)
|
Object |
getPerVMAspect(String def)
|
Map |
getPerVMAspects()
|
Pointcut |
getPointcut(String name)
Find a pointcut of with a given name |
LinkedHashMap |
getPointcutInfos()
Returns the PointcutInfo of all registered pointcuts. |
LinkedHashMap |
getPointcuts()
|
LinkedHashMap |
getPrecedenceDefs()
|
Map |
getRegisteredCLs()
|
PrecedenceDefEntry[] |
getSortedPrecedenceDefEntries()
|
ClassAdvisor |
getTempClassAdvisor(javassist.CtClass clazz)
|
ClassAdvisor |
getTempClassAdvisorIfNotExist(Class clazz)
|
Typedef |
getTypedef(String name)
|
Map |
getTypedefs()
|
boolean |
ignoreClass(String classname)
|
boolean |
includeClass(String classname)
|
static AspectManager |
instance()
|
boolean |
isAdvisorRegistered(Advisor advisor)
Checks to see if an Advisor represents a class that should have been undeployed. |
boolean |
isCall()
|
boolean |
isConstruction()
|
boolean |
isExecution()
|
boolean |
isGet()
|
boolean |
isNonAdvisableClassName(String classname)
|
boolean |
isSet()
|
boolean |
isWithin()
|
boolean |
isWithincode()
|
protected void |
registerClass(Class clazz)
|
javassist.ClassPool |
registerClassLoader(ClassLoader ucl)
|
void |
removeAnnotationIntroduction(AnnotationIntroduction pointcut)
remove an annotation pointcut |
void |
removeAnnotationOverride(AnnotationIntroduction pointcut)
remove an annotation pointcut |
void |
removeAspectDefinition(String name)
|
void |
removeBinding(String name)
Remove an interceptor pointcut with a given name |
void |
removeBindings(ArrayList binds)
|
void |
removeCFlowStack(String name)
|
void |
removeClassMetaData(String name)
|
void |
removeClassMetaDataLoader(String group)
Remove a loader for a given group |
void |
removeContainer(String name)
|
void |
removeDeclare(String name)
|
void |
removeDynamicCFlow(String name)
|
void |
removeInterceptorFactory(String name)
Remove an interceptor factory that can be referenced by name. |
void |
removeInterceptorStack(String name)
Remove a referencable InterceptorStack( <stack> ) |
void |
removeInterfaceIntroduction(String name)
remove an introduction pointcut of a certain name |
void |
removePointcut(String name)
Remove an interceptor pointcut with a given name |
void |
removePrecedence(String name)
|
void |
removeTypedef(String name)
|
void |
setBindings(LinkedHashMap bindings)
|
void |
setDynamicAOPStrategy(DynamicAOPStrategy strategy)
Sets the dynamic aop strategy to be used. |
void |
setExclude(ArrayList exclude)
|
void |
setIgnore(ArrayList ignore)
|
void |
setInclude(ArrayList include)
|
boolean |
shouldSkipConstruction(String classname)
|
boolean |
shouldSkipFieldAccess(String classname)
|
void |
skipConstruction(String classname)
|
void |
skipFieldAccess(String classname)
|
void |
skipReference(String classname)
|
byte[] |
transform(ClassLoader loader,
String className,
Class classBeingRedefined,
ProtectionDomain protectionDomain,
byte[] classfileBuffer)
This is the hook for ClassLoaders that want to instrument their classes with AOP This would be called during a findClass or loadClass call. |
byte[] |
translate(String className,
ClassLoader loader)
This is to be backward compatible with JBoss 3.2.3 Translator interface |
byte[] |
translate(String className,
ClassLoader loader,
byte[] classfileBuffer)
This is to be backward compatible with JBoss 3.2.3 Translator interface |
void |
unregisterClassLoader(ClassLoader cl)
|
protected void |
updatePointcutStats(Pointcut pointcut)
THis method is used for performance reasons. |
protected void |
updateStats(PointcutStats stats)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected HashMap registeredCLs
protected HashMap ucl2classes
protected WeakHashMap advisors
protected javassist.ClassPool classpool
protected LinkedHashMap interfaceIntroductions
protected LinkedHashMap annotationIntroductions
protected LinkedHashMap annotationOverrides
protected LinkedHashMap bindings
protected LinkedHashMap typedefs
protected HashMap interceptorFactories
protected Hashtable classMetaDataLoaders
protected HashMap interceptorStacks
protected HashMap declares
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap cflowStacks
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap dynamicCFlows
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap aspectDefinitions
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap perVMAspects
protected ArrayList exclude
protected ArrayList include
protected ArrayList ignore
protected ClassExpression[] ignoreExpressions
protected LinkedHashMap pointcuts
protected LinkedHashMap pointcutInfos
protected boolean execution
protected boolean construction
protected boolean call
protected boolean within
protected boolean get
protected boolean set
protected boolean withincode
protected LinkedHashMap classMetaData
protected HashMap containers
protected LinkedHashMap precedenceDefs
protected PrecedenceDefEntry[] sortedPrecedenceDefEntries
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap convertableReference
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap hasFieldInterception
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap hasConstructorInterception
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap skipConvertableReference
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap skipFieldInterception
protected EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap skipConstructorInterception
protected DynamicAOPStrategy dynamicStrategy
protected boolean transformationStarted
protected static AspectManager manager
public static boolean optimize
public static boolean prune
public static ClassLoaderValidation classLoaderValidator
public static boolean verbose
public static ClassPoolFactory classPoolFactory
public static AspectNotificationHandler notificationHandler
public static boolean suppressTransformationErrors
public static boolean suppressReferenceErrors
Constructor Detail |
public AspectManager()
Method Detail |
public void addConstructionInterceptionMarker(String classname)
public void addFieldInterceptionMarker(String classname)
public void skipReference(String classname)
public boolean shouldSkipConstruction(String classname)
public boolean shouldSkipFieldAccess(String classname)
public void skipConstruction(String classname)
public void skipFieldAccess(String classname)
public boolean convertReference(String classname)
public static AspectManager instance()
public LinkedHashMap getPointcuts()
public LinkedHashMap getPointcutInfos()
PointcutInfo
of all registered pointcuts.
Contains useful information for dynamic aop operations.
LinkedHashMap
of
org.jboss.aop.pointcut.PointcutInfo
.org.jboss.aop.Pointcut.PointcutInfo
public CFlowStack getCFlowStack(String name)
public void addCFlowStack(CFlowStack stack)
public void removeCFlowStack(String name)
public DynamicCFlow getDynamicCFlow(String name)
public void addDynamicCFlow(String name, DynamicCFlowDefinition cflow)
public void removeDynamicCFlow(String name)
public ClassMetaDataLoader findClassMetaDataLoader(String group)
public void addClassMetaDataLoader(String group, ClassMetaDataLoader loader)
public void removeClassMetaDataLoader(String group)
public Map getAdvisors()
public Advisor getAdvisor(String name)
public LinkedHashMap getBindings()
public ClassAdvisor findAdvisor(Class clazz)
public ClassAdvisor getAdvisorIfAdvised(Class clazz)
public ClassAdvisor getAdvisor(Class clazz)
clazz
-
public Map getRegisteredCLs()
public void clearUnregisteredClassLoaders()
public boolean isAdvisorRegistered(Advisor advisor)
advisor
-
public javassist.ClassPool findClassPool(ClassLoader cl)
public javassist.ClassPool registerClassLoader(ClassLoader ucl)
protected void registerClass(Class clazz)
public void unregisterClassLoader(ClassLoader cl)
unregisterClassLoader
in interface org.jboss.util.loading.Translator
public ArrayList getExclude()
public void setExclude(ArrayList exclude)
public ArrayList getInclude()
public void setInclude(ArrayList include)
public ArrayList getIgnore()
public void setIgnore(ArrayList ignore)
public boolean ignoreClass(String classname)
public boolean includeClass(String classname)
public boolean excludeClass(String classname)
public boolean isNonAdvisableClassName(String classname)
public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws Exception
transform
in interface org.jboss.util.loading.Translator
Exception
public byte[] translate(String className, ClassLoader loader) throws Exception
className
- loader
-
Exception
public byte[] translate(String className, ClassLoader loader, byte[] classfileBuffer) throws Exception
className
- loader
-
Exception
public void addInterceptorFactory(String name, InterceptorFactory factory)
public void removeInterceptorFactory(String name)
public Map getInterceptorFactories()
public InterceptorFactory getInterceptorFactory(String name)
public void addPrecedence(PrecedenceDef precedenceDef)
public void removePrecedence(String name)
public LinkedHashMap getPrecedenceDefs()
public PrecedenceDefEntry[] getSortedPrecedenceDefEntries()
public void addAdviceStack(AdviceStack stack)
public void removeInterceptorStack(String name)
public AdviceStack getAdviceStack(String name)
protected boolean attachMetaData(ClassAdvisor advisor, javassist.CtClass clazz, boolean addAdvisor) throws Exception
Exception
protected void attachMetaData(ClassAdvisor advisor, Class clazz)
public ClassAdvisor getTempClassAdvisor(javassist.CtClass clazz) throws Exception
Exception
public ClassAdvisor getTempClassAdvisorIfNotExist(Class clazz)
public DomainDefinition getContainer(String name)
public void addContainer(DomainDefinition def)
public void removeContainer(String name)
public Pointcut getPointcut(String name)
public void removePointcut(String name)
public void addPointcut(Pointcut pointcut)
protected void updatePointcutStats(Pointcut pointcut)
pointcut
- protected void updateStats(PointcutStats stats)
public boolean isExecution()
public boolean isConstruction()
public boolean isCall()
public boolean isWithin()
public boolean isWithincode()
public boolean isGet()
public boolean isSet()
public void removeBinding(String name)
public void removeBindings(ArrayList binds)
public void addBinding(AdviceBinding binding)
public void removeClassMetaData(String name)
public void addClassMetaData(ClassMetaDataBinding meta)
public InterfaceIntroduction getInterfaceIntroduction(String name)
public void addInterfaceIntroduction(InterfaceIntroduction pointcut)
public void removeInterfaceIntroduction(String name)
public void addAnnotationIntroduction(AnnotationIntroduction pointcut)
public void removeAnnotationIntroduction(AnnotationIntroduction pointcut)
public List getAnnotationIntroductions()
public void addDeclare(DeclareDef declare)
public void removeDeclare(String name)
public Iterator getDeclares()
protected void applyInterfaceIntroductions(Advisor advisor, Class clazz)
protected void applyInterfaceIntroductions(ClassAdvisor advisor, javassist.CtClass clazz) throws Exception
Exception
public void addAnnotationOverride(AnnotationIntroduction pointcut)
public void removeAnnotationOverride(AnnotationIntroduction pointcut)
public List getAnnotationOverrides()
public Object getPerVMAspect(AspectDefinition def)
public Object getPerVMAspect(String def)
public void addAspectDefinition(AspectDefinition def)
public void removeAspectDefinition(String name)
public Map getAspectDefinitions()
public AspectDefinition getAspectDefinition(String name)
public void addTypedef(Typedef def) throws Exception
Exception
public void removeTypedef(String name)
public Typedef getTypedef(String name)
public Map getInterfaceIntroductions()
public Map getTypedefs()
public Map getInterceptorStacks()
public Map getClassMetaDataLoaders()
public Map getCflowStacks()
public Map getDynamicCFlows()
public Map getPerVMAspects()
public Map getClassMetaData()
public DynamicAOPStrategy getDynamicAOPStrategy()
public void setDynamicAOPStrategy(DynamicAOPStrategy strategy)
strategy
- the new dynamic aop strategy.public void setBindings(LinkedHashMap bindings)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |