In this paper we introduce JMSeq, a Java-based tool for monitoring sequences of method calls. JMSeq provides a simple but expressive language to specify the observables of a Java program in terms of sequences of possibly nested method calls. Similar to many monitoring-oriented environments, verification in JMSeq is done at runtime; unlike all other approaches based on aspect-oriented programming, JMSeq uses code annotation rather than instrumentation, and therefore is suitable for component-based software verification.
Nobakht, B., Boer, F. S. D., Bonsangue, M. M., Gouw, S. D., & Jaghoori, M. M. (2014). Monitoring method call sequences using annotations. Science of computer programming, 94(pt.3), 362-378. https://doi.org/10.1016/j.scico.2013.11.030