|
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
|
Jonthan Bachrach , Keith Playford, The Java syntactic extender (JSE), Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.31-42, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
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
|
Gilad Bracha , Martin Odersky , David Stoutamire , Philip Wadler, Making the future safe for the past: adding genericity to the Java programming language, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.183-200, October 18-22, 1998, Vancouver, British Columbia, Canada
|
 |
8
|
|
| |
9
|
|
 |
10
|
Curtis Clifton , Gary T. Leavens , Craig Chambers , Todd Millstein, MultiJava: modular open classes and symmetric multiple dispatch for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.130-145, October 2000, Minneapolis, Minnesota, United States
|
| |
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
|
Matthew Flatt , Shriram Krishnamurthi , Matthias Felleisen, Classes and mixins, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.171-183, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268961]
|
| |
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
|
Klaus Ostermann , Mira Mezini, Object-oriented composition untangled, Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, p.283-299, October 14-18, 2001, Tampa Bay, FL, USA
|
| |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
Xerox. The AspectJ programming guide. http://www.aspectj_org/doc/dist/progguide/.
|
CITED BY 15
|
|
|
|
|
|
|
|
|
|
|
Yoshiki Sato , Shigeru Chiba , Michiaki Tatsubori, A selective, just-in-time aspect weaver, Proceedings of the second international conference on Generative programming and component engineering, p.189-208, September 22-25, 2003, Erfurt, Germany
|
|
|
Kouhei Sakurai , Hidehiko Masuhara , Naoyasu Ubayashi , Saeko Matsuura , Seiichi Komiya, Association aspects, Proceedings of the 3rd international conference on Aspect-oriented software development, p.16-25, March 22-24, 2004, Lancaster, UK
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|