aboutsummaryrefslogtreecommitdiffstats
path: root/docs/release/README-1.6.11.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/release/README-1.6.11.adoc')
-rw-r--r--docs/release/README-1.6.11.adoc106
1 files changed, 106 insertions, 0 deletions
diff --git a/docs/release/README-1.6.11.adoc b/docs/release/README-1.6.11.adoc
new file mode 100644
index 000000000..e5f4226a2
--- /dev/null
+++ b/docs/release/README-1.6.11.adoc
@@ -0,0 +1,106 @@
+== AspectJ 1.6.11
+
+_© Copyright 2010-2011 Contributors. All rights reserved._
+
+The full list of resolved issues in 1.6.11 is available
+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.11;[here]
+
+_Release info: 1.6.11 available 15-Mar-2011_
+
+=== Notable Changes
+
+==== RC1 - Our own XML parser
+
+Due to the way AspectJ loads one of the standard XML parsers (for
+processing aop.xml) it was possible to get into a deadlock situation. To
+avoid this completely we now have our own XML parser inside for
+processing this files. It is basic but should support all the known
+syntax we have for aop files. To use it instead of the default (if you
+are encountering the deadlock) you need to specify this system property:
+org.aspectj.weaver.loadtime.configuration.lightxmlparser=true.
+
+'''''
+
+==== M2 - Multithreaded world access
+
+The weaver is backed by a representation of types called a world.
+Traditionally the worlds have supported single threads - and that is how
+they are used when doing compile time weaving or load time weaving.
+However in some configurations, e.g. pointcut matching under Spring, a
+single world instance may be getting accessed by multiple threads at the
+same time. Under
+https://bugs.eclipse.org/bugs/show_bug.cgi?id=337855[bug337855] some
+changes have been made to better support this kind of configuration.
+
+==== M2 - various attribute deserialization issues
+
+In 1.6.9 we made some radical changes to the serialized form. It turns
+out some of the deserialization code wasn't handling these new forms
+quite right. This would manifest as an IllegalStateException or
+IndexOutOfBoundsException or similar, during attribute unpacking. These
+issues have now all been sorted out in 1.6.11.M2.
+
+==== M2 - further optimizations in model for AJDT
+
+More changes have been made for users trying out the
+-Xset:minimalModel=true option to try and reduce the memory used in
+their Eclipse/AJDT configurations. This option is discussed in detail
+http://andrewclement.blogspot.com/2010/07/ajdt-memory-usage-reduction.html[here].
+It now saves even more memory. Also, previously the amount of memory it
+recovered depended on compilation order (which the user has no control
+over), but now it is insensitive to ordering and should always recover
+the same amount across builds of the same project. With a bit more
+positive feedback on this option, it will become the default under AJDT.
+
+==== M2 - spaces in path names can cause problems
+
+AspectJ had problems if the paths it was being passed (e.g. aspectpath)
+included spaces. This is bug
+https://bugs.eclipse.org/bugs/show_bug.cgi?id=282379[282379] and has now
+been fixed.
+
+'''''
+
+==== M1 - 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:
+
+[source, java]
+....
+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 @.
+
+==== M1 - 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:
+
+[source, java]
+....
+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.