here it is (can be cleaned up a bit, but for the sake of understanding the concept it's ok):
Code:
private Method getInterceptedMethod(ProceedingJoinPoint pjp) {
Signature signature = pjp.getSignature();
Class<? extends Object>[] args = new Class[pjp.getArgs().length];
int i = 0;
for (Object o : pjp.getArgs()) {
args[i] = o.getClass();
i++;
}
try {
return signature.getDeclaringType().getDeclaredMethod(signature.getName(), args);
} catch (Exception e) {
throw new RuntimeException(e.getMessage());
}
}