1 package com.atlassian.spring.interceptors;
2
3 import com.atlassian.util.profiling.ProfilingUtils;
4 import com.atlassian.util.profiling.UtilTimerStack;
5 import org.aopalliance.intercept.MethodInterceptor;
6 import org.aopalliance.intercept.MethodInvocation;
7
8
9
10
11 public class SpringProfilingInterceptor implements MethodInterceptor
12 {
13 public Object invoke(MethodInvocation invocation) throws Throwable
14 {
15 String name = "AOP: " + ProfilingUtils.getJustClassName(invocation.getMethod().getDeclaringClass()) + "." + invocation.getMethod().getName() + "()";
16
17 UtilTimerStack.push(name);
18 try
19 {
20 return invocation.proceed();
21 }
22 finally
23 {
24 UtilTimerStack.pop(name);
25 }
26 }
27 }