JBoss AOP applies the optimal solution according to the specific case. This means that:
- at compile, it checks class by class, verifying all bindings and aspect that apply to
that class, and weaving its code. In this case, weaving on a per aspect basis would be
costly, because it would force JBoss AOP to weave a single class more than once.
- at load time, it also checks the classes as they become loaded in the jvm. This is also
the best solution because, as in the previous case, doing it the other way would force
JBoss AOP to process a class more than once. And trying to figure out all classes afected
by a specific class would force the load of all classes, which is not what we want
- at runtime (hotswap), JBossAOP weaves at a per dynamic operation basis. This means that,
if you add one or more Binding on a single dynamic aop operation, JBoss AOP will first
define all join points affected, and, only after this, perform the weaving of the affected
classes. Plus, on JBoss AOP there is no flag involved, so, you won't have the
unsetting flag cost if you use JBoss AOP in this case.
- at runtime (without hotswap) in this case, the class code has already been weaved, so
JBoss AOP just adds the advices to the appropriete advice stacks
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3994944#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...