AspectJ is the de-facto standard language for aspect-oriented programming. OSGi is the most popular specification for packaging highly modular Java programs. Together they make it possible to version, deploy and manage the cross-cutting features of complex systems. By bringing together the robust load-time weaving capability of AspectJ 5 and the extensible Equinox framework a sophisticated and dynamic aspect-oriented runtime emerges. When combined with Eclipse you have the perfect platform for developing, testing, debugging, deploying and sharing modular aspect-oriented applications.
The Aspects Equinox Incubator, begun just over a year ago as a vehicle for bringing AOP to the Eclipse platform, has now borne fruit. Building on the powerful combination of existing Eclipse tools and frameworks including AJDT, Equinox and the PDE a small framework extension now allows bundle developers, whether targeting the OSGi, Eclipse or RCP environments, to take advantage of this new aspect-oriented runtime. Those familiar with AspectJ and Eclipse can use the incubator update site and numerous examples to get started right away.
Attendees will see Eclipse-based examples that include and go far beyond the familiar AOP use-cases such as monitoring, testing and problem diagnosis. In particular the ability to implement and deploy new or modified extension points for existing plug-ins will be demonstrated. Both packaging techniques proposed by the incubator project will be described: the opt-in model which allows bundle developers to take advantage of third party aspect libraries or platform-based aspect-oriented features, and the co-opt model which allows capability to be added to a large number of existing bundles in a well defined manner using new OSGi meta-data.
Matthew Webster joined IBM in 1989 with a degree in Physics with Computer Science from Southampton University and since then has worked on a number of software projects at the Hursley lab. He moved to the IBM Java Technology Centre in 1997 initially as a technology evangelist then working on the restructure of the IBM JVM and leading the development of advanced Garbage Collection and Class Loading features. Matthew is a senior software engineer developing AOP technology for use in IBM software products since 2002 and is co-author of a book on AspectJ and Eclipse published last year. He is a committer on the AspectJ project and leads the Aspects Equinox Incubator.