ABSTRACT
This paper describes the implementation of advice weaving in AspectJ. The AspectJ language picks out dynamic join points in a program's execution with pointcuts and uses advice to change the behavior at those join points. The core task of AspectJ's advice weaver is to statically transform a program so that at runtime it will behave according to the AspeetJ language semantics. This paper describes the 1.1 implementation which is based on transforming bytecode. We describe how AspectJ's join points are mapped to regions of bytecode, how these regions are efficiently matched by AspectJ's pointcuts, and how pieces of advice are efficiently implemented at these regions. We also discuss both run-time and compile-time performance of this implementation.
- The AspectJ Team. AspectJ programming guide. http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/aspectj-home/doc/progguide/index.htmlGoogle Scholar
- Jason Baker and Wilson Hsieh. Runtime Aspect Weaving Through Metaprogramming. AOSD 2002. Enschede, The Netherlands. April 2002. Google ScholarDigital Library
- Bill Burke and Adrian Brock. Aspect-Oriented Programming and JBoss. http://www.onjava.com/lpt/a/3878.Google Scholar
- Shigeru Chiba and Muga Nishizawa. An Easy-to-Use Toolkit for Etfficient Java Bytecode Translators. GPCE 2003. Springer-Verlag, 2003 Google ScholarDigital Library
- Joseph Gradecki and Nicholas Lesiecki. Mastering AspeetJ: Aspect-Oriented Programming in Java. John Wiley and Sons. 2003. Google ScholarDigital Library
- JDT core compiler version 2.1.1. http://eclipse.orgGoogle Scholar
- Gregor Kiczales., et al. An Overview of AspectJ. 15th European Conference on Object Oriented Programming (ECOOP). Springer. June 2001. Google ScholarDigital Library
- Gregor Kiczales et al. Getting Started with AspectJ. Communications of the ACM. Volume 44, Issue 10 (October 2001). Google ScholarDigital Library
- Ivan Kiselev. Aspect-Oriented Programming with AspectJ. SAMS. 2002. Google ScholarDigital Library
- Günter Kniesel, Pascal Costanza, Michael Austermann. JMangler - A Framework for Load-Time Transformation of Java Class Files. IEEE Workshop on Source Code Analysis and Manipulation (SCAM), colocated with International Conference on Software Maintenance (ICSM). November 2001.Google Scholar
- Ramnivas Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Company. 2003. Google ScholarDigital Library
- Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification 2nd Edition. Addison Wesley. 1999. Google ScholarDigital Library
- Martin Lippert. An AspectJ-Enabled Eclipse Core Runtime. OOPSLA 2003 Poster Session. Anaheim CA. October 2003. Google ScholarDigital Library
- Harold Ossher and Peri Tarr. Hyper/J: multi-dimensional separation of concerns for Java. In Proceedings of the International Conference on Software Engineering (ICSE). ACM, Limerick, Ireland. 2000. Google ScholarDigital Library
- Andrei Popovici, Gustavo Alonso, and Thomas Gross. Just-In-Time Aspects: Efficient Dynamic Weaving for Java. AOSD 2003, Boston, MA. 2003. Google ScholarDigital Library
- Xalan-2.5.1. http://xml.apache.org/xalan-j.Google Scholar
- XSLTMark-2.1.0. DataPower Technology. http ://www.datapower.com/xsltmark.Google Scholar
Index Terms
- Advice weaving in AspectJ
Recommendations
Advise Weaving in Énfasis
CERMA '10: Proceedings of the 2010 IEEE Electronics, Robotics and Automotive Mechanics ConferenceThis paper describes the implementation of advice weaving in Énfasis. Énfasis is a domain-specific framework designed to program fine-grained aspects and apply crosscutting on local variables. Applications of fine-grained aspects include data flow ...
Using AspectJ for component integration in middleware
OOPSLA '03: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applicationsThis report discusses experiences applying AspectJ [1] to modularize crosscutting concerns in a middleware product line at IBM®. Aspect oriented programming techniques were used to cleanly separate platform specific facilities for aspects such as error ...
Distributing classes with woven concerns: an exploration of potential fault scenarios
AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software developmentAspect-oriented programming (AOP) promises to benefit software engineering by providing a layer of abstraction that can modularize system-level concerns. AOP is still a very young area of research and has yet to receive mainstream acceptance in ...
Comments