Abstract
Aspect composition is a challenging and multi-faceted issue, generally under-supported by current AOP languages and frameworks. This paper presents the composition support provided in Reflex, a versatile kernel for multi-language AOP in Java. The core of Reflex is based on a model of partial reflection whose central abstractions are links: bindings between a (point)cut and an action. Reflex supports the definition of aspect languages through the mapping of aspects to links. We overview the wide range of features for link composition in Reflex—which includes extensible operators for ordering and nesting of links, and control over the visibility of changes made by structural aspects—, illustrating how they can be used to implement various scenarios of aspect composition.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Akşit, M.: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD 2003). ACM Press, Boston (2003)
Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487. Springer, Heidelberg (2002)
Bracha, G., Ungar, D.: Mirrors: Design principles for meta-level facilities of object-oriented programming languages. In: OOPSLA 2004 [24], pp. 331–344 (2004); ACM SIGPLAN Notices 39(11)
Bravenboer, M., Visser, E.: Concrete syntax for objects. In: OOPSLA 2004 [24] (2004); ACM SIGPLAN Notices 39(11)
Brichau, J., Mens, K., De Volder, K.: Building composable aspect-specific languages with logic metaprogramming. In: Batory, et al. (ed.) [2], pp. 110–127
Bussard, L., Carver, L., Ernst, E., Jung, M., Robillard, M., Speck, A.: Safe aspect composition. In: Malenfant, J., Moisan, S., Moreira, A.M.D. (eds.) ECOOP 2000 Workshops. LNCS, vol. 1964, pp. 205–210. Springer, Heidelberg (2000)
Chiba, S.: Load-time structural reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 313–336. Springer, Heidelberg (2000)
Chiba, S., Kiczales, G., Lamping, J.: Avoiding confusion in metacircularity: The meta-helix. In: Futatsugi, K., Matsuoka, S. (eds.) ISOTAS 1996. LNCS, vol. 1049, pp. 157–172. Springer, Heidelberg (1996)
De Volder, K., D’Hondt, T.: Aspect-oriented logic meta-programming. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, pp. 250–272. Springer, Heidelberg (1999)
Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: Batory et al. (ed.) [2], pp. 173–188
Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: Lieberherr (ed.) [22], pp. 141–150
Douence, R., Fradet, P., Südholt, M.: Trace-based aspects. In: Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.) Aspect-Oriented Software Development, pp. 201–217. Addison-Wesley, Boston (2005)
Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 170–186. Springer, Heidelberg (2001)
Douence, R., Südholt, M.: A model and a tool for event-based aspect-oriented programming (EAOP). Technical Report 02/11/INFO, École des mines de Nantes, 2nd edition, French version published in the Proceedings of ”Langages et Modèles à Objets” (LMO 2003) (December 2002)
Durr, P., Staijen, T., Bergmans, L., Aksit, M.: Reasoning about semantic conflicts between aspects. In: 2nd European Interactive Workshop on Aspects in Software (EIWAS 2005), Brussels, Belgium (September 2005)
The EAOP tool homepage (2001), http://www.emn.fr/x-info/eaop/tool.html
Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented programming. Communications of the ACM 44(10) (October 2001)
Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Akşit (ed.) [1], pp. 60–69
Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: Lieberherr (ed.) [22], pp. 26–35
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Klaeren, H., Pulvermüller, E., Rashid, A., Speck, A.: Aspect composition applying the design by contract principle. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, pp. 57–69. Springer, Heidelberg (2001)
Lieberherr, K. (ed.): Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD 2004), Lancaster. ACM Press, New York (2004)
Nagy, I., Bergmans, L., Aksit, M.: Declarative aspect composition. In: 2nd Software-Engineering Properties of Languages and Aspect Technologies Workshop (March 2004)
Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2004), Vancouver, British Columbia, Canada. ACM SIGPLAN Notices, vol. 39(11). ACM Press, New York (October 2004)
Rodríguez, L., Tanter, É., Noyé, J.: Supporting dynamic crosscutting with partial behavioral reflection: a case study. In: Proceedings of the XXIV International Conference of the Chilean Computer Science Society (SCCC 2004), Arica, Chile. IEEE Computer Society Press, Los Alamitos (2004)
Suvee, D., Vanderperren, W., Jonckers, V.: JAsCo: an aspect-oriented approach tailored for component based software development. In: Akşit (ed.) [1], pp. 21–29
Tanter, É.: Metalevel facilities for multi-language AOP. In: 2nd European Interactive Workshop on Aspects in Software (EIWAS 2005), Brussels, Belgium (September 2005)
Tanter, É., Noyé, J.: Motivation and requirements for a versatile AOP kernel. In: 1st European Interactive Workshop on Aspects in Software (EIWAS 2004), Berlin, Germany (September 2004)
Tanter, É., Noyé, J.: A versatile kernel for multi-language AOP. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 173–188. Springer, Heidelberg (2005)
Tanter, É., Noyé, J., Caromel, D., Cointe, P.: Partial behavioral reflection: Spatial and temporal selection of reification. In: Crocker, R., Steele Jr., G.L. (eds.) Proceedings of the 18th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2003). ACM SIGPLAN Notices, vol. 38(11), pp. 27–46. ACM Press, New York (2003)
Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. ACM Transactions on Programming Languages and Systems 26(5), 890–910 (2004)
Wuyts, R.: Declarative reasoning about the structure of object-oriented systems. In: Proceedings of TOOLS-USA 1998, p. 112 (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Tanter, É. (2006). Aspects of Composition in the Reflex AOP Kernel. In: Löwe, W., Südholt, M. (eds) Software Composition. SC 2006. Lecture Notes in Computer Science, vol 4089. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11821946_7
Download citation
DOI: https://doi.org/10.1007/11821946_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-37657-6
Online ISBN: 978-3-540-37659-0
eBook Packages: Computer ScienceComputer Science (R0)