AJDT: AspectJ Development Tools

AspectJ Development Tools (AJDT)

What's new in AJDT 1.2.1 and 1.3

Here are some of the more interesting or significant changes made to the AspectJ Development Tools since the 1.2 release (see the What's new in AJDT 1.2 page for the changes in that release).

AJDT 1.2.1 is for Eclipse 3.0 only and AJDT 1.3 is for Eclipse 3.1 only. The content of both releases has been kept as similar as possible. Therefore everything described here applies to both, except where noted otherwise.

AspectJ 5 This release of AJDT incorporates the final AspectJ 5 release, which includes support for Java 5 features, enhancements to load-time weaving, and support for an annotation-based development style for aspects.

Note however that AJDT 1.2.1 is for Eclipse 3.0, which doesn't support Java 5. For this you need AJDT 1.3 for Eclipse 3.1.

Navigation and source hover support for pointcuts F3 "open declaration" action for pointcuts
If you have an aspect open in the AspectJ editor, you can now position the cursor on the use of a named pointcut, either in some advice or in the definition of another pointcut, and then press F3 (or whichever key you have assigned to the "Open Declaration" action) to jump to the definition of that pointcut.

Control-click hyperlink navigation for pointcuts (AJDT 1.3 only)
You can also hold down the control key and mouse over the use of named pointcuts, which now appear as hyperlinks, so that you can click to navigate to the pointcut definition.

Source hover for pointcuts
As an alternative to navigating to a pointcut's definition, you can also hover over the use of the pointcut, and the source code for it will appear as a tooltip.

Screenshot showing a pointcut source hover

Relationship Filter for Cross References View A new 'Filters...' button has been added to the Cross References view menu which can be accessed via the drop down toggle button on the toolbar or by pressing the key combination Ctrl + F10.

This presents a dialog containing the various types of relationship which can be excluded from the view.

Screenshot showing the Cross References filter dialog

Selecting relationships in the dialog and clicking OK will result in any relationships of this type being filtered from the view.

The same functionality is available in the quick form of the Cross References view which appears over the editor (by pressing Alt+Shift+P by default). The filters applied to each view are independent of each other.

Crosscutting Comparison view The goal of this new view is to answer the "What's changed?" question in relation to the aspect-oriented structure of your application. Say you make a release of your project and then you do some refactoring such as renaming some methods, adding new methods, optimizing pointcuts etc. The advice in your project may now be matching in different places (or in additional, or fewer places) but in anything other than very small projects it would be hard to spot this purely from the editor markers, Cross References view, and Visualiser view offered by AJDT. These views show you the current state of the crosscutting but not how it has changed -- this is where the Crosscutting Comparison view comes in.

screenshot showing the Crosscutting Comparison view

To see this functionality in action view the animated demo available from the AJDT demos page.

Load-time Weaving configuration This new launch configuration simplifies the process of running an application where weaving occurs as the classes are loaded. This typically involves a Java project containing the application to be woven, and an AspectJ project containing the aspects.

Screenshot showing the load-time weaving launch configuration

To see this functionality in action view the animated demo available from the AJDT demos page.

Updated New Aspect Wizard The New Aspect wizard now more closely matches the appearance and behaviour of the current version of the New Class wizard. In addition to supporting the modifiers and extra instantiation options applicable to aspects, code completion is available for package names, and when extending an abstract aspect, stubs can be created for any inherited abstract pointcuts.

The comments generated and formatting used for new aspects matches the Eclipse settings for new classes.

Bug fixes This release contains a large number of bug fixes. The full list is available via this CVS query.