This is the README for EAOP, version 1.0 (19 December 2002) 1. Overview =========== This is the first public distribution of the research prototype for Event-based Aspect-Oriented Programming (EAOP), hosted at http://www.emn.fr/info/ocm/aop/eaop EAOP 1.0 is a general and powerful approach to AOP with the following characteristics: 1. Expressive crosscuts: execution points can be represented by events and crosscuts can be expressed which denote arbitrary relations between events. 2. Explicit aspect composition: Aspects may be combined using a (extensible) set of aspect composition operators. 3. Aspects of aspects: Aspects may be applied to other aspects. 4. Dynamic aspect management: Aspects may be instantiated, composed and destroyed at runtime. The tool provides a testbed for the experimentation of aspect languages. As such, it does not provide specialized languages for pointcuts and advice (such as AspectJ) but offers a framework for the definition of arbitrary aspects. This version provides EAOP support for non-distributed applications. The distribution contains the complete (GPL-licensed) source code, several examples and rudimentary documentation. More information (essentially in form of research articles) about the EAOP approach can be found on the homepage cited above. 2. Distribution =============== After having extracted the archive, the distribution consists of four directories, a makefile, an Ant build file, this file and the file GPL.txt: - fr: contains the EAOP source code - examples: three examples: e-shop (examples/javazon), cflow (examples/cflow) and profiling (examples/profiling) - doc: documentation (entry point: index.html) - lib: library of RECODER transformation tool - makefile (for make, gmake), build.xml (for ant) Build files containing targets for compilation (compile, eaop), cleaning up (clean), API documentation (javadoc), and examples (javazon, cflow, profiling) - GPL.txt: GNU General Public License 3. Software dependencies ======================== This tool has been tested (and requires) the following software configuration: - JDK 1.4 (http://java.sun.com; mandatory, used for application compilation and execution; not bundled with the distribution). - RECODER 0.72 (http://sourceforge.net/projects/recoder; mandatory, used for source code instrumentation; library bundled with the distribution) - ANT 1.5.1 (http://jakarta.apache.org/ant; optional, needed for ant build mechanism; not bundled with the distribution) - GNU MAKE 3.79.1 (http://gnu.org; optional, needed for gmake build mechanism; not bundled with the distribution) 5. Copyright, license and disclaimer of warranty ================================================ EAOP is "cardware" and licensed under the GNU General Public License (cf. file GPL.txt). Disclaimer of warranty: THIS SOFTWARE IS PROVIDED AS IS AND WITHOUT ANY WARRATY. (c) 2002; Remi Douence, Mario Sudholt 5. Authors ========== Rémi Douence, Mario Südholt http://www.emn.fr/{douence,sudholt} {douence,sudholt}@emn.fr OBASCO group Ecole des Mines de Nantes/Inria France