` EAOP User Manual

EAOP User Manual

Overview of the user-level interface

The basic premise for usage of the EAOP tool is that the package constitutes an OO framework which facilitates the programming of EAOP applications. Hence, definition of aspects, events and control of the instrumentation is done in terms of programs which reuse, override and extend parts of the EAOP framework.

Note that version 1.0 provides EAOP support for non-distributed applications.

Main development steps

Development of an EAOP application requires the following steps:
  1. Write the base program to which aspects are applied.
  2. Write aspects using the classes in packages fr.emn.info.eaop.aspect and fr.emn.info.eaop.event. Basically, one must subclass the class fr.emn.info.eaop.aspect.Aspect and define the method definition. This method is the aspect entry point (aka. main). You can call the method nextEvent which returns the next execution event (or blocks until the next event become available). The code should check for the event value. When an action is performed (rather than to wait for the next event) the field isCrosscutting must be set (necessary for the aspect composers) to true.
  3. Configure the set of classes and methods of the application which are to be instrumented with events using the class TestInstrumentation by extending fr.emn.info.eaop.instrumentation.SelectiveInstrumentation. Within the class TestInstrumentation in TestInstrumentation.java four instrumentation options can be configured: the user files constituting the EAOP application and, the classes, method/constructors as well as aspects to be instrumented (see the documentation of fr.emn.info.eaop.instrumentation.SelectiveInstrumentation for details).
  4. Finally, in the method main, create instances of aspects, make a tree of them, and assign its root reference to Monitor.monitor.aspects.
Remark on the directory structure for development of EAOP applications: Since the EAOP tool implements instrumentation by source-code transformation using the 3rd party tool Recoder and relies on a closed-world assumption, all source-code must be read during compilation. Since there are no means for users to configure the corresponding paths in version 1.0, it is necessary to build EAOP applications within the current directory structure (packages under fr/.. can not be moved and user files must be located in a directory under examples/XXX/src. Once built, EAOP applications can be executed anywhere (provided search paths, classpaths, are set up correctly, see the build files for more information).

License and software dependencies

The EAOP distribution is released as cardware under the GPL.

(c) 2002 (for all not license-related issues) Rémi Douence, Mario Südholt; OBASCO group; École des Mines de Nantes/INRIA; France.

It has been tested with and requires availability of several other software systems:


EAOP, version 1.0, 19 December 2002.