<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>AJDT Release Notes for 1.2.0M3</title>
<link rel="stylesheet" href="http://www.eclipse.org/default_style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF">

<h2>AJDT Release Notes for 1.2.0M3</h2>

<p>This document contains migration information and known
limitations. It will be updated as necessary as any new problems and
workarounds are discovered.</p>

<p><i>Last updated: 13 April 2005.</i></p>

<h3>Migration issues</h3>

<p>It is easiest to install 1.2.0M3 with a new, empty workspace, and
check-out your projects into that. However when that isn't possible or
desirable, you can upgrade an existing workspace, as long as you are
aware of the following issues.</p>

<p><b>Open Editors.</b> The AspectJ Editor has a different Eclipse
identifier in the 1.2.0 stream. This means that any files open with the editor from a
1.1.x version of AJDT
will not be restored after upgrading to 1.2.0M3, and you will get a
"Problem restoring workbench layout" message about this. It is therefore
recommended that you close all open editors before performing the
upgrade.</p>
  
<p><b>PDE Projects.</b> If you have AspectJ-enabled plugin projects
from a 1.1.x version of AJDT,
you need to change the dependency on the org.aspectj.ajde plugin to be
org.aspectj.runtime instead. You can of course do this after
performing the upgrade.</p>

<p><b>Resource filters for .aj files.</b> If you have defined your own
custom filter settings in the package explorer before installing 1.2.0M3,
you will get a warning dialog about the ".aj resource filter" being disabled.
If you see this please follow the instructions listed in the dialog, otherwise
any .aj files will appear twice in the package explorer - once as compilation
units and again as plain files.</p>

<p><b>Outline and Cross References views.</b> The default mode in 1.2.0M3 is
to use the standard outline view rather than the customized one
that was used previously, and use the Cross References view to see crosscutting information.
If you have existing projects built with any previous release of AJDT, you will
need to rebuild these in order to see the new advice decorator in the outline view and the
crosscutting information in the new view.  </p>

<p><b>AspectJ code in ".java" files.</b> Most of the new functionality in 1.2.0M3 requires all
AspectJ code to be contained in ".aj" files. Code in ".java" files should be pure Java code.
There is a file extension conversion wizard to help with this process, which can be launched
by right-clicking on a project or source file and selecting the appropriate option from the
context menu.</p>

<h3>Known limitations and workarounds</h3>

<p><b>Supported versions of Eclipse.</b> This release of AJDT consists of a
version for Eclipse 3.0 and one for Eclipse 3.1M6. It will not work properly
on any other build of Eclipse 3.1.</p>

<p><b>Moving .aj files within the package explorer.</b> Most files can
be dragged to new locations within the package explorer, but
unfortunately this isn't currently possible with .aj files.  You
should however be able to copy and paste an .aj file to a new
location. You can also drag and drop .aj files from the package
explorer to applications outside of Eclipse, and back again.</p>

<p><b>File conversion wizard with excluded inner aspects.</b> The
default mode of this wizard converts source files containing aspects
to .aj files. This includes Java classes which contain innner
aspects. However inner aspects are currently only detected in classes
which are included in the current build configuration. Therefore if
you're using this mode of the wizard you are recommended to make sure
any classes with inner aspects are first included in the current
configuration.</p>

<p><b>Organise imports with imported aspects.</b> This operation is 
possible for aspects contained in
.aj files, but it isn't aware of imported aspects. So if your aspect
is extending an abstract aspect which is in a different package, you
need to import it. But running organise imports will not add it, and
if it is there already, it will unhelpfully remove it! You can at
least do an undo to get it back. Similiarly, the add import action
will not work for imported aspects.</p>

<p><b>Checking out AspectJ projects from CVS.</b> Previously, if you
had Java projects which depend on AspectJ projects, and you checked
out all of the projects from CVS, then the dependent Java projects
would say that they can't be built until their prerequisite projects
have been rebuilt. Rebuilding the AspectJ projects in this case does
not fix the problem. This issue has been reported as bug <a
href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73435">73435</a>. This
release contains a workaround for this problem, which is to detect
this situation and then disable the Eclipse preference "Abort build
when build path errors occur", which is located under Preferences &gt;
Java &gt; Compiler &gt; Build Path. This results in both the AspectJ
projects and the Java projects building. Note that if the dependent
java projects use project settings rather than workspace settings,
then it is these which are updated to not abort a build when there are
classpath errors and you are able to revert your workspace settings
without seeing the problem marker against your java projects. If you
don't want your workbench settings to change, then converting your
AspectJ projects to Java projects then back to AspectJ projects also
solves this problem.  Note that this does not work on M6, so if you
encounter this problem you can either change this setting manually
or convert your AspectJ projects to Java projects and back. </p>

<p><b>Cross References view.</b> The cross references view is a new
contribution to AJDT and as such you may experience some problems.
It is already known that 'declare soft' references are not shown. If you
discover a bug please report it, if it has not already been reported, at
<a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AJDT">
https://bugs.eclipse.org/bugs/enter_bug.cgi?product=AJDT</a></p>

<p><b>Visualiser changes.</b> In this milestone the Visualiser requires
you to have done a build before it can show any crosscutting - it
does not persist the data between Eclipse sessions. The Visualiser also
no longer supports aspects in .java files.</p>

</body>
</html>
