From 4facad980963f930545b2ee7cd21d5ba916e326c Mon Sep 17 00:00:00 2001 From: aclement Date: Thu, 18 Aug 2011 18:13:39 +0000 Subject: [PATCH] 1.6.12.M2 --- docs/dist/doc/README-1612.html | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) 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.

The full list of resolved issues in 1.6.12 is available here.

+ +

1.6.12.M2 available 18-Aug-2011

1.6.12.M1 available 7-Jun-2011

Notable Changes

+ +
+

M2 - thisAspectInstance (bug239649)

+

+There is now a new well known name that you can use in the if clauses in your aspects. thisAspectInstance provides access to the aspect instance. + +Here is an example: + +

aspect X {
+  boolean doit() {
+    System.out.println("In instance check method doit()");
+    return true;
+  }
+
+  before():execution(* m(..)) && if(thisAspectInstance.doit()){
+    System.out.println(thisJoinPoint);
+  }
+}
+ +

Now why not just use X.aspectOf() instead of thisAspectInstance? Well thisAspectInstance is quite useful +when working with abstract/concrete aspects: + +

+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(..));
+
+}
+ +

Now thisAspectInstance 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. + +Note: right now this only works for singleton aspects. If you have need of it with other instantiation models, please comment on +https://bugs.eclipse.org/bugs/show_bug.cgi?id=239649 +

+

M2 - weaving groovy

+

+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. +

+ +

M2 - AJDT memory

+

+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 -Xset:minimalModel=false,typeDemotion=false in the project properties for your AspectJ project. +

+

M1 - synthetic is supported in pointcut modifiers 327867

It is now possible to specify synthetic in pointcuts: -- 2.39.5