<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<link rel="STYLESHEET" href="http://www.eclipse.org/default_style.css" charset="ISO-8859-1" type="text/css">
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>AJDT 2.1.0 - New and Noteworthy</title>

</head>
<body>
<h1>AJDT 2.1.0 - New and Noteworthy</h1>

<table border="0" cellpadding="10" cellspacing="0" width="80%">
<tbody>
<tr>
<td valign="top"><b>Overview</b></td>
<td valign="top">In this release, we have gone further with our support for Intertype Declarations (ITDs).  
Due to frameworks like <a href="http://www.springsource.org/roo">Spring Roo</a>, AspectJ and AJDT
having been growing in popularity.  Spring Roo uses ITDs heavily and as such, there has been a strong push
to provide even better support for them in the IDE. 
</td>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>ITD-Aware search</b></td>
<td>
AJDT now supports ITD-aware searching.  There are two parts to this feature:

<ol>
<li>Standard Java search will find references to Java elements inside an ITD.  For example, in this snippet of code, 
a search for the references to the <code>name</code> field yields two references inside of ITDs:<br/>
<img src="img/searchInsideOfITD.gif" border="1" /><br/><br/>
</li>
<li>Now, invoking Java search on an ITD will locate all of its valid references as shown in this example:><br/>
  <img src="img/searchOfITD.gif" border="1" /><br/><br/>
</li>
</ol>
For more information, see <a href="https://bugs.eclipse.org/273335">Bug 273335</a>. 
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>ITD rename refactoring</b></td>
<td>
Building on top of our new support for ITD-aware searches, we now support rename refactoring of ITD fields and methods.  You can invoke rename
refactoring for ITDs in the same way that you invoke rename refactoring for Java elements using keyboard commands (e.g.- CTRL-Shift-R on Windows)
or from the context menu.  As much as reasonable, we follow the same conventions of JDT's rename refactoring.  For example, rename an ITD and all
overriding methods will be renamed as well as the following example shows:

<ol>
<li>In the following code, notice that the <code>Person.getName()</code> is overridden in the <code>Cyborg</code>
class.  This is the method that we want to rename:<br/>
  <img src="img/rename1.gif" border="1" /><br/><br/>
</li>
<li>Select the method, right-click, Refactor, Rename...:<br/>
  <img src="img/rename2.gif" border="1" /><br/><br/>
</li>
<li>The rename dialog pops up:<br/>
  <img src="img/rename3.gif" border="1" /><br/><br/>
</li>

<li>After choosing the new name, select <em>Preview</em>:<br/>
  <img src="img/rename4.gif" border="1" /><br/>
  Notice how <code>Cyborg.getName()</code> is renamed along with the Person.getName() intertype declaration.<br/><br/>
</li>

<li>Finally, click OK to finish the refactoring and get the following result, with all references to <code>Person.getName()</code> renamed:<br/>
  <img src="img/rename5.gif" border="1" /><br/><br/>
</li>
</ol>

The rename refactoring is hooked into Eclipse's undo facility, so that all renames, even those that span multiple files, are undoable.
For more information, see <a href="https://bugs.eclipse.org/303558">Bug 303558</a>. 
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>ITD-aware renaming of getters and setters</b></td>
<td>
AJDT has added a refactoring participant to allow ITD getters and setters to be renamed when their associated field is renamed.
In order to access this functionality, the <em>Rename Getter</em> and/or <em>Rename Setter</em> check boxes must be checked
in the rename field dialog:<br/>
  <img src="img/participant1.gif" border="1" /><br/><br/>
With these check boxes selected, renaming the <code>name</code> field to <code>firstName</code> in the previous example will 
produce the following results:<br/>
  <img src="img/participant2.gif" border="1" /><br/><br/>
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Pull-out refactoring</b></td>
<td>
We have implemented the Pull-Out refactoring, which is the analog to the 
<a href="http://contraptionsforprogramming.blogspot.com/2009/05/push-in-refactoring-for-ajdt.html">Push-In refactoring</a>.
This refactoring will pull out a Java field, method, or constructor into a target Aspect as an intertype declaration.
<br/><br/>
This refactoring can be invoked from the package explorer, Java editor, outline view, or anywhere that Java elements appear.  For example:

<ol>
<li>Select the elements that you would like to pull out and invoke the refactoring wizard:<br/>
<img src="img/pullOut1.gif" border="1" /><br/><br/></li>
<li>Choose the target aspect and the appropriate options:<br/>
<img src="img/pullOut2.gif" border="1" /><br/><br/></li>
<li>Click Preview to see the proposed results (if desired):<br/>
<img src="img/pullOut3.gif" border="1" /><br/><br/></li>
</ol>

The pull out refactoring is hooked into Eclipse's undo and redo mechanism and so it 
can be undone with a single command.  For more information, see <a href="https://bugs.eclipse.org/277055">Bug 277055</a>.
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Aspect-aware type renaming</b></td>
<td>
Type references inside of Aspects are now renamed when the associated type declaration is renamed.

Here, the <code>Wibble</code> aspect contains several references to <code>Target</code> inside of
its aspect elements:<br/>
<img src="img/renameType1.gif" border="1" />
<br/><br/>
When <code>Target</code> is renamed, all references in referring aspects are renamed as well:<br/>
<img src="img/renameType3.gif" border="1" />
<br/><br/>
In some circumstances, you will see a refactoring warning:<br/>
<img src="img/renameType2.gif" border="1" />
<br/><br/>
This warning occurs due to some limitations we have with searching for references inside of aspects and
it can safely be ignored.
</td>
</tr>


<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b><code>@Test</code> and Intertype declarations</b></td>
<td>
It is now possible to run intertype declarations that are JUnit 4 tests through the 
Eclipse JUnit test launcher:<br/>
<img src="img/runTest1.gif" border="1" />
<br/><br/>
Notice here that the <code>Target</code> class is empty, and it has 2 tests declared on it as ITDs.
<br/><br/>
To run these kinds of tests, simply choose the container (type, compilation unit, package, etc) that the
tests are contained in and launch:<br/>
<img src="img/runTest2.gif" border="1" />
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>AspectJ-aware PDE Build (Helios only)</b></td>
<td>
For the Helios (Eclipse 3.6) stream, AJDT now provides PDE build integration on top of 
<a href="https://bugs.eclipse.org/303960">Bug 303960</a>.  This means that the old AJDT-PDE 
feature and wizards are superfluous and no longer exist in the 3.6 stream.
<br/><br/>
Now, plug-ins that require AspectJ can use the same PDE export wizards and headless PDE support as any other Java
plug-in.  All that is required is adding two lines to your <code>build.properties</code> file 
on all of your plug-ins that require AspectJ:
<pre>compilerAdapter=org.eclipse.ajdt.core.ant.AJDT_AjcCompilerAdapter
sourceFileExtensions=*.java, *.aj</pre>
For more information, see: <a href="http://contraptionsforprogramming.blogspot.com/2010/03/ajdt-pde-builds-redux.html">
AJDT-PDE builds redux</a>.
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Modernize the build server</b></td>
<td>
We have moved the AJDT continuous integration builds to a modern Atlassian Bamboo server.  From an end user's
perspective this does not mean much, except that you can browse the build processes as they occur.  However,
from a developer's point of view, the build process is faster, more robust, and easier to maintain over time.
<br/><br/>
From an end-user's perspective, it is now possible to closely monitor the development releases of AJDT. 
If you are interested, you can see the build server at: <a href="http://build.springframework.org/browse/AJDT">http://build.springframework.org/browse/AJDT</a>.
For more information, see <a href="https://bugs.eclipse.org/298913">Bug 298913</a>.
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>AspectJ 1.6.9</b></td>
<td>
AJDT 2.1.0 includes AspectJ 1.6.9.  This release has several new features including
transparent weaving, intertype inner types, overweaving, and a reduction of class
file size.  See the <a href="http://eclipse.org/aspectj/doc/released/README-169.html">readme</a> for all details. 
</td>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Bug Fixes</b></td>
<td>
See <a href="http://tinyurl.com/35h4asy">Bugzilla</a> for a list of bugs addressed in this release.
</td>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Thanks!</b></td>
<td>
We now have a new member on the AJDT team, Kris De Volder.  Kris is joining us from the University of British 
Columbia, where his focus was AOP and code browsing using AOP techniques to help understand large code-bases.  Kris 
is the implementor of the pull out refactoring.  Welcome aboard! 
</td>


</tr>
<tr>
<td colspan="2">
<hr></td>
<tr>
<td valign="top"><b>Previous Releases</b></td>
<td>
See <a href="http://www.eclipse.org/ajdt/whatsnew202/index.html">here</a> 
for information on the new features in AJDT 2.0.2.
</td>
</tr>
</tbody>
</table>
</body></html>
