aboutsummaryrefslogtreecommitdiffstats
path: root/docs/dist/doc/README-1.5.3.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/dist/doc/README-1.5.3.adoc')
-rw-r--r--docs/dist/doc/README-1.5.3.adoc120
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.