From: aclement Date: Mon, 21 Jun 2010 20:07:16 +0000 (+0000) Subject: 1.6.9 readme X-Git-Tag: V1_6_9RC2~8 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9934539e236b6e0aebe4d1bf2e35898752ff86e1;p=aspectj.git 1.6.9 readme --- diff --git a/docs/dist/doc/README-169.html b/docs/dist/doc/README-169.html index c75809478..55f24dc06 100644 --- a/docs/dist/doc/README-169.html +++ b/docs/dist/doc/README-169.html @@ -20,10 +20,45 @@ All rights reserved.

AspectJ 1.6.9 Readme

-

Features of 1.6.9 milestone 2

+

The full list of resolved issues in 1.6.9 is available here + +

Features

+ +

declare annotation supports compound signature patterns: 287613

+

Until now it wasn't possible to express a compound pattern in any of the declare annotation constructs that +take a member signature. For example, if you wanted to attach an annotation to all your getter like methods, you needed +two constructs

+

+declare @method: * is*(): @FooBar;
+declare @method: * get*(): @FooBar;
+
+

Now AspectJ allows compound patterns for declare @method/@constructor/@field.

+

+declare @method: (* is*()) || (* get*()): @FooBar;
+
+ +

'Optional' aspects: 310506

+ +

It is not uncommon to ship a library aspect separately to a jar upon which it depends. In the case of Spring there is +an aspect library containing a multitude of aspects that attach different technologies (transactions/persistence/etc) to your +application. Normally an aspect will fail with a "can't find type" style message if a weaver is told to use it and yet it +references some missing dependency. This can be annoying and require you to include jars on your classpath (or in your maven +configuration) that you don't actually use, they are *only* there to avoid problems with the aspect. In 1.6.9 you can add +a setting to these aspects in the aop.xml that makes them optional. The setting mentions a type and if that type cannot be found +the aspect immediately shuts itself down. This basically means that the aspect is only going to do its job if the type being +mentioned in the setting is around. This enables the aspect library to be on the aspect path but any aspects within it to +switch-off if there is nothing for them to do. +

+

Here is an example, 'AspectA' will switch itself off if the type 'a.b.c.Anno' cannot be found:

+
+ <aspect name="AspectA" requires="a.b.c.Anno"/>
+
-

Mostly bug fixes, some important fixes around the use of Method ITDs with private fields - (bug 307120)

+

Reduction in class file sizes: 312839

+ +

More details here: http://andrewclement.blogspot.com/2010/05/aspectj-size-is-important.html +but basically some work has been done to improve the serialized form of aspects. As an example, a compiled Roo petclinic sample (which +uses lots of aspects and ITDs) is down from 1Meg (AspectJ 1.6.9m2) to 630k (AspectJ 1.6.9rc1).

Transparent weaving: 309743

In a further step towards transparent weaving, support for the AjType reflection system is now being made optional. @@ -69,9 +104,6 @@ pattern that you can put into the aop.xml that augments all the pointcuts define aspects to be used are X and Y. The new 'scope' setting on aspect Y's definition allows finer control, and specifies that Y should in fact only be applied to com.foo..* types.

-
-

Features of 1.6.9 milestone 1

-

Message inserts for declare warning/error messages

It is now possible to use joinpoint context in the messages attached to declare warning and declare error constructs. Some