On 23 Dec 2009, at 20:31, Ales Justin wrote:I could also volunteer to work on removing AOP dependencies that currently exist for some components.With your AOP background, I think you would be a perfect fit to do this. I don't think we actually use any direct AOP proxying. We mostly "abuse" AOP for lifecycle callbacks. e.g. @JMX or @JNDI usageI think you're right, a quick look at AS trunk shows the main bindings to come from messaging (which I assume is compile-time woven?), ejb 3 (which uses the domains to construct the containers), and this in bootstrap/aop.xml: <bean name="AspectManager" class="org.jboss.aop.deployers.AspectManagerJDK5"> <constructor> <parameter><![CDATA[ <aop> <aspect name="mainDeployer" class="org.jboss.profileservice.aop.MainDeployerAspect"/> <bind pointcut="execution(* $instanceof{org.jboss.deployers.spi.deployment.MainDeployer}->process(..))"> <advice name="process" aspect="mainDeployer"/> </bind> <aspect name="persist" class="org.jboss.profileservice.aop.PersistAspect"/> <bind pointcut="execution(* $instanceof{org.jboss.managed.api.ManagedProperty}->setValue(..))"> <advice name="setValue" aspect="persist"/> </bind> </aop>]]> </parameter> </constructor> I think Scott can shed some light on these aspects, but IIRC proxies for these are created by explicitly calling AOPProxyFactory since what is intercepted is not installed as MC beans.