[jboss-cvs] JBossCache/examples/PojoCache/annotated50/src ...
Ben Wang
bwang at jboss.com
Thu Sep 21 12:12:18 EDT 2006
User: bwang
Date: 06/09/21 12:12:18
Modified: examples/PojoCache/annotated50/src jboss-aop.xml
Log:
Updated to 2.0 apis
Revision Changes Path
1.2 +148 -0 JBossCache/examples/PojoCache/annotated50/src/jboss-aop.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: jboss-aop.xml
===================================================================
RCS file: /cvsroot/jboss/JBossCache/examples/PojoCache/annotated50/src/jboss-aop.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- jboss-aop.xml 5 Feb 2006 10:42:09 -0000 1.1
+++ jboss-aop.xml 21 Sep 2006 16:12:18 -0000 1.2
@@ -1,6 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?>
<aop>
+ <!--
+ This defines the PojoCache 2.0 interceptor stack. Unless necessary, don't modify the stack here!
+ -->
+ <!-- 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"/>
+ <!-- NOTE: Comment this out during production!! MockupTx is for testing only. -->
+ <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"/>
+ <!-- NOTE: Comment this out during production!! MockupTx is for testing only. -->
+ <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>
+
+ <!--
+ The following section should be READ-ONLY!!
+ -->
+ <!-- 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>
+
+
+ <!-- This is declaration file for JDK50 annotation.
+ Idea is user will then need only to annotate like:
+ @org.jboss.cache.pojo.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 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>
+
+
+ <!-- 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
@@ -17,4 +163,6 @@
or an interface. All sub-classes or interface implementors will be instrumeneted.
-->
<prepare expr="field(* $instanceof{@org.jboss.cache.aop.annotation.InstanceOfPojoCacheable}->*)" />
+
+
</aop>
More information about the jboss-cvs-commits
mailing list