Conclusion
In this article, I have replaced a hard-coded solution with one that uses meta-programming based on annotations and instrumentation. Although I've eliminated the need for any extra steps in our build process, my solution still has a number of limitations. In the next installment, I will explore a completely different implementation that uses thread sampling, and then combine these two techniques to create a solution that gives the best features of each. I will also discuss a number of additional requirements, including a progress bar and dynamic status messages.Read Attribute-Oriented Programming with Java 1.5, Part 1
Not another AOP! ;)