Abstract
Aspect composition often involves advice interference and this is a crucial problem in aspect oriented programming. When multiple advices are woven at the same join point, the advices often interfere with each other. Giving appropriate precedence order is a typical solution of this problem but it cannot resolve all kinds of advice interference. To address this problem, we propose a novel language extension named Airia, which provides a new kind of around advice for resolving advice interference. This kind of advice named a resolver is invoked only at the join points when given advices conflict with each other. The resolvers can call an extended version of proceed, which takes as an argument precedence order among remaining advices. Furthermore, the resolvers are composable. They can be used to resolve interference among other resolvers and advices.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Aksit, M., Rensink, A., Staijen, T.: A graph-transformation-based simulation approach for analysing aspect interference on shared join points. In: AOSD 2009: Proceedings of the 8th ACM International Conference On Aspect-Oriented Software Development, pp. 39–50. ACM, New York (2009)
Apel, S., Leich, T., Saake, G.: Aspect refinement and bounding quantification in incremental designs. In: Asia-Pacific Software Engineering Conference, pp. 796–804 (2005)
Apel, S., Leich, T., Saake, G.: Mixin-based aspect inheritance. Technical Report Number 10. Department of Computer Science, University of Magdeburg, Germany (2005)
Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Abc: an extensible AspectJ compiler. In: AOSD 2005: Proceedings of the 4th International Conference on Aspect-Oriented Software Development, pp. 87–98. ACM, New York (2005)
Dinkelaker, T., Mezini, M., Bockisch, C.: The art of the meta-aspect protocol. In: AOSD 2009: Proceedings of the 8th ACM International Conference on Aspect-Oriented Software Development, pp. 51–62. ACM, New York (2009)
Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: GPCE 2002: Proceedings of the 1st ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering, pp. 173–188. Springer, London (2002)
Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: AOSD 2004: Proceedings of the 3rd International Conference on Aspect-Oriented Software Development, pp. 141–150. ACM, New York (2004)
Ekman, T., Hedin, G.: The JastAdd extensible Java compiler. In: OOPSLA 2007: Proceedings of the 22nd annual ACM SIGPLAN conference on Object-Oriented Programming Systems and Applications, pp. 1–18. ACM, New York (2007)
Havinga, W., Nagy, I., Bergmans, L., Aksit, M.: A graph-based approach to modeling and detecting composition conflicts related to introductions. In: AOSD 2007: Proceedings of the 6th International Conference on Aspect-Oriented Software Development, pp. 85–95. ACM, New York (2007)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Marot, A., Wuyts, R.: Composability of aspects. In: SPLAT 2008: Proceedings of the 2008 AOSD Workshop on Software Engineering Properties of Languages and Aspect Technologies, pp. 1–6. ACM, New York (2008)
Marot, A., Wuyts, R.: A DSL to declare aspect execution order. In: DSAL 2008: Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages, pp. 1–5. ACM, New York (2008)
Marot, A., Wuyts, R.: Composing aspects with aspects. In: AOSD 2010: Proceedings of the 9th International Conference on Aspect-Oriented Software Development, pp. 157–168. ACM, New York (2010)
Masuhara, H., Kiczales, G., Dutchyn, C.: Compilation semantics of aspect-oriented programs. In: Proc. of Foundations of Aspect-Oriented Languages Workshop, AOSD 2002, pp. 17–26 (2002)
Schrli, N., Ducasse, S., Nierstrasz, O., Black, A.P.: Traits: Composable units of behaviour. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 327–339. Springer, Heidelberg (2003)
Suvée, D., Vanderperren, W., Jonckers, V.: JAsCo: an aspect-oriented approach tailored for component based software development. In: AOSD 2003: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development, pp. 21–29. ACM, New York (2003)
Takeyama, F.: A new kind of advice for advice composition without interference. Master’s thesis, Tokyo Institute of Technology, Japan (2010)
Tanter, E.: Aspects of composition in the Reflex AOP kernel. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 98–113. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Takeyama, F., Chiba, S. (2010). An Advice for Advice Composition in AspectJ. In: Baudry, B., Wohlstadter, E. (eds) Software Composition. SC 2010. Lecture Notes in Computer Science, vol 6144. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14046-4_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-14046-4_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-14045-7
Online ISBN: 978-3-642-14046-4
eBook Packages: Computer ScienceComputer Science (R0)