ACM Home Page
Please provide us with feedback. Feedback
Runtime aspect weaving through metaprogramming
Full text PdfPdf (883 KB)
Source Aspect-oriented software development archive
Proceedings of the 1st international conference on Aspect-oriented software development table of contents
Enschede, The Netherlands
COLUMN: Full papers table of contents
Pages: 86 - 95  
Year of Publication: 2002
ISBN:1-58113-469-X
Authors
Jason Baker  University of Utah, Salt Lake City, Utah
Wilson Hsieh  University of Utah, Salt Lake City, Utah
Sponsors
CTIT : Centre for Telematics and Information Technology
IPA : Institute for Software and Arithmetic
KNAW : Koninklijke Nederlandse Akademie van Wetenschappen
PATO : Post Academisch Tecbnisch Onderwijs
University of Twente : University of Twente
NWO : Dutch Orgartisation for Scientific Research
IBMR : IBM Research
AITO : Association Internationale pour les Technologies Objets
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 71,   Citation Count: 14
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/508386.508396
What is a DOI?

ABSTRACT

We describe an extension to the Java language, Handi-Wrap, that supports weaving aspects into code at runtime. Aspects in Handi-Wrap take the form of method wrappers, which allow aspect code to be inserted around method bodies like advice in AspectJ. Handi-Wrap offers several advantages over static aspect languages such as AspectJ. First, aspects can be woven into binary libraries. Second, a wrapper in Handi-Wrap is a first-class Java value, which allows users to exploit Java mechanisms to define and weave wrappers. For example, wrappers can be passed explicit constructor arguments, and wrapper objects can be composed. Finally, methods in all Java classes, including anonymous classes, can be wrapped. A prototype of Handi-Wrap is implemented in a compile-time metaprogramming system for Java, called Maya; we briefly describe how Maya's features support Handi-Wrap.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
J. Baker. Macros that play: Migrating from Java to Maya. Master's thesis, University of Utah, December 2001.
3
 
4
 
5
 
6
P. Bothner. Kawa---compiling dynamic languages to the Java VM. In Proceedings of the USENIX Technical Conference, FREENIX Track, New Orleans, LA, Jun. 1998. USENIX Association.
7
8
 
9
10
 
11
K. Czarnecki. Dynamic cool. http://www.prakinf.tu-ilmenau.de/-czarn/aop/sources.tar.gz.
 
12
 
13
M. Dahm. The byte code engineering library. http://bcel.sourceforge.net.
 
14
P.-C. David, T. Ledoux, and N. N. M. Bouraqadi-Saädani. Two-step weaving with reflection using AspectJ. In OOPSLA Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Oct. 2001.
15
 
16
 
17
S. Henenberg and R. Unland. Using and reusing aspects in AspectJ. In OOPSLA Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Oct. 2001.
 
18
N. D. Hoa. Dynamic aspects in SOFA/DCUP. Technical Report 99/07, Charles University, Prague, Jun. 1999.
 
19
K. Lieberherr, D. Lorenz, and M. Mezini. Programming with aspectual components. Technical Report NU-CCS-99-01, Northeastern University, Apr. 1999.
 
20
C. P. Lunau. A reflective architecture for process control applications. In Proceedings of the European Conference on Object-Oriented Programming, 1997.
 
21
P. Niemeyer. Beanshell --- lightweight scripting for Java. http://www.beanshell.org/.
22
 
23
 
24
 
25
 
26
Xerox. The AspectJ programming guide. http://www.aspectj_org/doc/dist/progguide/.

CITED BY  15

Collaborative Colleagues:
Jason Baker: colleagues
Wilson Hsieh: colleagues