Package fr.ifremer.isisfish.aspect
Class AspectJWeavingAdaptor
java.lang.Object
org.aspectj.weaver.tools.WeavingAdaptor
fr.ifremer.isisfish.aspect.AspectJWeavingAdaptor
- All Implemented Interfaces:
org.aspectj.bridge.IMessageContext
public class AspectJWeavingAdaptor
extends org.aspectj.weaver.tools.WeavingAdaptor
Cette classe étend
WeavingAdaptor
pour avoir une instance personnalisée du champ WeavingAdaptor.weaver
.
Toutes la logique consiste ensuite à pouvoir appeler le code weaver.weave(wcp);
pour pouvoir déployer un
aspect à l'execution dans le weaver
qui servira ensuite à "aspectiser une classe" via la méthode
WeavingAdaptor.weaveClass(String, byte[])
.
Elle utilise pour l'instant de l'introspection agressive pour acceder aux attributs privés de la classe parentes et
les rendre visible.
TODO : au lieu d'ajouter à la demande des aspects, on pourrait les ajouters en parmanence, mais en les activant de
facon conditionnelle (if() cutpoint).
A tester. Il est possible que sans le cas d'isis, une classe non aspectisée soit plus performante qu'une classe
dont les aspects ne sont pas activés.
Voir la discussion : http://aspectj.2085585.n4.nabble.com/Runtime-weaving-without-agent-tp4650837p4650849.html- Since:
- 4.2.0.0
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.weaver.tools.WeavingAdaptor
org.aspectj.weaver.tools.WeavingAdaptor.WeavingAdaptorMessageHolder, org.aspectj.weaver.tools.WeavingAdaptor.WeavingAdaptorMessageWriter
-
Field Summary
Modifier and TypeFieldDescriptionprotected ClassLoader
protected org.aspectj.weaver.CrosscuttingMembersSet
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
ConstructorDescriptionAspectJWeavingAdaptor
(ClassLoader parentLoader, org.aspectj.weaver.tools.WeavingClassLoader loader) -
Method Summary
Methods inherited from class org.aspectj.weaver.tools.WeavingAdaptor
accept, addURL, createMessageHandler, debug, disable, dump, enable, ensureDelegateInitialized, error, error, getContextId, getDumpDir, getFullClassPath, getMessageHandler, getMessageHolder, info, initializeCache, isEnabled, setActiveProtectionDomain, setMessageHandler, shouldDump, warn, warn, weaveClass, weaveClass
-
Field Details
-
parentLoader
-
xcutSet
protected org.aspectj.weaver.CrosscuttingMembersSet xcutSet
-
-
Constructor Details
-
AspectJWeavingAdaptor
public AspectJWeavingAdaptor(ClassLoader parentLoader, org.aspectj.weaver.tools.WeavingClassLoader loader)
-
-
Method Details
-
deploy
-
prepare
public void prepare()Mark bcel weaver ready for weaving classes.
-