Abstract
This paper presents JAC (Java Aspect Components), a framework for aspect-oriented programming in Java.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 deploted and undeployed on top on running application objects.Aspect objects may define three kinds of aspect methods: wrapping mwthods (that wrap application methods and provide the ability to run code before and after the wrapped methods), role methods (that add new funchtionalities to applications 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 execusion order of aspect objects.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bergmans, L., and Askit, M. Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer Academic Publishers, 2000, ch. Constructing Reusable Components with Multiple Concerns Using Composition Filters.
Brichau, J., Meuter, W. D., and Volder, K. D. Jumping Aspects. Presented at the ECOOP 2000 workshop on Aspects and Dimensios OF Concerns, June 2000. http://trese.cs.utwente.nl/Workshops/adc2000/.
Buchi, M., and Weck, W. Generic wrappers. In Proceedings of the 14th European Conference on Object-Oriented Programming (ECCOOP’00) (June 2000), vol.1850 of Lecture Notes in Computer Science, Springer, pp.201–225.
Chiba, S. Load-time structural reflection in java. In Proceedings of the 14th European Conference on Object-Oriented Programming (ECOOP’00) (June 2000), vol. 1850 of Lecture Notes in Computer Science, Springer, pp. 313–336.
Douence, R., Motelet, O., and Sudholt, M. A formal definition of crosscut.in Proceedings of the International Conference on Reflection and Crosscutting Concerns (Sept. 2001).
Harrison, W., and Ossher, H. Subject-oriented programming (A critique or pure objects). In Proceedings of OOOPSLA’93 (Oct.1993), vol. 28 of SIGPLAN Notices, ACM Press,pp. 411–428.
JAC. The JAC project home page. http://www.aopsys.com/jac/.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. An overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECCOOP’01) (2001).
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., and Irwin, J. Aspect-oriented Programming.In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP’97) (June 1997), vol. 1241 of Lecture Notes in computer Science, Springer, pp.220–242.
Lieberherr, K., Lorenz, D., and Mezini, M. Programming with aspectual components. Tech.Rep. NU-CCS-99-01, Northeastern University's College of Computer Science, Apr. 1999.
Mezini, M., and Lieberherr, K. Adaptative plug-and-play components for evolutionary software development. In proceedings of OOOPSLA’98 (1998), vol.33 of SIGPLAN Notices, ACM Press, pp. 96–116.
Mezini, M., Seiter, L., and Lieberherr, K. Component integration with pluggable composite adapters. In Software Architectures and Component Technology: The State of the Art in Research and Practice (2000), L. Bergmans and M. Aksit, Eds., Kluwer Academic Publishers.
Ossher, H., Kaplan, K., Harrison, W., Matz, A., and Kruskal, V. Subject-oriented composition rules. In Proceedings of OOPSLA’95 (1995), vol. 30 of SIGPLAN Notices, ACM Press, pp.235–250.
Ossher, H., and Tarr, P. Multi-dimensional separation of concerns and the hyperspace approach. In Software Architectures and Component Technology: The State of the Art in Research and Pratice (2000), Kluwer Academic Publishers.
Parnas, D. On the Criteria to be used in decomposing systems into modules. Communications of the ACM 15, 12 (1972), 1053–1058.
Pawlak, R., Duchien, L., Florin, G. An automatic aspect Weaver with a reflective programming language. In Proceedings of Reflection’99 (July 1999).
Pawlak, R., Duchien, L., Florin, G., Martelli, L., and Seinturier, L. Distributed separation of concerns with Aspect Components. In Proceedings of TOOLS Europe 2000 (June 2000).
Tarr, P., Ossher, H., Harrison, W., and Sutton, S. N degrees of separation: Multi-dimentional separation of concerns. In Proceedings of the International Conference on Software Engineering (ICSE’99) (1999), pp.107–119.
Truyen, E., Vanhaute, B., Joosen, W., Verbaeten, P., Joergensen, and Bo, N. Dynamic and selective combination of extensions in component-based applications. In Proceedings of ICSE’01 (2001).
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Pawlak, R., Duchien, L., Florin, G., Seinturier, L. (2001). JAC: A Flexible Solution for Aspect-Oriented Programming in Java. In: Yonezawa, A., Matsuoka, S. (eds) Metalevel Architectures and Separation of Crosscutting Concerns. Reflection 2001. Lecture Notes in Computer Science, vol 2192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45429-2_1
Download citation
DOI: https://doi.org/10.1007/3-540-45429-2_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42618-9
Online ISBN: 978-3-540-45429-8
eBook Packages: Springer Book Archive