AJDT 1.2.0 M1 - New and Noteworthy

Part 1: Aspect structure
Part 2: Visualiser enhancements
Part 3: Other changes


New wizard for exporting to JAR files

AJDT 1.1.12 added a wizard for exporting plugins with AspectJ support, and in a similar vein, this release adds a wizard for exporting projects to JAR files, with proper handling of aspects and .aj files.


AspectJ launch configurations

You can now do Run As > AspectJ/Java Application. This looks and behaves exactly like the basic Java launch configuration, with the following two additions:

  • Main methods inside aspects are detected. This means when you press the Search... button in the Main class section of the run configuration dialog, or when you do Run As > AspectJ/Java Application directly, you are presented with a selection dialog containing all main methods, in both classes and aspects.
  • On the Classpath tab of the run configuration dialog there is an additional classpath entry for Aspect Path. If the aspect path for a project has been set (via Properties > AspectJ Aspect Path) then the same entries will automatically appear here.

Instantiation modifiers

Options have been added to the New Aspect wizard to allow instantiation modifiers to be selected. By default no modifiers are added to the created aspect (issingleton is the implicit default), but by checking the instantiation option, you can then choose from the available modifiers: issingleton, perthis, pertarget, percflow, and percflowbelow. See Appendix B of the AspectJ Programming Guide for the definition of these modifiers.


Java Quick Fix

For those errors and warnings generated by the AspectJ compiler that are the same as those generated by the Eclipse Java compiler, the appropriate source ranges and marker types are used so that the normal Java quick fix corrections are now available. (No such corrections are currently available in aspects, or if classes are in .aj files).


Plugin projects

The AspectJ runtime library, aspectrt.jar was previously contained in the org.aspectj.ajde plugin, but it has now been moved out into its own plugin, org.aspectj.runtime. This means that AspectJ-enabled plugins only need to depend on this very small plugin at runtime, instead of the much larger ajde plugin. If you have existing AspectJ plugins, you will need to manually change the dependency over to org.aspectj.runtime.


Bug fixes

A large number of internal changes have also been made since the 1.1.12 codebase, plus a number of bug fixes. Here are some of the more significant fixes against functionality present in 1.1.12:

  • 72193: Visualisation not showing for aspects in libraries
  • 72969: Referenced projects in main project get changed to /bin
  • 73035: Classpath ordering problem
  • 72671: Bootclasspath specification for compiling is not possible
  • 73317: Duplicated Java Build Path and AspectJ project preferences

Previous releases

The new and noteworthy documents for previous releases are as follows: