[jboss-cvs] JBossCache/src-50/resources ...
Ben Wang
bwang at jboss.com
Sun Sep 24 04:10:57 EDT 2006
User: bwang
Date: 06/09/24 04:10:57
Added: src-50/resources pojocache-aop.xml
Removed: src-50/resources jboss-aop.xml
Log:
Renamed jboss-aop.xml to pojocache-aop.xml
Revision Changes Path
1.1 date: 2006/09/24 08:10:57; author: bwang; state: Exp;JBossCache/src-50/resources/pojocache-aop.xml
Index: pojocache-aop.xml
===================================================================
<?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
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}->*)" />
</aop>
More information about the jboss-cvs-commits
mailing list