# AspectJ Development Tools v1.1.4 Release Notes

- Changes from 1.1.3

- Changes from 1.1.2

- Changes from 0.6.1

- Changes from 0.6.0

- Changes from 0.5.2

- Changes from 0.5.1

- Changes from 0.5.0

- Installation verification instructions

- Post-installation configuration (important)

- Things you need to know about the plugin.

## Changes from 1.1.3 release

Bugs fixed

- 36098: Hidden weaver errors that AJDT doesn't show
- 37308: UI wizards do not display properly and hang
- 37628: AJDT doesnt work on OS X
- 39206: Incremental compilation removes warnings/errors
- 40600: Automate post install steps
- 40868: AspectJ builder sometimes blocks external tools builders from running
- 41390: Port AJDT to new ASM APIs
- 41535: FNFException when building projects that do not use a separate source directory
- 41538: Cant create project output in a jar when the project doesn't use source folders
- 41566: Compiler errors after removing AspectJ nature from a project
- 41712: Lack of documentation makes this plugin unusable
- 42848: Bug with ASM build suppression
- 42957: AJDT syntax highlighting broken in Eclipse 3.0M3
- 43034: NPE on compiler crash
- 40343: AspectJ compiler does not honour Java Compiler settings
- 40344: Task list not cleared when "Remove AspectJ Nature" used
- 40602: eclipse 2.1 per-project compiler options are ignored
- 24637: "use javac.." option fails to produce .class files
- 39628: Compiler settings do not change AJC
- 40380: AspectJ does not honour libraries defined via Project Properties
- 40492: Error creating the build configuration file
- 40448: handle a missing output folder properly

Of note

- support JDK switching
- MAC OS X Support
- Improved outline view
- Editor templates
- Better scalability

## Changes from 1.1.2 release

- Now based on AspectJ 1.1.0 compiler release
- Includes AspectJ 1.1.0 Programming Guide and related documentation (available in Eclipse Help for AspectJ)
- Many bug fixes in both AspectJ and AJDT (see bugzilla for details)
- Incremental compilation mode (experimental!) supported (with some important fixes). To use it, you need to:
  1. Under Workbench->Preferences->AspectJ, deselect 'Suppress automatic builds for AspectJ projects'
  2. In each AspectJ project there is a new option in the ProjectProperties->AspectJ panel, select 'Incremental Compilation' to turn incremental building on.
  When it is on, the aspectj compiler will run after each save of either a .java file, .aj file or .lst file. When using incremental compilation,
- Browse buttons added for new 1.1.0 compiler options "injars" and "aspectjars."
- Visualiser remembers aspect colours across invocations
- Aspect Visualizing perspective added

Known limitations in this release:

- When incremental compilation is enabled the Document Outline View for files other than those in the compilation delta (normally files other than the one being edited in the current buffer) will fail to refresh correctly. Perform a full project build (Project-rebuild all) to refresh the full structure model.
- The crosscutting information shown in the outline view and gutter annotations is incomplete at this point in time: inter-type declaration and "uses pointcut" links are currently missing.

## Changes from 0.6.1 release

- Now based on AspectJ 1.1 release candidate 2
- Includes AspectJ API documentation (available in Eclipse Help for AspectJ)
- Due to the change in version number, you *may* get problems saying that the aspectjrt.jar version in use is incorrect (if you have that specified as a jar in your project). If this happens, you need to select your project and remove its aspectj nature, then readd the aspectj nature - (this can all be done through the context menu on the project).
- Incremental compilation mode (experimental!!) supported. To use it, you need to:
  1. Under Workbench->Preferences->AspectJ, deselect 'Suppress automatic builds for AspectJ projects'
  2. In each AspectJ project there is a new option in the ProjectProperties->AspectJ panel, select 'Incremental Compilation' to turn incremental building on.
  When it is on, the aspectj compiler will run after each save of either a .java file, .aj file or .lst file. Because of the experimental nature of this support it has a few peculiarities at the moment, the task list and the structure outline view may gradually lose information about various tasks (put in there by declare warning for example) and about which advice is in effect on what resources. To get these views consistent again, just do a full build.
- BUGFIX: If 'outjar' is specified as a relative path, it is now relative to the project work directory, and not the eclipse install directory.
- BUGFIX: Sometimes the code that evaluates if valid entries are supplied in 'input jars' would get confused about which project it would find them in. This is now fixed.

## Changes from 0.6.0 release

- Now based on AspectJ 1.1 release candidate 1
- Fixed problem where aspectjrt.jar was not correctly found when workspace root is in a different location to eclipse installation.
- Gutter annotations now point to correct portion of aspect files
- Progress Monitor for compilations has improved messages and better estimation of progress.
- Improved installation via update site: http://download.eclipse.org/technology/ajdt/update

## Changes from 0.5.2 release

- Help
- aspectjrt.jar added automatically for AspectJ projects
- Gutter annotations
- Multiple Bug fixes: 22340, 22412, 22734, 23045 23062, 23857, 23859, 23954, 23955, 24063, 24065, 24653, 24719, 25422, 25958, 27224, 28699, 28708, 29131, 30462, 30835
- Works with AspectJ 1.1 b5

## Changes from 0.5.1 release

- Fixed memory leak problem arising from prolonged plugin usage
- Fixed "Save Failed - Null" error sometimes seen when saving files in editor
- Added gutter annotations in editor to show where advice applies. Note that the annotation are currently limited to showing a single piece of advice per sourceline and are not navigeable.
- Added Crosscutting Visualiser - shows visually where advice crosscuts classes and packages. This is an experimental feature - use the "Show View" menu to show the Aspect Visualiser Menu (best docked with the outline view) and the Aspect Visualiser. Click on a package name in the Packages view of a package in an AspectJ project.
- Added JoinpiontProbe wizard. This is an experimental feature - first use the "Show View" menu to show the "Joinpoint Probe" view (best docked with the outline or navigator views). Then right-click the perspective and select "AspectJ Wizards". Once you start the wizard you can enter a joinpoint probe, evaluate it, and see the results in a docked window that persists until you close the IDE or create a new probe.

## Changes from 0.5.0 release

- Supports the AspectJ (org.aspectj.ajde) 1.0.6 plugin.

- Fixes bug 22267 - external jars added to Java Build Path were incorrectly handled under Linux

- Fixes bug 22339 - AJ Builder now has a name!

- Fixes bug 21998 - .class files always placed under workspace

- Rebuild All now works when using multiple projects (in 0.5.0 this sometimes caused failure and subsequent plugin deactivation)

- Supports project dependencies in Java Build Path

## Installation verification instructions

1. Start Eclipse.

2. Confirm that both the AspectJ and AJDT plugins have been successfully installed:

- From the help menu, select “About Eclipse Platform,” and then click on “Plug-in Details”

- You should see the "org.aspectj.ajde" plugin listed at version 1.1.1, the "AspectJ Development Tools" at version 1.1.1 and the "AspectJ Development Tools (AJDT) - UI" listed at version 0.6.1.

## Post Installation Customization (important)

Configuring the editor:

You need to configure Eclipse to use the AspectJ/Java editor for .java source files (in place of the Java editor supplied by JDT).

- Select “Preferences” from the “Window” menu.

- Expand the “Workbench” node, and select “File Associations.” In the pane on the right of the dialog box click on “*.java.” Highlight the AspectJ/Java editor, and click on “Default.”

- The AspectJ/Java editor should now be shown as the default.

Adding the New Aspect Wizard Shortcut:

- Open the Java perspective, and then from the “Window“ menu select “Customize Perspective.”

- Expand the “File New” branch and select the “Aspect” node (and AspectJ Project too if you like). A shortcut to create a new aspect will now appear alongside the new class wizard shortcut in the “New...” menu.

Here's how it looks:

Disabling warnings about unused imports in AspectJ files:

By default, the compiler is setup to report any unused imports as warnings. This can cause a problem if you are working in an aspect. Here is an example where the warning is appearing for LogAdapter.java (part of the figures demo):
The compiler can be configured so that it does not report these warnings - select "Preferences" from the "Window" menu and then expand the "Java" node. Click on "Compiler" and then under the first tab "Problems" there is a setting for "Unused imports:" - change it from "Warning" to "Ignore". The next image shows where the option can be found in the preferences page:

When you click Apply or OK to confirm this setting, you will get a message indicating that due to a change in compiler options, a full rebuild is necessary, click OK to perform this rebuild and the warning should disappear.

Disabling early problem indication for AspectJ elements:

The early problem indication feature of the JDT underlines potential errors in the editor as you type (before compilation). This feature is not AspectJ-aware. As a result, AspectJ keywords may be highlighted as errors by underlining with a req “squiggle”(see below):

This feature is perfectly harmless, but can be irritating. You can disable these annotations by selecting "Preferences" from the "Window" menu and then expanding the "Java" node. Click on "Editor" and then select the "Annotations" tab. Finally, deselect the "Analyse annotations while typing" option and press apply. This next image shows where the option can be found in the preferences page:

## Things you need to know about the plugin.

Automatic build suppression

By default, AJDT suppresses automatic builds on resource modification (for AspectJ projects only) since AspectJ does not yet support incremental compilation. To build an AspectJ project, either select the project in the packages view and then select “Rebuild” from the project menu, or use the AspectJ build button:

AJDT supports multiple build configurations within a project (created using the New Build Configuration wizard). To select an alternate configuration for building, use the pulldown beside the build button:

No Eager Parsing

Currently there is no eager parsing support for AJDT. A consequence of this is that the outline view does not update as you edit, but instead is updated as a result of performing a build (compilation).

Debugging

Breakpoints can be set in Java classes (but not in aspects). To set a breakpoint, double-click in the editor margin (the context menu option “Add Breakpoint” does not work yet). See the FAQ for more details

Using existing AspectJ .lst files

The AspectJ command line tools support a richer build configuration file format than AJDT. If you experience problems using an existing .lst file with a project inside Eclipse then opening the file in the Build Configuration Editor (double-click in packages view for example) and saving it again should correct most problems.