Chapter 15. JManglerA Powerful Back-End for Aspect-Oriented ProgrammingGÜNTER KNIESEL, PASCAL COSTANZA, AND MICHAEL AUSTERMANN Aspect-oriented software development (AOSD) improves separation of concerns in software development by enabling the modular expression of crosscutting aspects. However, modular implementation of an aspect requires techniques for "weaving" the aspect into the code of all classes that require it. Often, weaving is complicated by the unavailability or dynamic creation of source code. In this chapter, we present JMangler, a freely available framework for load-time transformation of compiled Java programs. We introduce the notions of generic class file interception and order-independent composition and explain JMangler's contribution in these areas. Then we show how JMangler can be used for load-time weaving and for injecting hooks that enable run-time weaving. JMangler enables behaviors beyond the ability of current high-level AOSD languages and systems. |