|
ABSTRACT
This paper considers the difficulties linked to the static scheduling strategy of AspectJ and shows how to overcome them by turning to a more dynamic strategy, making it possible to order, cancel, and deploy aspects at runtime. We show that this more dynamic strategy can be obtained by a minor update of the semantics of AspectJ introducing the notion of current aspect group, that is, the aspects scheduled for the current join point. We show how to reflect this change at the language level and present a prototype of the resulting AspectJ variant, Dynamic AspectJ. This prototype reuses AspectJ to perform a first step of static weaving, which we complement by a second step of dynamic weaving, implemented through a thin interpretation layer. This can be seen as an interesting example of reconciling interpreters and compilers, the dynamic and the static world.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
M. Akşit, editor. Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD 2003), Boston, USA, Mar. 2003. ACM.
|
| |
2
|
The AspectJ website. http://www.eclipse.org/aspectj.
|
| |
3
|
P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: an extensible AspectJ compiler. In M. Mezini and P. L. Tarr, editors, Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD 2005), pages 87--98, Chicago, Illinois, USA, Mar. 2005. ACM.
|
| |
4
|
P. Avgustinov, E. Hajiyev, N. Ongkingco, O. de Moor, D. Sereni, J. Tibble, and M. Verbaere. Semantics of Static Pointcuts in AspectJ. In M. Hofmann and M. Felleisen, editors, Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2007), pages 11--23, Nice, France, Jan. 2007. ACM.
|
| |
5
|
J. Baker and W. C. Hsieh. Runtime aspect weaving through metaprogramming. In G. Kiczales, editor, Proceedings of the 1st International Conference on Aspect-Oriented Software Development (AOSD 2002), pages 86--95, Enschede, The Netherlands, Apr. 2002. ACM.
|
| |
6
|
O. Barzilay, Y. A. Feldman, S. Tyszberowicz, and A. Yehudai. Call and Execution Semantics in AspectJ. In G. T. Leavens, C. Clifton, and R. Lämmel, editors, FOAL 2004 Proceedings - Foundations of Aspect-Oriented Languages - Workshop at AOSD 2004. Department of Computer Science, Iowa State University, Mar. 2004.
|
| |
7
|
C. Bockisch, M. Arnold, T. Dinkelaker, and M. Mezini. Adapting virtual machine techniques for seamless aspect support. In Tarr and Cook [43], pages 109--124.
|
| |
8
|
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual machine support for dynamic join points. In Lieberherr [28], pages 83--92.
|
| |
9
|
J. Brichau, M. Mezini, J. Noyé, W. Havinga, L. Bergmans, V. Gasiunas, C. Bockisch, T. D'Hondt, and J. Fabry. An initial metamodel for aspect-oriented programming languages. Deliverable D39, AOSD-Europe, Feb. 2006.
|
| |
10
|
S. Chiba, Y. Sato, and M. Tatsubori. Using HotSwap for implementing dynamic AOP systems. In 1st Workshop on Advancing the State-of-the-Art in Run-time Inspection, Darmstadt, Germany, July 2003. Held in conjuction with ECOOP 2003.
|
| |
11
|
T. Cleenewerck, J. Fabry, A.-F. Le Meur, J. Noyé, and E. Tanter, editors. Proceedings of the 3rd Domain-Specific Aspect Languages Workshop (DSAL 2008), Held in conjunction with AOSD 2008, Apr. 2008. ACM.
|
| |
12
|
P.-C. David, T. Ledoux, and N. M. Bouraqadi-Saâdani. Two-step weaving with reflection using AspectJ. In OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, 2001.
|
| |
13
|
B. De Fraine, W. Vanderperren, and D. Suvée. Motivations for Framework-based AOP. In 1st Open and Dynamic Aspect Languages Workshop, Co-located with AOSD 2006, Bonn, Germany, 2006.
|
| |
14
|
S. Djoko Djoko, R. Douence, P. Fradet, and D. Le Botlan. CASB: Common Aspect Semantics Base. Deliverable D54, AOSD-Europe, Aug. 2006.
|
| |
15
|
R. Douence, P. Fradet, and M. Südholt. Composition, reuse and interaction analysis of stateful aspects. In Lieberherr [28], pages 141--150.
|
| |
16
|
R. Douence, O. Motelet, and M. Südholt. A formal definition of crosscuts. In A. Yonezawa and S. Matsuoka, editors, Third International Conference on Meta-Level Architectures and Separation of Crosscutting Concerns (Reflection 2001), volume 2192 of Lecture Notes in Computer Science, pages 170--186, Kyoto, Japan, Sept. 2001. Springer-Verlag.
|
| |
17
|
R. Dyer and H. Rajan. Nu: a Dynamic Aspect-Oriented Intermediate Language Model and Virtual Machine for Flexible Runtime Adaptation. In Mezini and D'Hondt [32], pages 191--202.
|
| |
18
|
E. Freeman, E. Freeman, K. Sierra, and B. Bates. Head First Design Patterns. O'Reilly, Oct. 2004.
|
| |
19
|
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
|
| |
20
|
K. Gybels and J. Brichau. Metaspin homepage. http://www.squeaksource.com/Metaspin.html.
|
| |
21
|
S. Hanenberg, R. Hirschfeld, and R. Unland. Morphing aspects: incompletely woven aspects and continuous weaving. In Lieberherr [28], pages 46--55.
|
| |
22
|
J. Hannemann and G. Kiczales. Design Pattern implementation in Java and AspectJ. In Proceedings of the 2002 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2002), pages 161--173, Seattle, Washington, USA, Nov. 2002. ACM.
|
| |
23
|
W. Havinga and L. Bergmans. JAMI homepage. http://jami.sourceforge.net/.
|
| |
24
|
W. Havinga, L. Bergmans, and M. Akşit. Prototyping and composing aspect languages using an aspect interpreter framework. In Cleenewerck et al. [11].
|
| |
25
|
E. Hilsdale and J. Hugunin. Advice weaving in AspectJ. In Lieberherr [28], pages 26--35.
|
| |
26
|
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An overview of AspectJ. In J. L. Knudsen, editor, ECOOP 2001 - Object-Oriented Programming, 15th European Conference, number 2072 in Lecture Notes in Computer Science, pages 327--353, Budapest, Hungary, June 2001. Springer-Verlag.
|
| |
27
|
S. Kojarski and D. H. Lorenz. AWESOME: an aspect co-weaving system for composing multiple aspect-oriented extensions. In R. P. Gabriel, D. F. Bacon, C. V. Lopes, and G. L. Steele, Jr, editors, Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, (OOPSLA 2007), pages 515--534, Montreal, Quebec, Canada, Oct. 2007. ACM.
|
| |
28
|
K. Lieberherr, editor. Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD 2004), Lancaster, UK, Mar. 2004. ACM.
|
| |
29
|
W. Löwe and M. Südholt, editors. Proceedings of the 5th International Symposium on Software Composition (SC 2006), volume 4089 of Lecture Notes in Computer Science, Vienna, Austria, Mar. 2006. Springer-Verlag.
|
| |
30
|
A. Marot and R. Wuyts. Composability of aspects. In Proceedings of the 6th Workshop on Software-engineering Properties of Languages and Aspect Technologies (SPLAT 2008), Mar. 2008. Held in conjuntion with AOSD 2008.
|
| |
31
|
A. Marot and R. Wuyts. A DSL to declare aspect execution order. In Cleenewerck et al. [11].
|
| |
32
|
M. Mezini and T. D'Hondt, editors. Proceedings of the 7th International Conference on Aspect-Oriented Software Development (AOSD 2008), Brussels, Belgium, Mar./Apr. 2008. ACM.
|
| |
33
|
M. P. Monteiro and J. M. Fernandes. Pitfalls of AspectJ Implementations of Some of the Gang-of-Four Design Patterns. In Proceedings of the Desarrollo de Software Orientado a Aspectos (DSOA'2004) workshop, Nov. 2004.
|
| |
34
|
I. Nagy, L. Bergmans, and M. Aksit. Composing aspects at shared join points. In R. Hirschfeld, R. Kowalczyk, A. Polze, and M. Weske, editors, Proceedings of the International Conference NetObjectDays, NODe2005, volume P-69 of Lecture Notes in Informatics, Erfurt, Germany, Sept. 2005. Gesellschaft für Informatik (GI).
|
| |
35
|
R. Pawlak, L. Duchien, G. Florin, and L. Seinturier. Dynamic wrappers: Handling the composition issue with JAC. In TOOLS '01: Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39), page 56, Washington, DC, USA, 2001. IEEE Computer Society.
|
| |
36
|
R. Pawlak, L. Seinturier, L. Duchien, G. Florin, F. Legond-Aubry, and L. Martelli. JAC: an aspect-based distributed dynamic framework. Software Practice and Experience, 34(12):1119--1148, 2004.
|
| |
37
|
A. Popovici, G. Alonso, and T. R. Gross. Just-In-Time Aspects: Efficient Dynamic Weaving for Java. In Akşit [1], pages 100--109.
|
| |
38
|
Sun Microsystems. JVM Tool Interface (JVM TI).
|
| |
39
|
D. Suvée, W. Vanderperren, and V. Jonckers. JAsCo: an aspect-oriented approach tailored for component based software development. In Akşit [1], pages 21--29.
|
| |
40
|
É. Tanter. Aspects of composition in the Reflex AOP kernel. In Löwe and Südholt [29], pages 98--113.
|
| |
41
|
É. Tanter. Expressive scoping of dynamically-deployed aspects. In Mezini and D'Hondt [32], pages 168--179.
|
| |
42
|
É. Tanter, K. Gybels, M. Denker, and A. Bergel. Context-aware aspects. In Löwe and Südholt [29], pages 227--242.
|
| |
43
|
P. L. Tarr and W. R. Cook, editors. Proceedings of the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22--26, 2006, Portland, Oregon, USA. ACM, 2006.
|
| |
44
|
W. Vanderperren and D. Suvee. Optimizing JAsCo dynamic AOP through HotSwap and Jutta. In Proceedings of Dynamic Aspects Workshop (DAW), pages 120--134, March 2004.
|
|