| import org.aspectj.lang.*; |
| |
| aspect GetTiming { |
| |
| // static final void println(String s){ System.out.println(s); } |
| |
| // pointcut allExecs(): !within(GetTiming) && cflow(this(com.realm.arch.proxy.PageProxyServlet)) && execution(* *(..)); |
| |
| pointcut allExecs(): |
| |
| // !within(GetTiming) |
| !withincode(void org.apache.jcs.utils.log.Logger.*(..)) |
| && !withincode(void org.apache.jcs.utils.log.Logger.*(..)) |
| && (cflow(this(org.apache.jcs.engine.control.Cache)) |
| // || cflow(this(org.apache.jcs.engine.group.GroupCache)) |
| ) |
| // && !withincode(* *.getValueObj(..)) |
| // |
| // && execution(* *(..)); |
| |
| && execution(* *(..)); |
| |
| |
| Object around(): allExecs() { |
| long start = System.currentTimeMillis(); |
| String s = thisJoinPointStaticPart.getSignature().getName() |
| + " in class: " |
| + thisJoinPointStaticPart.getSignature().getDeclaringType().getName(); |
| //+ printParameters(thisJoinPoint); |
| Object result = proceed(); |
| long delta = System.currentTimeMillis() - start; |
| if (delta >= 0) { |
| System.out.println(delta+ " ms: "+s); |
| } |
| return result; |
| } |
| |
| /* |
| static private void printParameters(JoinPoint jp) { |
| System.out.println("Arguments: " ); |
| Object[] args = jp.getArgs(); |
| String[] names = ((CodeSignature)jp.getSignature()).getParameterNames(); |
| Class[] types = ((CodeSignature)jp.getSignature()).getParameterTypes(); |
| for (int i = 0; i < args.length; i++) { |
| System.out.println(" " + i + ". " + names[i] + |
| " : " + types[i].getName() + |
| " = " + args[i]); |
| } |
| } |
| */ |
| |
| } |