JMangler – A Powerful Back-End for Aspect-Oriented Programming
نویسندگان
چکیده
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. 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.
منابع مشابه
Independent Extensibility for Aspect-Oriented Systems
So far, there is no satisfactory means to safely combine aspects that have been developed independently. In the general case, the process of jointly applying different aspects is not guaranteed to produce complete and unambiguous results. This paper shows that in the relevant case of pure interface modifications, completeness, uniqueness and independent extensibility can be ensured. This result...
متن کاملOn the Problems of the JPMs
Increasingly, aspect-oriented programming (AOP) [1] has been considered to pursue a better modularization of object-oriented programs, especially when representing crosscutting concerns. However, current aspect-oriented frameworks such as AspectJ [2], AspectWerkz [3], JMangler [4] and others, operate in a way directly related to the code. They define some points in the computational flow, named...
متن کاملGenerating AspectJ Programs with Meta-AspectJ
Meta-AspectJ (MAJ) is a language tool for generating AspectJ programs using code templates. MAJ itself is an extension of Java, so users can interleave arbitrary Java code with AspectJ code templates. MAJ is a structured meta-programming tool: a well-typed generator implies a syntactically correct generated program. MAJ promotes a methodology that combines aspect-oriented and generative program...
متن کاملµABC: A Minimal Aspect Calculus
Aspect-oriented programming is emerging as a powerful tool for system design and development. In this paper, we study aspects as primitive computational entities on par with objects, functions and horn-clauses. To this end, we introduce μABC, a name-based calculus, that incorporates aspects as primitive. In contrast to earlier work on aspects in the context of object-oriented and functional pro...
متن کاملModel-based Aspect Weaver Construction
This paper describes an approach that combines model engineering with program transformation techniques to construct aspect weavers for general-purpose programming languages. The front-end of the weaver uses a high-level language (i.e., an aspect language) to specify aspects and is designed with a metamodel-based approach using the AMMA toolsuite. The back-end of the weaver uses transformation ...
متن کامل