public Object invoke(Invocation invocation) throws Throwable
{
MethodInvocation mi = (MethodInvocation) invocation;
Undoable undoable = (Undoable) invocation.resolveAnnotation(org.jboss.aophelper.annotation.Undoable.class);
System.out.println("callback: "+undoable.callback());
System.out.println("Class: "+mi.getTargetObject().getClass().getName());
System.out.println("Method: "+mi.getMethod().getName());
Object[] args = mi.getArguments();