Hi All,
I've been pulling my hair out with this one for some time. I'm trying to
intercept reads and writes to an array. Reading is working really well but I cannot for
the life of me get the writes to work. Here's is mu jboss-aop.xml file:
| <?xml version="1.0" encoding="UTF-8"?>
| <aop>
| <interceptor
class="com.intuit.tax.engine.group.TSingleGroupInterceptor"/>
|
| <arrayreplacement class="com.intuit.tax.engine.group.TSingleGroup"
/>
| <prepare expr="field(*
com.intuit.tax.engine.group.TSingleGroup->R)"/>
| <prepare expr="field(*
com.intuit.tax.engine.group.TSingleGroup->B)"/>
| <prepare expr="field(*
com.intuit.tax.engine.group.TSingleGroup->S)"/>
|
| <arraybind type="READ_WRITE">
| <interceptor-ref
name="com.intuit.tax.engine.group.TSingleGroupInterceptor"/>
| </arraybind>
| </aop>
|
This calls this function within the TSingleGroupInterceptor:
| public Object invoke(Invocation invocation) throws Throwable {
|
| List<ArrayReference> refs =
ArrayRegistry.getInstance().getArrayOwners(invocation.getTargetObject());
| logger.debug("Owner is " +
refs.get(0).getRootObject().getClass().getName() );
|
| // These objects should only have a single owner
| TSingleGroup group = (TSingleGroup)refs.get(0).getRootObject();
| if ( invocation instanceof ArrayElementReadInvocation) {
| logger.debug("Read invocation");
| return invoke((ArrayElementReadInvocation) invocation, group);
| } else if (invocation instanceof ArrayElementWriteInvocation) {
| logger.debug("Write invocation");
| return invoke((ArrayElementWriteInvocation) invocation, group);
| }
| logger.debug("No match for read/write. Invocation is: " +
invocation.getClass().getName() );
| throw new RuntimeException("This interceptor is for arrays");
| }
|
Write invocation is never logged and neither is "No match for read/write".
What am I doing wrong? Can anyone help?
Thanks,
Steve
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4222717#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...