Caros colegas,
Estou iniciando meus estudos sobre AOP e estou com a seguinte dúvida.
Fiz um aspecto para monitorar o tempo de execução de todos os métodos dentro de um determinado pacote.
package aspectos;
public aspect Monitor {
long inicio;
long fim;
pointcut trace() : execution(* classes..*.*(..));
before() : trace() {
inicio = System.currentTimeMillis();
}
after() : trace() {
fim = System.currentTimeMillis();
System.out.println( thisJoinPoint.getStaticPart().getSignature().getName() + " demorou "+ (fim-inicio));
}
}
package classes;
import javax.swing.JOptionPane;
public class A {
public void teste3(){
}
public void teste4(){
JOptionPane.showInputDialog("Vai parar?");
}
}
package classes;
public class TesteApp {
/**
* @param args
*/
public static void main(String[] args) {
A a = new A();
a.teste3();
a.teste4();
}
}
Mas obtenho como resposta algo incoerente
Como o main pode demorar menos que teste4 se este é executado dentro da main?
Será que estou desenvolvendo o aspecto de maneira errada?
Muito obrigado,