I am about to look into whether refactoring the AspectManager/Domains is possible, and
here are my initial thoughts.
One problem with the current way the AspectManager/Domains work, which has been bugging me
for ages, is that there is no interface, we are working on the plain implementing classes.
This becomes a problem when working with PER_INSTANCE aspects in the new weaving model.
These require access to the instance advisor, which is backed by an instance domain. An
instance domain is quite costly to create, since it has extends AspectManager. Although I
was able to improve performance by making some of these maps lazy initialise, it still
slows things down considerably. I want to update the current aop trunk to have an
AOPManager interface (with the same methods as AspectManager/Domain) and to use this with
AOP 2.0. In most cases the creation of these domains are unnecessary, since in the case of
PER_INSTANCE aspects we are just reading data, i.e. the data is the same as the parent
data. Basically the idea is to replace the initial domains for Class- and InstanceAdvisors
with something that is more lightweight that just delegates onto the parent AOPManager
UNTIL we add some dynamic information to the current domain.
The old AspectManager/Domain's will become facades onto the new structures, so that
code woven with AOP 1.5.x will still be usable with the new structures, and I will provide
a new way of accessing the main AOPManager singleton. AspectManager.instance() will still
exist, but be deprecated.
I'll flesh out this thread once I start looking into this a bit more.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4064041#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...