tutorials
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.
|
Abstract
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 http://aspectwerkz.codehaus.org/.
Biographies
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: webmaster@aosd.net
|