`
EAOP User Manual
EAOP User Manual
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.
Development of an EAOP application requires the following steps:
- Write the base program to which aspects are applied.
- 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.
- 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). - 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).
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:
- JDK 1.4 (mandatory, used for
application compilation and execution; not bundled with the
distribution).
- Recoder
0.72 (mandatory, used for source code instrumentation; library
bundled with the distribution)
- Ant 1.5.1
(optional, needed for ant build mechanism; not bundled with the
distribution).
- GNU MAKE 3.79.1
(optional, needed for gmake build mechanism; not bundled with the
distribution).
EAOP, version 1.0, 19 December 2002.