jMoniterEventPattern_Jayfreeman - RV'04 Preliminary Version...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
RV’04 Preliminary Version jMonitor: Java Runtime Event Specification and Monitoring Library Murat Karaorman 1 Texas Instruments, Inc. 315 Bollay Drive, Santa Barbara, California USA 93117 Jay Freeman 2 College of Creative Studies University of California Santa Barbara, California USA 93106 Abstract jMonitor is a pure Java library and runtime utility for specifying event patterns and associating them with user provided event monitors that get called when the specified runtime events occur during the execution of legacy Java applications. jMonitor APIs define an event specification abstraction layer allowing programmers to design event patterns to monitor runtime execution of legacy Java applications. jMonitor instrumentation works at the Java bytecode level and does not require the presence of source code for the Java application that is being monitored. jMonitor overloads the dynamic class loader and takes the event specification and monitors (in the form of Java class files) as additional arguments when launching the target Java application. The class bytecodes of the monitored Java program are instrumented on the fly by the jMonitor class loader according to the needs of the externally specified jMonitor event patterns and event monitors. Key words: Aspect-oriented programming, event monitoring, byte-code instrumentation, runtime verification, jMonitor. 1 Introduction jMonitor is a pure Java library and runtime utility which allows programmers to specify event patterns to monitor runtime execution of legacy Java applica- tions. jMonitor works by overloading the dynamic class loader. The jMonitor 1 Email: [email protected] 2 Email: [email protected] This is a preliminary version. The final version will be published in Electronic Notes in Theoretical Computer Science URL:
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Karaorman and Freeman class loader instruments the class bytecodes of the monitored Java program on the fly according to the externally specified event patterns and event mon- itors. jMonitor instruments class bytecodes directly without requiring the source code of the monitored Java application. During the execution of an instrumented application, each Java bytecode instruction that matches any of the specified event patterns triggers the call of one or more associated monitor methods. The monitor methods get called with the following runtime context information regarding the triggering event: the type of event, its target object, the call stack representing the method in which the event occurred, and the arguments to the method which collectively defines the full call context when the event occurred. jMonitor events correspond to fundamental Java programming abstrac- tions such as reading or writing of a field in a class, method invocation, method return or throw of an exception, and creation of a new object or array. Each event is also qualified with a Java application context such as the name of the field or the method and the names of the class and method context. The names are specified as strings representing POSIX compliant regular expressions.
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 09/17/2009 for the course CMPE 273 taught by Professor Shim during the Fall '09 term at San Jose State University .

Page1 / 20

jMoniterEventPattern_Jayfreeman - RV'04 Preliminary Version...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online