[jboss-cvs] JBossCache/src-50/resources ...

Ben Wang bwang at jboss.com
Mon Aug 21 01:06:36 EDT 2006


  User: bwang   
  Date: 06/08/21 01:06:36

  Added:       src-50/resources  jboss-aop.xml
  Log:
  moved from src
  
  Revision  Changes    Path
  1.1      date: 2006/08/21 05:06:36;  author: bwang;  state: Exp;JBossCache/src-50/resources/jboss-aop.xml
  
  Index: jboss-aop.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <aop>
     <!-- This is declaration file for JDK50 annotation.
          Idea is user will then need only to annotate like:
          @org.jboss.cache.aop.annotation.PojoCacheable
          in his POJO. There will be no need of jboss-aop.xml from user's side.
  
          For example, see either Address or Person.
     -->
  
     <!-- PojoCache 2.0 -->
     <!-- If a POJO has PojoCachable annotation, it will be asepctized. -->
     <prepare expr="field(* @org.jboss.cache.pojo.annotation.PojoCacheable->*)" />
  
     <!--
     Supports inheritance and polymorphism. It can either be a concrete class
     or an interface. All sub-classes or interface implementors will be instrumeneted.
     -->
     <prepare expr="field(* $instanceof{@org.jboss.cache.pojo.annotation.InstanceOfPojoCacheable}->*)" />
  
  
     <!-- PojoCache 1.4. Is deprecated. Will be removed in 2.1 release -->
     <!-- This is declaration file for annotation. We are using JDK1.4 now,
          so an annotationc pre-compiler is needed for JBossAop.
          See build.xml target annoc for details.
          Idea is user will then need only to annotate like:
          @@org.jboss.cache.aop.AopMarker
          in his POJO. There will be no need of jboss-aop.xml from user's side.
          Only extra step is annotation compiling. And in JDK1.5, this step
          will not be needed since the implicit annotation support.
  
          For example, see either Address or Person.
     -->
  
     <!-- If a POJO has AopMarker annotation, it will be asepctized. -->
     <prepare expr="field(* @org.jboss.cache.aop.AopMarker->*)" />
  
     <!--
     Supports inheritance and polymorphism. It can either be a concrete class
     or an interface. All sub-classes or intrface implementors will be instrumeneted.
     -->
     <prepare expr="field(* $instanceof{@org.jboss.cache.aop.InstanceOfAopMarker}->*)" />
  
  
     <!-- This is declaration file for JDK50 annotation.
          Idea is user will then need only to annotate like:
          @org.jboss.cache.aop.annotation.PojoCacheable
          in his POJO. There will be no need of jboss-aop.xml from user's side.
  
          For example, see either Address or Person.
     -->
  
     <!-- If a POJO has PojoCachable annotation, it will be asepctized. -->
     <prepare expr="field(* @org.jboss.cache.aop.annotation.PojoCacheable->*)" />
  
     <!--
     Supports inheritance and polymorphism. It can either be a concrete class
     or an interface. All sub-classes or interface implementors will be instrumeneted.
     -->
     <prepare expr="field(* $instanceof{@org.jboss.cache.aop.annotation.InstanceOfPojoCacheable}->*)" />
  
  
     <!-- PojoCache 2.0 style -->
     <!-- If a POJO has PojoCachable annotation, it will be asepctized. -->
     <prepare expr="field(* @org.jboss.cache.pojo.annotation.PojoCacheable->*)" />
  
     <!--
     Supports inheritance and polymorphism. It can either be a concrete class
     or an interface. All sub-classes or interface implementors will be instrumeneted.
     -->
     <prepare expr="field(* $instanceof{@org.jboss.cache.pojo.annotation.InstanceOfPojoCacheable}->*)" />
  
     <!-- Observer and Observable to monitor field modification -->
     <bind pointcut="
        set(* $instanceof{@org.jboss.cache.pojo.annotation.InstanceOfPojoCacheable}->*) OR
        set(* @org.jboss.cache.pojo.annotation.PojoCacheable->*)
        ">
           <interceptor class="org.jboss.cache.pojo.observable.SubjectInterceptor"/>
     </bind>
  
     <introduction class="$instanceof{@org.jboss.cache.pojo.annotation.InstanceOfPojoCacheable}">
        <mixin>
           <interfaces>org.jboss.cache.pojo.observable.Subject</interfaces>
           <class>org.jboss.cache.pojo.observable.SubjectImpl</class>
           <construction>new org.jboss.cache.pojo.observable.SubjectImpl(this)</construction>
        </mixin>
     </introduction>
  
     <introduction class="@org.jboss.cache.pojo.annotation.PojoCacheable">
        <mixin>
           <interfaces>org.jboss.cache.pojo.observable.Subject</interfaces>
           <class>org.jboss.cache.pojo.observable.SubjectImpl</class>
           <construction>new org.jboss.cache.pojo.observable.SubjectImpl(this)</construction>
        </mixin>
     </introduction>
  
     <!--
     This defines the PojoCache 2.0 interceptor stack.
     -->
     <!-- Check id range validity -->
     <interceptor name="CheckId" class="org.jboss.cache.pojo.interceptors.CheckIdInterceptor" scope="PER_INSTANCE"/>
     <!-- Track Tx undo operation -->
     <interceptor name="Undo" class="org.jboss.cache.pojo.interceptors.PojoTxUndoInterceptor" scope="PER_INSTANCE"/>
     <!-- Begining -->
     <interceptor name="Start" class="org.jboss.cache.pojo.interceptors.PojoBeginInterceptor" scope="PER_INSTANCE"/>
     <!-- Check if we need a local tx for batch processing -->
     <interceptor name="Tx" class="org.jboss.cache.pojo.interceptors.PojoTxInterceptor" scope="PER_INSTANCE"/>
     <!-- Mockup failed tx for testing -->
     <interceptor name="MockupTx" class="org.jboss.cache.pojo.interceptors.PojoFailedTxMockupInterceptor" scope="PER_INSTANCE"/>
     <!-- Perform parent level node locking -->
     <interceptor name="TxLock" class="org.jboss.cache.pojo.interceptors.PojoTxLockInterceptor" scope="PER_INSTANCE"/>
     <!-- Interceptor to perform Pojo level rollback -->
     <interceptor name="TxUndo" class="org.jboss.cache.pojo.interceptors.PojoTxUndoSynchronizationInterceptor"
                  scope="PER_INSTANCE"/>
     <!-- Interceptor to perform Pojo level rollback -->
     <interceptor name="Reentrant" class="org.jboss.cache.pojo.interceptors.MethodReentrancyStopperInterceptor"
                  scope="PER_INSTANCE"/>
     <!-- Whether to allow non-serializable pojo -->
     <interceptor name="MarshallNonSerializable" class="org.jboss.cache.pojo.interceptors.CheckNonSerializableInterceptor"
                  scope="PER_INSTANCE">
           <attribute name="marshallNonSerializable">false</attribute>
                  </interceptor>
  
     <stack name="Attach">
        <interceptor-ref name="Start"/>
        <interceptor-ref name="CheckId"/>
        <interceptor-ref name="MarshallNonSerializable"/>
        <interceptor-ref name="Tx"/>
        <interceptor-ref name="MockupTx"/>
        <interceptor-ref name="TxLock"/>
        <interceptor-ref name="TxUndo"/>
     </stack>
  
     <stack name="Detach">
        <interceptor-ref name="Start"/>
        <interceptor-ref name="CheckId"/>
        <interceptor-ref name="Tx"/>
        <interceptor-ref name="MockupTx"/>
        <interceptor-ref name="TxLock"/>
        <interceptor-ref name="TxUndo"/>
     </stack>
  
     <stack name="Find">
        <interceptor-ref name="Start"/>
        <interceptor-ref name="CheckId"/>
     </stack>
  
     <!-- This bind the jointpoint to specific in-memory operations. Currently in PojoUtil. -->
     <bind pointcut="execution(*
        @org.jboss.cache.pojo.annotation.Reentrant->toString())">
        <interceptor-ref name="Reentrant"/>
     </bind>
  
     <bind pointcut="execution(*
        org.jboss.cache.pojo.PojoUtil->@org.jboss.cache.pojo.annotation.TxUndo(..))">
        <interceptor-ref name="Undo"/>
     </bind>
  
     <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Attach(..))">
        <stack-ref name="Attach"/>
     </bind>
  
     <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Detach(..))">
        <stack-ref name="Detach"/>
     </bind>
  
     <bind pointcut="execution(* org.jboss.cache.pojo.impl.PojoCacheImpl->@org.jboss.cache.pojo.annotation.Find(..))">
        <stack-ref name="Find"/>
     </bind>
  </aop>
  
  
  



More information about the jboss-cvs-commits mailing list