| <!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 1.6.5- New and Noteworthy</title> |
| |
| </head> |
| <body> |
| <h1>AJDT 1.6.5 - 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"> |
| Although only a month after the release of <a href="../whatsnew164/index.html">AJDT 1.6.4</a>, we have been able to sneak |
| enough goodies into AJDT to justify another release. |
| </td> |
| </tr> |
| <tr> |
| <td valign="top"><b>Release note</b></td> |
| <td valign="top"> |
| Unfortunately, due to IP issues, we cannot release AJDT 1.6.5 as a full public release. Some external code |
| that is included with AJDT (Equinox Aspects) has not yet completed Eclipse's IP process. This is blocking |
| AJDT from putting out a full public release. Instead, we are releasing AJDT 1.6.5 as a release candidate |
| in a separate update site. The update site to use is here: |
| <pre>http://download.eclipse.org/tools/ajdt/34/RC/update</pre> |
| <br/> |
| <br/> |
| All code distributed with AJDT is EPL and as far as we know, there are no IP conflicts with it. However, the Eclipse Foundation has |
| <a href="http://wiki.eclipse.org/IPzilla">very rigorous intellectual property checks</a>. This is one of the foundation's strengths, |
| and it helps ensure that all publicly released Eclipse code is <em>IP clean</em>. |
| <br/> |
| <br/> |
| So, AJDT 1.6.5 has not been thoroughly checked for IP cleanliness, but in terms of quality and feature completeness, |
| it is on the level of our public releases. |
| </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>. |
| </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 1.6.5 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> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-eclipse-plugin</artifactId> |
| <version>2.5.1</version> |
| <configuration> |
| <additionalBuildcommands> |
| <buildCommand> |
| <name>org.eclipse.ajdt.core.ajbuilder</name> |
| <arguments> |
| <aspectPath>org.springframework.aspects,org.springframework.aop</aspectPath> |
| </arguments> |
| </buildCommand> |
| </additionalBuildcommands> |
| <additionalProjectnatures> |
| <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature> |
| </additionalProjectnatures> |
| </configuration> |
| </plugin> |
| </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> |
| Over 30 bugs have been resolved for 1.6.5. |
| See <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AJDT&target_milestone=1.6.5&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Bugzilla</a> |
| for a complete list of bugs. |
| </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/1493 ">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> |