Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/976270.976276acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

Advice weaving in AspectJ

Published: 22 March 2004 Publication History

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.

References

[1]
The AspectJ Team. AspectJ programming guide. http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/aspectj-home/doc/progguide/index.html
[2]
Jason Baker and Wilson Hsieh. Runtime Aspect Weaving Through Metaprogramming. AOSD 2002. Enschede, The Netherlands. April 2002.
[3]
Bill Burke and Adrian Brock. Aspect-Oriented Programming and JBoss. http://www.onjava.com/lpt/a/3878.
[4]
Shigeru Chiba and Muga Nishizawa. An Easy-to-Use Toolkit for Etfficient Java Bytecode Translators. GPCE 2003. Springer-Verlag, 2003
[5]
Joseph Gradecki and Nicholas Lesiecki. Mastering AspeetJ: Aspect-Oriented Programming in Java. John Wiley and Sons. 2003.
[6]
JDT core compiler version 2.1.1. http://eclipse.org
[7]
Gregor Kiczales., et al. An Overview of AspectJ. 15th European Conference on Object Oriented Programming (ECOOP). Springer. June 2001.
[8]
Gregor Kiczales et al. Getting Started with AspectJ. Communications of the ACM. Volume 44, Issue 10 (October 2001).
[9]
Ivan Kiselev. Aspect-Oriented Programming with AspectJ. SAMS. 2002.
[10]
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.
[11]
Ramnivas Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Publications Company. 2003.
[12]
Tim Lindholm and Frank Yellin. The Java Virtual Machine Specification 2nd Edition. Addison Wesley. 1999.
[13]
Martin Lippert. An AspectJ-Enabled Eclipse Core Runtime. OOPSLA 2003 Poster Session. Anaheim CA. October 2003.
[14]
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.
[15]
Andrei Popovici, Gustavo Alonso, and Thomas Gross. Just-In-Time Aspects: Efficient Dynamic Weaving for Java. AOSD 2003, Boston, MA. 2003.
[16]
Xalan-2.5.1. http://xml.apache.org/xalan-j.
[17]
XSLTMark-2.1.0. DataPower Technology. http ://www.datapower.com/xsltmark.

Cited By

View all
  • (2022)Formal Model In-The-Loop for Secure Industrial Control NetworksFormal Aspects of Component Software10.1007/978-3-031-20872-0_5(74-89)Online publication date: 2-Nov-2022
  • (2021)NOD4J: Near-Omniscient Debugging Tool for Java Using Size-Limited Execution TraceScience of Computer Programming10.1016/j.scico.2021.102630(102630)Online publication date: Feb-2021
  • (2021)Migrating production monolithic systems to microservices using aspect oriented programmingSoftware: Practice and Experience10.1002/spe.295651:6(1280-1307)Online publication date: 2-Mar-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development
March 2004
161 pages
ISBN:1581138423
DOI:10.1145/976270
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 March 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. AspectJ
  2. aspect-orientation
  3. bytecode
  4. compilers
  5. weaving

Qualifiers

  • Article

Conference

AOSD04

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 22 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Formal Model In-The-Loop for Secure Industrial Control NetworksFormal Aspects of Component Software10.1007/978-3-031-20872-0_5(74-89)Online publication date: 2-Nov-2022
  • (2021)NOD4J: Near-Omniscient Debugging Tool for Java Using Size-Limited Execution TraceScience of Computer Programming10.1016/j.scico.2021.102630(102630)Online publication date: Feb-2021
  • (2021)Migrating production monolithic systems to microservices using aspect oriented programmingSoftware: Practice and Experience10.1002/spe.295651:6(1280-1307)Online publication date: 2-Mar-2021
  • (2020)Efficient dispatch of multi-object polymorphic call sites in contextual role-oriented programming languagesProceedings of the 17th International Conference on Managed Programming Languages and Runtimes10.1145/3426182.3426186(52-62)Online publication date: 4-Nov-2020
  • (2019)Efficient late binding of dynamic function compositionsProceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3357766.3359543(141-151)Online publication date: 20-Oct-2019
  • (2019)JUniVerseProceedings of the 34th ACM/SIGAPP Symposium on Applied Computing10.1145/3297280.3297453(1768-1775)Online publication date: 8-Apr-2019
  • (2019)Chemical foundations of distributed aspectsDistributed Computing10.1007/s00446-018-0334-632:3(193-216)Online publication date: 1-Jun-2019
  • (2018)Implementing Adaptive Decisions in Stochastic Simulations via AOPIEICE Transactions on Information and Systems10.1587/transinf.2018EDL8044E101.D:7(1950-1953)Online publication date: 1-Jul-2018
  • (2017)Using hierarchical agglomerative clustering to locate potential aspect interferenceSoutheastCon 201710.1109/SECON.2017.7925379(1-8)Online publication date: Mar-2017
  • (2017)Function call interception techniquesSoftware: Practice and Experience10.1002/spe.250148:3(385-401)Online publication date: 16-May-2017
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media