diff options
author | aclement <aclement> | 2011-08-18 18:13:39 +0000 |
---|---|---|
committer | aclement <aclement> | 2011-08-18 18:13:39 +0000 |
commit | 4facad980963f930545b2ee7cd21d5ba916e326c (patch) | |
tree | ac361134eb5f95240051a7356cd919486c9535a9 /docs | |
parent | 66e8e199fea4bbcb81c3d407f9c9d90b12ed2305 (diff) | |
download | aspectj-4facad980963f930545b2ee7cd21d5ba916e326c.tar.gz aspectj-4facad980963f930545b2ee7cd21d5ba916e326c.zip |
1.6.12.M2
Diffstat (limited to 'docs')
-rw-r--r-- | docs/dist/doc/README-1612.html | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/docs/dist/doc/README-1612.html b/docs/dist/doc/README-1612.html index fbe5a646b..e813e23b2 100644 --- a/docs/dist/doc/README-1612.html +++ b/docs/dist/doc/README-1612.html @@ -23,10 +23,77 @@ All rights reserved. <p>The full list of resolved issues in 1.6.12 is available <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;bug_status=RESOLVED;bug_status=VERIFIED;bug_status=CLOSED;product=AspectJ;target_milestone=1.6.12;">here</a></h2>.</p> + +<h4>1.6.12.M2 available 18-Aug-2011</h4> <h4>1.6.12.M1 available 7-Jun-2011</h4> <h2>Notable Changes</h2> + +<hr> +<h3>M2 - thisAspectInstance (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=239649">bug239649</a>)</h3> +<p> +There is now a new well known name that you can use in the if clauses in your aspects. <tt>thisAspectInstance</tt> provides access to the aspect instance. + +Here is an example: + +<code><pre>aspect X { + boolean doit() { + System.out.println("In instance check method doit()"); + return true; + } + + before():execution(* m(..)) && if(thisAspectInstance.doit()){ + System.out.println(thisJoinPoint); + } +}</pre></code> + +<p>Now why not just use <tt>X.aspectOf()</tt> instead of <tt>thisAspectInstance</tt>? Well <tt>thisAspectInstance</tt> is quite useful +when working with abstract/concrete aspects: + +<code><pre> +abstract aspect X { +abstract pointcut p(); + +boolean doit() { + return true; + } + + before():p() && if(thisAspectInstance.doit()){ + System.out.println(thisJoinPoint); + } +} + +aspect Y extends X { + + pointcut p(): execution(* m(..)); + +}</pre></code> + +<p>Now <tt>thisAspectInstance</tt> will be an instance of the Y, not X. + +It enables the aspect instance to be used in some kind of check/guard that will avoid the costly creation of a thisJoinPoint object if +the advice isn't going to run. + +<b>Note:</b> right now this only works for singleton aspects. If you have need of it with other instantiation models, please comment on +<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=239649">https://bugs.eclipse.org/bugs/show_bug.cgi?id=239649</a> +</p> +<h3>M2 - weaving groovy</h3> +<p> +Although we have been successfully weaving groovy for a long time, it is becoming more popular and a few issues have been uncovered +when using non-singleton aspects with groovy code. These have been fixed. +</p> + +<h3>M2 - AJDT memory</h3> +<p> +The release notes for the last few versions of AspectJ have mentioned two options (minimalModel and typeDemotion) which can be +switched on to reduce memory consumption. They have had enough field testing now and from 1.6.12.M2 onwards they are on by default. +Users should see a reduction in memory consumed by AspectJ projects in AJDT. It won't affect load time weaving. It may also help +command line (or Ant) compile time weaving. If these options cause a problem then please raise a bugzilla but in the interim you could +work around the problem by actively turning them off by +specifying <tt>-Xset:minimalModel=false,typeDemotion=false</tt> in the project properties for your AspectJ project. +</p> + <hr> <h3>M1 - synthetic is supported in pointcut modifiers <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=327867">327867</a></h3> <p>It is now possible to specify synthetic in pointcuts: |