Section 15.8. CONCLUSIONS AND FUTURE WORK


15.8. CONCLUSIONS AND FUTURE WORK

In this chapter, we have discussed why load-time analysis and transformation is a promising approach to various challenges of aspect weaving: missing source code of base entities, their dynamic creation, and version proliferation.

We have introduced JMangler, a framework that enables interception and transformation of all loaded application classes. The generic interception mechanism is portable across operating systems, independent of a custom JVM implementation, and effective also in applications that use custom classloaders (application servers, for instance). JMangler provides nested class loading as an extension of the linear Java class loading model, thus enabling load-time transformations that are dependent on the contents of multiple classes. It supports the integration of weavers implemented on top of different class file transformation frameworks and provides a complete weaver implemented using BCEL.

The BCEL weaver enables composition and joint use of transformer components that have been developed independently. Automatic order-independent composition is possible for positively triggered, monotonic interface transformations. Only the order of code transformations has to be specified explicitly, since it is essential for the behavior of the resulting code.

An AOSD system can translate its aspects to JMangler transformer components and let them be applied at load time. Load-time transformation can be used to weave application-level functionality or to inject code that performs run-time weaving.

Load-time weaving with JMangler is also able to process classes that are created and loaded dynamically from an arbitrary local or remote origin. Since weaving is done at load time, only the aspects get weaved that are useful for that particular invocation of a program. Thus static creation of potentially unnecessary variants is avoided.

If desired, variants created at load time can be stored for later use. JMangler transformers allow the implementation of "parametric aspects" that express compactly a potentially infinite number of "introductions" and "advices." It is possible to define "pointcuts" at the level of individual statements or line numbers. This enables very fine-grained control over a program's behavior, as exemplified by the CC4J code coverage system.

Recent follow-up work has focused on improving automatic handling of aspect interference. We have developed a tool that allows automatic detection and resolution of interferences between transformations [3, 32]. The integration of the interference-checking tool with JMangler is a topic of ongoing work.

Information on the most recent state of JMangler can be found at http://javalab.cs.uni-bonn.de/research/jmangler/.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net