© Copyright 2010 Contributors. All rights reserved.

# AspectJ 1.6.11 Readme

#### 1.6.11 milestone 1 available 10-Dec-2010

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

## Changes

1.6.11 includes a couple of interesting changes, in addition to a few bug fixes.

### Annotation removal

Traditionally AspectJ has taken an additive approach, where methods/fields/supertypes/annotations can only be added to types. Now, chaos would likely ensue if we allowed removal of supertypes, methods, etc, but we are seeing an increasing number of requirements to do more with annotations. What kinds of thing? Basically remove existing annotations, or modify existing annotations by changing their values. 1.6.11 includes a new piece of syntax that we are thinking might be appropriate for one of these scenarios. 1.6.11 supports this:

    declare @field: int Foo.i: -@Anno;

Notice the '-' in front of the annotation, meaning 'removal'. The whole construct means 'remove the @Anno annotation from the int field called i in type Foo'. It is not yet supported on the other forms of declare @.

### Intertype innertypes

More work has gone into this feature. It was originally added in 1.6.9 but the inability to use it with binary weaving greatly reduced the usefulness. Fixes have gone into 1.6.11 to support binary weaving. What do we mean by intertype innertypes? Here is an example:

    class Foo {
      public void m() {
        System.out.println(Inner.i);
      }
    }

    aspect X {
      public static class Foo.Inner {
        static int i = 34;
      }
    }

Only static inner types are supported.

### What's next before 1.6.11 final?

Hopefully by the time AspectJ 1.6.11 finally ships we will have addressed the state persistence problem which has always meant that on restarting eclipse you need to build all your projects.

And if we can get enough feedback on the AJDT reduced memory settings (covered http://andrewclement.blogspot.com/2010/07/ajdt-memory-usage-reduction.html), we will look to enable it by default.

####