diff options
Diffstat (limited to 'docs/dist/doc/README-1.5.3.adoc')
-rw-r--r-- | docs/dist/doc/README-1.5.3.adoc | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/docs/dist/doc/README-1.5.3.adoc b/docs/dist/doc/README-1.5.3.adoc new file mode 100644 index 000000000..d5d9a228c --- /dev/null +++ b/docs/dist/doc/README-1.5.3.adoc @@ -0,0 +1,120 @@ +== AspectJ 5 v1.5.3 Readme + +_© Copyright 2006 Contributors. All rights reserved._ + +This release includes a number of bug fixes and enhancements (over 80). +The full list of resolved issues can be found with +https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AspectJ&target_milestone=1.5.3&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=[this +bugzilla query]. + +Notable changes since the 1.5.2 release include: + + +=== Pipeline compilation - https://bugs.eclipse.org/bugs/show_bug.cgi?id=146781[146781] + +Until this release, the memory profile for AspectJ looked like this +(time is along the X axis, memory usage is the Y axis) + +[source, text] +.... + /\_ + / \_ + / \_ + / \_ + / \_ +/ \ +.... + +The first phase (as we go up and up and up) is the compilation of every +file - when the peak is reached we then start weaving files one by one, +discarding them once woven and dumped to disk. In 1.5.3 we don't compile +everything up front - we compile and weave files one at a time. Giving +us this profile: + +[source, text] +.... + /\ /\ /\ + / \/ \/ \ +/ \ +.... + +Each peak is compiling a file, then it is woven, dumped to disk and the +space recovered (the trough) - we then move onto the next file. What +does this mean? The peaks are far far lower, so you need far less memory +to compile a project. For example, I have a 1000file project, affected +by aspects at >750 join points. For given values of Xmx, here are the +times taken to compile it (on the command line) with AspectJ1.5.2: + +[source, text] +.... +Xmx Time +512M 33seconds +256M 40seconds +220M 116seconds +212M OutOfMemory +.... + +The times gradually increase as the memory is reduced because the VM +starts to thrash in garbage collection. Here are the results for +AspectJ1.5.3: + +[source, text] +.... +Xmx Time +512M 33s +256M 33s +180M 33s +140M 33s +100M 35s +80M 43s +70M OutOfMemory +.... + +So with 1.5.3, it isn't until around 80M that the VM starts to struggle +with memory. These savings will affect any code built from source: on +the command line, in Ant, or in AJDT. It will not affect binary weaving +- that is a future enhancement. + +=== Serviceability - https://bugs.eclipse.org/bugs/show_bug.cgi?id=150487[150487] + +As AspectJ grows in popularity, we find that it is becoming more +difficult for users to come up with the small testcases that recreate +problems - the usage scenarios for AJ are becoming more and more +sophisticated. To help us work on problems in these scenarios we have +added a tracing and logging framework and improved our dump mechanism. +These traces and dumps can be attached to bug reports. In AspectJ 1.5.3 +we have included some +https://www.eclipse.org/aspectj/doc/released/pdguide/index.html[documentation] +on how to configure these new features. Don't be surprised if you get +asked for an AspectJ trace on a future bug report! + +=== LTW enhancements + +==== User and System Configuration Files - https://bugs.eclipse.org/bugs/show_bug.cgi?id=149289[149289] + +The `-outxml` option now generates a file named `META-INF/aop-ajc.xml`. +This no longer clashes with a user defined `META-INF/aop.xml` +configuration file. Both file names along with an OSGi-friendly +`org/aspectj/aop.xml` (which can also be signed) are used by default to +configure LTW. + +==== Weaving Concrete Aspects Defined in aop.xml - https://bugs.eclipse.org/bugs/show_bug.cgi?id=132080[132080] + +Concrete aspects defined using aop.xml are now exposed for weaving. + +=== Pertypewithin enhancement - https://bugs.eclipse.org/bugs/show_bug.cgi?id=123423[123423] + +It is now possible to ask an instance of a ptw aspect which type it is +'attached' to. The method: + +[source, java] +.... +String getWithinTypeName() +.... + +can be called on an aspect and will return the full qualified name of +the type (eg. "com.foo.MyClass") + +''''' + +For information on bug fixes in AspectJ 5 v1.5.3, see the +link:changes.html[changes] document. |