<?xml version="1.0" encoding="UTF-8"?>
<aop>

	<aspect class="org.jboss.test.aop.extender.SuperCallAspect"/>
	<interceptor class="org.jboss.test.aop.extender.ConstructionInterceptor"/>
   <prepare expr="all(org.jboss.test.aop.extender.Base)"/>
   <prepare expr="all(org.jboss.test.aop.extender.Extender)"/>
   <bind pointcut="execution(* org.jboss.test.aop.extender.ChildBase->updateBase())">
      <interceptor class="org.jboss.test.aop.extender.ExtenderInterceptor"/>
   </bind>

   <bind pointcut="execution(* org.jboss.test.aop.extender.Base->setBase(..))">
      <interceptor class="org.jboss.test.aop.extender.ExtenderInterceptor"/>
   </bind>

   <bind pointcut="execution(* org.jboss.test.aop.extender.ChildExtender->*(..))">
      <interceptor class="org.jboss.test.aop.extender.ExtenderInterceptor"/>
   </bind>

   <bind pointcut="execution(* org.jboss.test.aop.extender.InfantBase->*(..))">
      <interceptor class="org.jboss.test.aop.extender.ExtenderInterceptor"/>
   </bind>

   <bind pointcut="execution(* $instanceof{org.jboss.test.aop.extender.Base}->superCall())">
   	<advice aspect="org.jboss.test.aop.extender.SuperCallAspect" name="invoke"/>
   </bind>
   <bind pointcut="execution(* org.jboss.test.aop.extender.Base->superCall())">
   	<advice aspect="org.jboss.test.aop.extender.SuperCallAspect" name="invoke"/>
   </bind>
   <bind pointcut="construction(org.jboss.test.aop.extender.Base->new())">
   	<interceptor-ref name="org.jboss.test.aop.extender.ConstructionInterceptor"/>
   </bind>
   <bind pointcut="construction(org.jboss.test.aop.extender.SubBase->new())">
   	<interceptor-ref name="org.jboss.test.aop.extender.ConstructionInterceptor"/>
   </bind>
</aop>
