<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="Content-Language" content="en-us">
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="STYLESHEET" href="http://www.eclipse.org/default_style.css" charset="ISO-8859-1" type="text/css">  
    <title>AJDT v1.1.12 - New and Noteworthy</title>
  </head>

  <body>
    <h1>AJDT v1.1.12 - 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>New project properties</b></td>
    <td width="70%" valign="top">

      <p>In addition to the global preferences for the AspectJ
      compiler, you can now alter these settings individually for each
      project.</p>

      <img src="compilerproperties.png" width="510" height="190">

    </td>
  </tr>

  <tr>
    <td colspan="2">
      <hr>
    </td>
  </tr>

  <tr>
    <td width="30%" valign="top" align="left">
      <p align="right"><b>Related locations</b></td>
    <td width="70%" valign="top">

      <p>Errors and warnings produced by <code>declare error</code>
      and <code>declare warning</code> statements are displayed in the
      problems view, and double-clicking on these entries opens the
      editor at the location of the error or warning. Often the
      declaration that produced these errors or warnings is also of
      interest. You can now navigate to that declaration by
      right-clicking on the gutter annotation, and selecting from the
      "Go To Related Location" menu.</p>

      <img src="relatedlocation.png" width="397" height="262">

      <p>Also, this same mechanism is used by certain errors thrown by
      the AspectJ compiler. For example, a syntax error might relate
      to a source code location where some advice applies. In this
      case, that source location would appear in the problems
      view. But the syntax error might actually occur in the pointcut
      declaration. If that additional pointcut source location is
      present in the error issued by the compiler, it will now be
      shown in the "Go To Related Location" menu for the error gutter
      annotation.</p>

    </td>
  </tr>

  <tr>
    <td colspan="2">
      <hr>
    </td>
  </tr>

  <tr>
    <td width="30%" valign="top" align="left">
      <p align="right"><b>Export AspectJ plugins</b></td>
    <td width="70%" valign="top">

      <p>You can now export AspectJ-enabled plugins by right clicking
      on a plugin project and selecting <b>Export &gt; Deployable
      plug-ins and fragments with AspectJ support.</b> (This wizard
      uses the <code>iajc</code> Ant task instead of the
      <code>javac</code> task.)</p>

      <img src="ajpluginexport.png" width="425" height="207">

    </td>
  </tr>

  <tr>
    <td colspan="2">
      <hr>
    </td>
  </tr>

  <tr>
    <td width="30%" valign="top" align="left">
      <p align="right"><b>Java completion for .aj files</b></td>
    <td width="70%" valign="top">

      <p>Code completion against Java types is now available for
      aspects contained in .aj files.</p>

    </td>
  </tr>

  <tr>
    <td colspan="2">
      <hr>
    </td>
  </tr>

  <tr>
    <td width="30%" valign="top" align="left">
      <p align="right"><b>Gutter annotations</b></td>
    <td width="70%" valign="top">

      <p>Gutter annotations are now shown for advice declared in
      aspects that are contained in JAR files, including where an
      abstract aspect is in a JAR file, and the concrete aspect is in
      a source file in a project. The resources show as "injar
      aspects" (and cannot be navigated to).</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>AJDT 1.1.12 also contains a number of bug fixes and minor
      enhancements, including:</p>

      <ul>
	<li>70290: Visualizer Plugin not loaded in runtime-workbench</li>
	<li>70524: NPE when compiling method that has missing return type</li>
	<li>70248: Aspect changes to class on undo on AJDT 1.1.11</li>
	<li>46665: Output folder for source folder not utilized</li>
	<li>61679: Editors and outline view get screwed up when "close editors automatically" is set</li>
	<li>62265: get is highlighted when used as a method</li>
	<li>71060: Make .aj/.java preference for New Aspect wizard global</li>
	<li>70288: AJDT-enabled plugin projects lead to build problems of dependent plugin projects</li>
	<li>70335: Compiler messages leaking with linked source folders.</li>
	<li>70249: AspectJ warnings disabled by default on upgrade</li>
	<li>70237: Renaming of project throws exception</li>
	<li>71554: AspectJ code templates do not get installed</li>
	<li>71624: NPE on Eclipse 3.0.1 builds</li>
	<li>71056: New AspectJ Project wizard should interpret any contents that exist at specified location.</li>
	<li>48624: aspect visualizer fails with linked folders</li>
	<li>71718: Setting breakpoints does not work (in default package)</li>
      </ul>

    </td>
  </tr>

  <tr>
    <td colspan="2">
      <hr>
    </td>
  </tr>

  <tr>
    <td width="30%" valign="top" align="left">
      <p align="right"><b>Previous release</b></td>
    <td width="70%" valign="top">

<p>See also information about the previous release:</p>

<p><a href="../whatsnew1111/">AJDT v1.1.11 - New and Noteworthy</a></p>

  <tr>
    <td colspan="2">
      <hr>
    </td>
  </tr>

</table>

  </body>
</html>
