blob: 26f375957c98215f62f798d190ba0eb137079e92 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="STYLESHEET" href="http://www.eclipse.org/default_style.css" charset="ISO-8859-1" type="text/css">
<title>AJDT 1.2.0 M3 - New and Noteworthy</title>
</head>
<body>
<h1>AJDT 1.2.0 M3 - New and Noteworthy</h1>
<table border="0" cellpadding="10" cellspacing="0" width="80%">
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Overview</b></td>
<td width="70%" valign="top">
<p>In addition to supporting the latest AspectJ 5 milestone release,
the focus is still very
much on working with the rest of Eclipse, and the JDT in
particular, instead of trying to change its default behaviour. This
means the best arrangement is to only put plain Java code in .java files
using the Java editor, and to use .aj files and the AspectJ editor for
everything else. Furthermore, the structure of the current document
(whether it's a .java or .aj file) is
consistently shown in the standard Outline view, and the additional
crosscutting information is shown alongside this in the new Cross
References view.</p>
<p>Being a milestone release, this is a work in progress, but
feedback on these changes is very welcome. The newsgroup and
mailing lists are the best places for this.</p>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Quick Cross References</b></td>
<td width="70%" valign="top">
<p>This view, which was introduced in M2, is now also available
in-place, like the quick outline.</p>
<img src="quickxref.png" width="434" height="332">
<p>The default key binding to show this view is
"Ctrl+Alt+X". This can be customized via Preferences &gt;
Workbench &gt; Keys. Pressing the key combination once shows you
the crosscutting information for the current element, pressing
it a second time will show the crosscutting information for the
entire file.</p>
<p>Various other improvements and fixes have been made to the
Cross References view, including the addition of a toggle
button to show the crosscutting information for the
entire file, instead of only for the current element.</p>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Errors as you type</b></td>
<td width="70%" valign="top">
<p>Return of the red squiggles! Early problem indication has
typically been turned off when working with AJDT because the
Java eager parser doesn't understand AspectJ syntax. But now it
can be turned back on if desired, because aspects contained in
.aj files and opened with the AspectJ editor can now make use of
an AspectJ eager parser to highlight syntax problems as you
type.
</p>
<img src="errorsasyoutype.png" width="434" height="99">
<p>The AspectJ early problem indication support is enabled and
disabled using the same option as the Java support. With Eclipse
3.0 this option is <b>Preferences &gt; Java &gt; Editor &gt;
Typing &gt; Analyze annotations while typing,</b> and with
Eclipse 3.1, it's <b>Preferences &gt; Java &gt; Editor &gt;
Typing &gt; Other settings &gt; Report problems as you
type.</b></p>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Visible Project options</b></td>
<td width="70%" valign="top">
<p>Project-specific AspectJ compiler options and other project
settings are now saved in preference files under a ".settings"
folder in the project. This enables the settings to be shared
between workspaces and other developers, by committing the preference
files to CVS. The mechanism used is the same as for Java compiler
settings in Eclipse 3.1, although the AJDT behaviour is the same
across Eclipse 3.0 and 3.1.</p>
<p>The ".settings" folder is only created when required. If you
define project-specific AspectJ compiler settings, they will be
stored in a file called "org.eclipse.ajdt.core.prefs". Other
project settings, such as aspect-path and in-path will be stored
in a "org.eclipse.ajdt.ui.prefs" file. These files are for
sharing settings, they are not designed to be edited by hand -
any such edits are likely to be overwritten.</p>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Toolbar shortcuts</b></td>
<td width="70%" valign="top">
<p>Shortcuts have been added to the toolbar to open the New AspectJ Project wizard,
and the New Aspect wizard (in the New Type dropdown).</p>
<img src="toolbar.png" width="310" height="126">
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Incremental compilation</b></td>
<td width="70%" valign="top">
<p>Incremental compilation is now set as the default mode of
operation. Both the generated class files and the structure
model (used to display the advice markers, and populate the
cross references view and visualiser etc) should be
incrementally updated as required. Work has also been done to
improve the performance of incremental builds, particularly in
the case of simple changes to classes. The main remaining
limitation relates to project dependencies - an incremental
build of one project will trigger a <b>full</b> build of
dependent projects (because it doesn't know what has changed in
the first project). The only workaround for now is to close the
dependent projects, so that you get fast incremental builds of
the one project you are currently working on.</p>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Updated project wizard</b></td>
<td width="70%" valign="top">
<p>The "New AspectJ Project" wizard has been updated to match
the current appearance and functionality of the wizard which
creates new Java projects. This includes the option to create
separate source and output folders.</p>
<img src="newproject.png" width="366" height="461">
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Plugin builds</b></td>
<td width="70%" valign="top">
<p>If you have an AspectJ plug-in project, you can now generate
a build.xml file that can build the project correctly, using the
<code>iajc</code> ant task. This operation is available by
right-clicking on your plugin.xml file and selecting <b>PDE
tools &gt; Create Ant Build File with AspectJ support.</b></p>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>AspectJ 5 M2</b></td>
<td width="70%" valign="top">
<p>The second milestone release of AspectJ 5 is included, with all the
accompanying documentation available in the Eclipse help system, including
the latest version of the AspectJ 5 Developer's Notebook.</p>
<p>The new <b>pertypewithin</b> instantiation model is supported by highlighting
this new keyword, and adding it to the instantiation options in the
New Aspect wizard.</p>
<p>All AspectJ 5 features that require a Java 5 JRE also require Eclipse
support for Java 5 projects, which currently means Eclipse 3.1M6. This
means that if running on Eclipse 3.0, the "5.0" tab for AspectJ compiler
settings is not present. With Eclipse 3.1M6 the "5.0" tab is present,
and now contains the new Xlint warning options added in AspectJ 5 M2,
including a warning when advice does not affect any join points, which can
be suppressed using the @SuppressAjWarnings annotation. Also,
there is no longer a "1.5" option on this page, as the Java Compiler setting
for JDK compliance level is used instead.</p>
<p>The new <b>declare annotation</b> statements are fully supported (when
using Eclipse 3.1M6 and an AspectJ project with a Java compliance
setting of 5.0, and a 1.5.0 JRE). The outline view and package explorer
structure has been updated to include these new declare statements.
Markers are added to the edge
of the editor to indicate the source and targets of these statements,
as shown below. The context menu for these markers contains "Annotates"
and "Annotated by" submenus to allow navigation of these relationships.</p>
<img src="editorDeclareAt.png" width="385" height="170">
<p>The "Annotates" and "Annotated by" relationships are also shown
in the Cross References view:</p>
<img src="xrefDeclareAt.png" width="287" height="302">
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>AspectPath directories</b></td>
<td width="70%" valign="top">
<p>With AspectJ 5 M2 you can now specify directories on the aspect path, instead
of just jars or zips. To make use of this in AJDT, right-click on a project and select
Properties, then go to the <b>AspectJ Aspect Path</b> section. On the Libraries tab
there is now a <b>Add Class Folder...</b> button, which you can use to add the output
"bin" directory of another project, for example. This allows you to apply the aspects
from another project without requiring that other project to send its class files to
an output jar.</p>
<img src="aspectpath.png" width="429" height="339">
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Builder change</b></td>
<td width="70%" valign="top">
<p>The project builder that AJDT registers with Eclipse has been
moved from the AJDT UI plugin to the AJDT Core plugin.
This means that the builder
id has changed from <code>org.eclipse.ajdt.ui.ajbuilder</code>
to <code>org.eclipse.ajdt.core.ajbuilder.</code>
If a project is found with the old builder, you will be asked
whether to keep the reference to the old builder. This is only
useful if you are sharing the project with someone who may be
using an earlier version of AJDT. Otherwise, it is best to remove
the old reference. You can chose to automatically perform the same
operation on other projects.</p>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Bug fixes</b></td>
<td width="70%" valign="top">
<p>As usual this release also contains a number of bug fixes. The full
list is available in
<a href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=AJDT&target_milestone=1.2.0+M3&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&resolution=FIXED&bug_severity=blocker&bug_severity=critical&bug_severity=major&bug_severity=normal&bug_severity=minor&bug_severity=trivial&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&changedin=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Bugzilla.</a>
The more notable ones are:
<ul>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=74426">74426</a> deleting aj files does not work in package explorer</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=78182">78182</a> editor tabs for .aj files are not marked with an error</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=78579">78579</a> build does not handle resource files automatically</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80920">80920</a> The visualiser menu is reset using the Resources and Markers provider</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=80923">80923</a> ajdoc doesn't work with IBM's sdk</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=83082">83082</a> NullPointerException from the Cross Reference view</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=84310">84310</a> Non-deterministic selection of build configurations</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=84967">84967</a> Headless build process fails</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=86941">86941</a> "Cleaning" project does not work</li>
<li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=89798">89798</a> Visualiser Menu does not show inner aspects correctly</li>
</ul>
</p>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td width="30%" valign="top" align="left">
<p align="right"><b>Previous releases</b></td>
<td width="70%" valign="top">
<p>See also information about the previous releases:</p>
<p><a href="../whatsnew120M2/">AJDT v1.2.0 M2 - New
and Noteworthy</a></p>
<p><a href="../whatsnew120M1/">AJDT v1.2.0 M1 - New
and Noteworthy</a></p>
</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
</table>
</body>
</html>