J | ava | A | spect | C | omponents |
Note: since JAC is rapidly evolving, publications may refer to prior releases and present small differencies with the actual framework. However, the underlying ideas are stable.
JAC: A Flexible Framework for AOP in Java.
Renaud Pawlak, Lionel Seinturier, Laurence Duchien, Gérard
Florin, Reflection'01,
Kyoto, Japan. PS
Abstract: This paper presents some recurent issues that arise when programming aspect-oriented applications and shows how the JAC core mecanisms solve these issues. It presents an aspect-composer that is able to group composition rules that usually crosscut all the aspects.
Dynamic wrappers: handling the composition issue with JAC
Renaud Pawlak, Lionel Seinturier, Laurence Duchien, Gérard
Florin, TOOLS
2001, Santa-Barbara CA, USA. PS
Abstract: Modern applications, and especially distributed ones, most of the time need exibility and dynamic evolution. These goals can be partially reached with separation of concerns. However, a static approach is not sufficient when trying to get dynamic adaptation during the application execution-time. In this paper, we present the JAC framework that meets dynamic adaptation by using the notions of dynamic wrappers in order to achieve separation of concerns for non-functional programs, and of wrapping controllers to implement the composition of wrappers (maybe coming from different programmers) at wrap-time and at call-time.
JAC Milestone 2001
L. Seinturier, R. Pawlak, L. Duchien, G. Florin
LIP6 research reports, 29 pages - Novembre/November 2001
Abstract: JAC (Java Aspect Components) is a framework for aspect-oriented programming in Java. It is developed as a joint research project between the CEDRIC-CNAM and LIP6 computer science laboratories. This report gives a snapshot of the project as of September 2001. Unlike languages such as AspectJ which are mostly class-based, JAC is object-based and does not require any language extensions to Java. It uses the Javassist class load-time MOP. An aspect program in JAC is a set of aspect objects that can be dynamically deployed and undeployed on top of running application objects. Aspect objects may define three kinds of aspect methods: wrapping methods (that wrap application methods and provide the ability to run code before and after the wrapped methods), role methods (that add new functionalities to application objects), and exception handlers. The aspects composition issue is handled through a well-defined wrapping controller that specifies for each wrapped object at wrap-time, runtime or both, the execution order of aspect objects.
A position paper on AOP modeling in UML, accepted at the AO modeling with UML workshop at the AOSD 2002 conference
Here is a longer version.
Présentation du groupe CAOLAC et de JAC. Journée PRO 2001, Toulouse (in French). PDF
Le 01/04/2002, le magazine Développeur
Référence publie un article consacré à JAC.
Le
consulter (format pdf)