AOSD Conference  
Program Overview
Technical Program
Student Extravaganza
Social Events
Technical Papers
Practitioner Reports
Student Extravaganza
Places to Eat
Internet Access
Lancaster & Lake District Photos

T2: AspectWerkz for Dynamic Aspect-Oriented Programming

Date Monday, March 22, 2004, afternoon (half day)
Presenters Jonas Bonér, BEA
Alexandre Vasseur, BEA
Level Introductory: Attendees should be fluent with Java and have basic knowledge of XML. Prior experience with aspect-oriented programming is helpful, but not required. Participants are encouraged to bring their own laptop computers for hands-on examples, but a laptop is not required for attendance.


AspectWerkz is a dynamic, lightweight, fast, and free aspect-oriented programming (AOP) framework for Java. AspectWerkz offers both offline and online aspect weaving mechanisms for real-world application platforms. The offline mode allows aspects to be integrated ("woven") into application code before the application is deployed. The online mode weaves the aspects at class load-time in a transparent way. Both implement "dynamic AOP" concepts that allow developers and system operators to add, remove, and modify aspects during the execution of an application.

This tutorial will explain the AspectWerkz framework and show how it can be applied to introduce both offline and online AOP into new and existing Java projects. Attendees will learn how the main concepts of AOP, such as advice, introductions, and pointcuts, are implemented in AspectWerkz through combinations of plain Java code, XML definitions, and runtime attributes. The tutorial will then focus on the key features of AspectWerkz, including its weaving mechanisms and the concept of dynamic AOP. The offline and online weaving mechanisms are similar in that both support real-world application requirements such as integration with application servers, custom JREs and JVMs, and standard debugging tools. For many situations, however, the online mode for dynamic AOP offers additional power over offline weaving. The tutorial will therefore highlight the unique features of dynamic AOP and describe how AspectWerkz can be used for dynamic AOP tasks.

Tutorial attendees will learn key AspectWerkz concepts by understanding concrete examples --- both standalone programs and application server integration samples --- and by participating in hands-on programming sessions. At the end of the tutorial, participants will understand how to use AspectWerkz to enhance and refactor existing applications, as well as how to design new applications with aspects from the beginning.

AspectWerkz is available at


Jonas Bonér works as a senior software engineer at BEA and is currently working in the group that is developing the JRockit JVM. Prior to that, he worked as a system architect at Sony where he was building systems for a wide range of fields, from embedded devices to large scale enterprise B2B applications. Jonas has been using AOP technologies for the last three years and founded the AspectWerkz AOP framework at the end of 2002.

Alexandre Vasseur works as a J2EE senior consultant at BEA. In the last four years, he has been driving development teams at Fortune 500 customers on several J2EE projects involving the latest technologies around EJB, JMS, JMX, and JCA. Alexandre has been working in the field of AOP since late 2002. After working three months on his own open-source projects related to class load-time weaving, he merged his sources in and joined AspectWerkz as a core committer. Prior to that, Alexandre worked in the fields of PHP and OO Perl. He holds an engineering degree from the Ecole des Mines, France.

Edited by the AOSD Conference Committee.  Send comments to: