<!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.0.0 - New and Noteworthy</title>

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

<table border="0" cellpadding="10" cellspacing="0" width="80%">
<tbody>
<tr>
<td valign="top"><b>Overview<br>and new versioning scheme</b></td>
<td valign="top">
<b>Today, we introduce AJDT 2.0.</b>  Over the past year, there have been many changes to this project.  
Some have been functional: better intertype declaration support, Java search support for Aspects, Aspect-aware reconciling, etc.
Some have been non-functional: faster and more robust incremental builds, better inter-project dependency analysis.  Some have been
structural and API: a new, more compact, and incrementally updated crosscutting model.  Some have been fundamental: using AspectJ to weave 
into JDT to provide better Eclipse integration.  
<br>
<br>
All these changes so far have been crammed into 1.6 maintenance releases due to 
the tradition of pegging AJDT minor versions (e.g., <em>1.6</em>) to Eclipse minor versions (e.g., <em>3.4</em>).  We now believe that
this tradition has outlived its usefulness and is proving to be more confusing than helpful for users.  For the current and future
releases of AJDT, we have decided to move towards a more common use of versioning based on feature and API changes.
<br>
<br>
From now on, changes to the micro part of the version number will indicate only trivial functionality changes and bug fixes.  
Changes to the minor part of version number will indicate that no major functionality or API has been introduced or changed.
And changes to the major part of the version number will indicate that the new version has some significant enhancements
in it.
<br>
<br>
AJDT releases targeting different Eclipse versions will use the same <code>major.minor.micro</code> scheme, but
there will be a noticeable difference in the qualifier.  For example:
<table>
<tr>
<td>Release for AJDT targeting Eclipse 3.5:</td><td>2.0.0_e35x2009XXXXXX</td>
</tr>
<tr>
<td>Release for AJDT targeting Eclipse 3.4:</td><td>2.0.0_e34x2009XXXXXX</td>
</tr>
</table>

For the first 6 months after a new release of Eclipse, we will be releasing maintenance versions of AJDT 
targeting the previous versino of Eclipse.  And after that we will only do so if there is a major bug found
or if there is significant community desire to do so.  Also, around this time, we will start to produce 
development builds targeting the next version of Eclipse (e.g., <em>e36x</em>)
<br>
<br>
So this means that AJDT 1.6.5 has been renamed AJDT 2.0.0_e34x and AJDT 1.7.0 has been renamed AJDT 2.0.0_e35x.  Although this is 
potentially confusing in the short term, we believe in the long term, this will be more informative and users will be able to 
read the version and immediately know which Eclipse version it targets and also what feature level it contains. 
<br>
<br>
With that important bit of information explained, below are the bug fixes and new features introduced in the 2.0 release since AJDT 1.6.4. 
</td>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>ITD Hovers and Hyperlinking</b></td>
<td>
AJDT now supports ITD-aware text hovers and hyperlinking.<br/><br/>

Hovering over a method that is declared as an ITD will display the JavaDoc of that method:<br/>
<img src="itd_hover.gif" border="1"/><br/><br/>

Similarly, pressing <strong>F3</strong> or <strong>CTRL-Click</strong> on an identifier that is declared as an ITD 
will navigate to the ITD's declaration:<br/>
<table><tr valign="center">
<td><img src="itd_opendecl_source.gif" border="1"/></td><td><img src="arrow.gif"/></td><td><img src="itd_opendecl_dest.gif" border="1"/></td>
</tr></table>
<br/><br/>
For more information, see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=273334">Bug 273334</a>. 
<br/><br/>
Note, like all other ITD awareness support, a successful build since the last restart of the workspace is required.
</td>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Push-In refactoring</b></td>
<td>
In AJDT 2.0, we have introduced the new <em>Push-In</em> refactoring.  <br/><br/>

Essentially, the refactoring <em>pushes</em> intertype declarations into their target types. 
So, when a push in refactoring is applied to the following aspect and class:
<br><br><pre><br>aspect Foo {<br>  int Bar.x;<br>  declare parents : Bar implements I;<br>  declare @type : Bar : @Baz;<br>}<br><br>class Bar { }<br></pre><br><br>
the result is:
<br><br><pre><br>@Baz<br>  class Bar implements I {<br>  int x;<br>}<br></pre>
The Foo aspect is deleted because it is empty.<br/><br/>

This refactoring is available from the package explorer, the outline view, and wherever else Java elements appear in a hierarchy. 
To use, select the ITDs or set of ITDs that you want to push in. You can select an entire project, source folder, or package to 
push all of its ITDs into the target types:
<br>
<img src="push_in.jpg" border="1"/><br><br>

See <a href="http://contraptionsforprogramming.blogspot.com/2009/05/push-in-refactoring-for-ajdt.html">AJDT's blog</a> for a detailed explanation of the refactoring.
</td>
</tr>

<tr>
<td colspan="2">
<hr></td></tr>
<tr>
<td valign="top"><b>Crosscutting support for ITDs on the inpath</b></td>
<td>
AJDT now shows ITD and declare parents relationships that are targeting elements on the inpath.  For example, 
below are a simple aspect and a simple class that is on the inpath.  The inpath relationships now appear 
in the gutter marker and in the X Refs view (<em>C</em> is a class that is on the inpath). 
<br/>
<br/>
<img src="inpath_rels.gif" border="1"/>
<br/>
<br/>
Note that we do not support displaying advice relationships on the inpath, nor do we show the inverse relationship
on the inpath.  See <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=273086">Bug 273086</a> and
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=273087">Bug 273087</a> respectively.

<p>More information can be found in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=271269">Bug 271269</a>.</p>
</td>
</tr>

<tr>
<td colspan="2">
<hr></td></tr>
<tr>
<td valign="top"><b>Linked source folders</b></td>
<td>
AJDT now supports linked source folders.  In the image below, you can see that crosscutting relationships 
can apply across linked folders.  Here, the <em>fromMyDesktop</em> folder is a linked source folder
to the file system directory <em>/Users/andrew/Desktop/link</em>.  
<br/>
<br/>
<img src="linked.gif" border="1"/>
<br/>
<br/>
Note that we typically recommend using linked source folders instead of inpath relationships where 
possible.  The reason is that the AspectJ compiler can perform better incremental analysis on linked
folders than it can with inpath folders.  This is because linked folders are considered part of the
source of project and the compiler stores more specific state on these kinds of folders.
<br/>
<br/>
More information can be found in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=253555">Bug 253555</a>
and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=253555">Bug 275903</a>.
</td>
</tr>

<tr>
<td colspan="2">
<hr></td></tr>
<tr>
<td valign="top"><b>AJDT Event Trace enhancements</b></td>
<td>

It is now possible to print the hierarchies and relationship maps of all projects
in the workspace into the event trace view.  This information can be accessed by clicking on the this button
in the AJDT Event Trace view:<br>
<img src="event_trace.gif" border="1"/><br>
in the AJDT Event Trace view.
<br/>
<br/>
For example, the hierarchy and relationship map for the <em>DeclareParents on Inpath</em> project displayed above is:

<pre>
9:2:18 Printing crosscutting model for all AspectJ projects in the workspace
9:2:18 
9:2:18 --------------------------------------
9:2:18 Printing crosscutting model for DeclareParents on Inpath
9:2:18 
Hierarchy:
=DeclareParents on Inpath/src
  =DeclareParents on Inpath/src<
    =DeclareParents on Inpath/src<*A.aj
      =DeclareParents on Inpath/src<*A.aj#
      =DeclareParents on Inpath/src<*A.aj}A
        =DeclareParents on Inpath/src<*A.aj}A[E
        =DeclareParents on Inpath/src<*A.aj}A`declare parents
        =DeclareParents on Inpath/src<*A.aj}A)C.x

Relationship map:
=DeclareParents on Inpath/src<*A.aj}A)C.x ::
	=DeclareParents on Inpath/src<*A.aj}A)C.x --declared on--> [=DeclareParents on Inpath/,<(C.class[C]
=DeclareParents on Inpath/,<(C.class[C ::
	=DeclareParents on Inpath/,<(C.class[C --aspect declarations--> 
	[=DeclareParents on Inpath/binaries<*AnotherAspect.aj}AnotherAspect`declare parents, 
	=DeclareParents on Inpath/src<*A.aj}A`declare parents, =DeclareParents on Inpath/src<*A.aj}A)C.x]
=DeclareParents on Inpath/src<*A.aj}A`declare parents ::
	=DeclareParents on Inpath/src<*A.aj}A`declare parents --declared on--> [=DeclareParents on Inpath/,<(C.class[C]

9:2:18 --------------------------------------
</pre>

The information spit out here corresponds to internal <em>handles</em> used by AspectJ and AJDT to 
describe the crosscutting relationships in a project.  These handles correspond to program elements 
that represent things like advice declarations, method declarations, source folders, etc.
Although this feature is meant for diagnostic purposes, 
it can be used to introspect your project and help you understand a little more about AJDT and AspectJ internals.
<b>Warning:</b> the crosscutting model can be large and dump significant amount of text to the Event Trace view.
<br/>
<br/>
More information can be found in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=271668">Bug 271668</a>
</td>
</tr>

<tr>
<td colspan="2">
<hr></td></tr>
<tr>
<td valign="top"><b>Better support for AJDT and Maven</b></td>
<td>
In the past, users of Maven and AJDT who are not using the m2eclipse
maven integration plugin for Eclipse could not specify Aspect path elements
through the pom.xml.  Additionally, the projects would often be erroneously 
configured with the an extra <em>javaBuilder</em>.

AJDT 2.0.0 now addresses both of these issues in a generic way.  To specify aspects libraries to go 
on the aspect path from within a pom.xml, add the following:

<pre>
&lt;plugin&gt;
  &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
  &lt;artifactId&gt;maven-eclipse-plugin&lt;/artifactId&gt;
  &lt;version&gt;2.5.1&lt;/version&gt;
  &lt;configuration&gt;
    &lt;additionalBuildcommands&gt; 
    &lt;buildCommand&gt;
      &lt;name&gt;org.eclipse.ajdt.core.ajbuilder&lt;/name&gt; 
      &lt;arguments&gt;
        &lt;aspectPath&gt;org.springframework.aspects,org.springframework.aop&lt;/aspectPath&gt; 
      &lt;/arguments&gt;
    &lt;/buildCommand&gt; 
    &lt;/additionalBuildcommands&gt;
    &lt;additionalProjectnatures&gt;
      &lt;projectnature&gt;org.eclipse.ajdt.ui.ajnature&lt;/projectnature&gt;
    &lt;/additionalProjectnatures&gt;
    &lt;/configuration&gt;
&lt;/plugin&gt;
</pre>

Inside the <em>arguments</em> element, specify a comma separated list of <em>aspectPath</em> elements.  The
builder then looks for any jar file or binary folder on the raw classpath that contains the specified string.  So,
the above would add any of <em>org.springframework.aspects_2.5.1.jar</em>, <em>org.springframework.aspects_3.0.0.jar</em>,
or <em>org.springframework.aop_2.5.1.jar</em> onto the aspect path of the project if the jar files already 
exist on the classpath.
<br/>
<br/>
<b>Note the use of version 2.5.1.</b>  Unfortunately, version 2.6 of the Maven-Eclipse-Plugin <a href=http://jira.codehaus.org/browse/MECLIPSE-538">
does not support AJDT</a>.  Version 2.7 should fix this problem.
<br/>
<br/>
More information can be found in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=270552">Bug 270552</a>, 
<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=270554">Bug 270554</a>, 
and <a href=http://jira.codehaus.org/browse/MECLIPSE-538">MECLIPSE-538</a>.
</td>
</tr>

<tr>
<td colspan="2">
<hr></td></tr>
<tr>
<td valign="top"><b>Scoping for ITDs in content assist</b></td>
<td>
Intertype declarations will now only appear in content assist if they are properly accessible in the current
scope.  For example, the following two editors show a <em>Point</em> class and an aspect that 
inserts ITDs into it.  In this first image, you can see that the content assist in the <em>PointSetters</em> aspect 
correctly shows the <em>logger</em> field, which is private to <em>PointSetters</em>:
<br/>
<br/>
<img src="content_assist1.gif" border="1" />
<br/>
<br/>
In this second image, the content assist inside of <em>Point</em> does not show the <em>logger</em> field, but still shows
the <em>getX</em> and <em>getY</em> methods.
<br/>
<br/>
<img src="content_assist2.gif" border="1" />
<br/>
<br/>
More information can be found in <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=272547">Bug 272547</a>
</td>
</tr>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Bug Fixes</b></td>
<td>
Here are some interesting statistics from our friendly Bugzilla database
<ul>
	<li>Bugs closed for this release: <a href="http://tinyurl.com/qc4ymf">52 bugs</a></li>
	<li>Bug closed since April '08: <a href="http://tinyurl.com/mnvhr4">248 bugs</a></li>
	<li>Outstanding bugs targeting 2.0.0 and onward: <a href="http://tinyurl.com/ojeqja">53 bugs</a></li>
	<li>New, unresolved bugs since April '08: <a href="http://tinyurl.com/ko6bp6>71 bugs</a></li>
	<li><em>All</em> open bugs in AJDT: <a href="http://tinyurl.com/luyfj6">115 bugs</a></li>
</ul>
<em>Why April '08?  That's when we added someone full time to work on AJDT, and breathed new life into the project.</em>
</td>

<tr>
<td colspan="2">
<hr></td>
</tr>
<tr>
<td valign="top"><b>Thanks!</b></td>
<td>
	Thanks to those of you who have submitted patches, bug reports, and contributed to the mailing list for this release.  
	We appreciate your help.
	<br/>
	<br/>
	Also, AJDT is spreading. The Scala-Eclipse plugin 
	<a href="http://www.scala-lang.org/node/149">is now using JDT Weaving</a> to make its JDT integration deeper and more robust. 
</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/whatsnew164/index.html">here</a> 
for information on the new features in AJDT 1.6.4.
</td>
</tr>
</tbody>
</table>
</body></html>
