blob: 3c43bfded44d0fffe63c286a7676cf92384e6b81 [file] [log] [blame]
<!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.1 - New and Noteworthy</title>
</head>
<body>
<h1>AJDT 2.1.1 - 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 focussed on searching
and refactoring support for Intertype Declarations (ITDs) and Declare
declarations. This will particularly benefit users of <a
href="http://www.springsource.org/roo">Spring Roo</a> who will be
better able to search and refactor source code that contains
Roo-style aspects.</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="center">
<h3>Searching</h3>
</td>
</tr>
<tr>
<td valign="top"><b>Searching for ITD target types</b></td>
<td>Target types of intertype declarations now appear in the
search results when searching for type references: <br />
<br />
<img /> <br />
<br />
</td>
</tr>
<tr>
<td valign="top"><b>Searching for Declare parents</b></td>
<td>Types referenced inside of declare parents declarations are
also returned in search results where appropriate: <br />
<br />
<img /> <br />
<br />
This even works for referenced annotations: <br />
<br />
<img /> <br />
<br />
There are some caveates, however. Wild cards are not supported. Also,
type bindings are sometimes not respected, meaning that two types
with the same name, but different packages may be inappropriately
matched.</td>
</tr>
<tr>
<td valign="top"><b>Searching for Declare annotation</b></td>
<td>And finally, types, methods, and fields referenced inside of
declare annotation declarations are similarly found when searching
for references: <br />
<br />
<img /></td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td colspan="2" valign="top" align="center">
<h3>Refactoring</h3>
</td>
</tr>
<tr>
<td valign="top"><b>Rename refactoring</b></td>
<td>Rename refactoring is working in almost all situations.
Intertype declarations can be renamed; fields, methods, and types
referenced inside of Aspects will be appropriately renamed; and AJ
Compilation units will be renamed when appropriate. Most of this work
was completed for the <a href="../whatsnew210/index.html">2.1.0
release</a>, with some small fixes included in this release. The most
significant improvement in this area is that package renames are
properly reflected in the import statements and fully qualified names
of AJ compilation units. <br />
<br />
<img /> <br />
<br />
AJDT does not currently support the renaming of named pointcuts.</td>
</tr>
<tr>
<td valign="top"><b>Move refactoring</b></td>
<td>Similarly, move refactoring is AspectJ-aware. Import
statements and fully qualified names will be properly updated in
Aspects when types and compilation units move. It is also possible to
drag and drop types, fields, and methods into aspects, with the same
behavior as you would expect when the project is pure Java.</td>
</tr>
<tr>
<td valign="top"><b>Pull-out refactoring enhancements</b></td>
<td>It is now possible to choose a non-existant aspect as the
target of a Pull-out refactoring. This aspect will be created as part
of the refactoring operation.</td>
</tr>
<tr>
<td valign="top"><b>Catalog of working refactorings in AJ
files</b></td>
<td>In this release, we have done significant work in making
sure that the standard JDT refactorings are available when inside an
Aspect. We have focussed on the more widely used refactorings, and
left some of the less popular refactorings unimplemented. In addition
to the AspectJ-specific <strong>Push in</strong> abd <strong>Pull
out</strong> refactorings, and the standard <strong>Rename</strong> and <strong>Move</strong>here
are the JDT refactorings that are currently known to work in AJDT:
<ul>
<li>Push Down</li>
<li>Extract Class</li>
<li>Pull up</li>
<li>Push down</li>
<li>Use super type where possible</li>
<li>Inline</li>
<li>Extract Method</li>
<li>Extract Local Variable</li>
<li>Extract Constant</li>
<li>Introduce indirection</li>
<li>Introduce parameter (non-advice)</li>
</ul>
The following refactorings will produce correct results, even though
the refactoring wizard complains about compilation errors:
<ul>
<li>Change method signature</li>
<li>Introduce Parameter Object (inside non-ITD method)</li>
</ul>
And finally, the following refactorings produce errors and do not
work inside aspects:
<ul>
<li>Extract super class</li>
<li>Infer generic arguments where possible</li>
<li>Introduce Parameter (inside advice)</li>
<li>Introduce Parameter Object</li>
<li>Convert Local variable to a field</li>
<li>Encapsulate field</li>
</ul>
If you want us to fix any of the above refactorings, or you notice a
problem with one of the existing refactorings, please notify us on
the mailing list or raise a bugzilla request for it.</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td valign="top"><b>AspectJ 1.6.10</b></td>
<td>AJDT 2.1.0 includes AspectJ 1.6.10. See the <a
href="http://eclipse.org/aspectj/doc/released/README-1610.html">readme</a>
for details.</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td valign="top"><b>Bug Fixes</b></td>
<td>See <a href="http://tinyurl.com/297kbp7">bugzilla</a> for a
list of bugs addressed in this release.</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td valign="top"><b>Previous Releases</b></td>
<td>See <a
href="http://www.eclipse.org/ajdt/whatsnew210/index.html">here</a>
for information on the new features in AJDT 2.1.0.</td>
</tr>
<tr>
<td colspan="2">
<hr>
</td>
</tr>
<tr>
<td valign="top"><b>Thanks!</b></td>
<td>Thanks for community help and feedback during this release
cycle. You can contact the AJDT team on the <a
href="https://dev.eclipse.org/mailman/listinfo/ajdt-dev">mailing
list</a>, and raise bugs on <a href="https://bugs.eclipse.org/bugs/">bugzilla</a>.
We also lurk on the <a
href="http://eclipse.org/aspectj/userlists.php">AspectJ users
list</a>, and on the <a
href="http://forum.springsource.org/forumdisplay.php?f=32">SpringSource
Tool Suite forum</a>.</td>
</tr>
</tbody>
</table>
</body>
</html>