program       registration       lodging       call for contributions       organization       [aosd home]

overview       technical papers       practitioner reports       workshops       tutorials       demos       exhibits      
Go back to Tutorials Home

T2: JMangler: On-the-Fly Transformation of Java Class Files

  - Günter Kniesel, University of Bonn
  - Michael Austermann, SCOOP Software GmbH

Date: Monday, March 17, morning (half day)

Level: Intermediate

Attendees should have a good understanding of object-orientation in general and Java in particular. Prior experience with AOSD is not required. Participants are invited to bring their own laptop computers for hands-on examples, but a laptop is not required for attendance.


JMangler is a freely available framework for load-time transformation of compiled Java programs. The transformation of byte code is a core technology that can be used for a variety of purposes, including the implementation of new AOSD languages and tools. This tutorial will provide attendees with a thorough understanding of JMangler and Java byte code transformation, from an AOSD perspective.

Unlike simple byte code transformation libraries, JMangler provides a complete solution for hooking into the class loading process. It does so in a JVM and class loader independent way, which works also for classes that employ their own custom class loaders. Therefore, JMangler can transform any application classes and can be used in environments such as application servers, which make heavy use of custom class loaders.

Since JMangler uses no source code, it can be applied even to third-party libraries. Since it works at load time, it provides the guarantee that transformations will be applied to every class that will be executed at run-time, even if the class is created dynamically or loaded from some possibly remote host.

For programmers, we will provide guidance and hands-on experience in writing, composing, and applying their own transformer components. For AOSD language and tool developers, we will show how to use JMangler's capabilities for load-time aspect weaving and for injecting hooks that enable run-time weaving. For managers, our aim is to convey an understanding of the potential of load-time byte code transformation. The tutorial will conclude with a demonstration of CC4J, a powerful code coverage tool developed with JMangler. CC4J is an application that transforms programs in a way that is beyond the scope of all high-level AOSD languages and systems that we know of.


Günter Kniesel is currently a lecturer at the Computer Science Department of the University of Bonn. His research focuses on unanticipated software evolution in the domain of object-oriented programming languages and component technologies. He co-supervised the initial development of JMangler and is leading different follow-up projects on related topics. Günter has more than ten years of experience in teaching software engineering and object-oriented techniques, both as a university lecturer and as a consultant providing training to industrial partners. He holds a Diploma in Computer Science from the University of Dortmund and a Ph.D. in Computer Science from the University of Bonn.

Michael Austermann developed the JMangler framework as part of his diploma thesis in Günter Kniesel's research group at the University of Bonn. Since the completion of his degree, Michael has been a consultant at SCOOP Software GmbH, Cologne. There he has continued evolving JMangler and has led work on CC4J, a powerful code coverage application developed using JMangler. For the past two years, Michael has provided extensive hands-on training and consulting to SCOOP's clients and partners who use JMangler and CC4J on a regular basis.


For additional information, clarifications, questions, or special requirements, please contact the AOSD 2003 Tutorial Chair: Eric Eide (

 Send comments to: