diff options
author | acolyer <acolyer> | 2004-10-21 14:51:44 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2004-10-21 14:51:44 +0000 |
commit | 85c225d0a8996803e349877a4f4b926926cb7946 (patch) | |
tree | b1bacdbb6a812db99fd01edc72e46257c88bd7db | |
parent | 8a64fa2912ac02aadcf5f164dfde17a7c48877a5 (diff) | |
download | aspectj-85c225d0a8996803e349877a4f4b926926cb7946.tar.gz aspectj-85c225d0a8996803e349877a4f4b926926cb7946.zip |
preparations for 1.2.1 release
-rw-r--r-- | docs/dist/doc/README-121.html | 148 | ||||
-rw-r--r-- | docs/dist/doc/changes.html | 145 |
2 files changed, 293 insertions, 0 deletions
diff --git a/docs/dist/doc/README-121.html b/docs/dist/doc/README-121.html new file mode 100644 index 000000000..2c4b581c2 --- /dev/null +++ b/docs/dist/doc/README-121.html @@ -0,0 +1,148 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> <head> +<title>AspectJ 1.2.1 Readme</title> +<style type="text/css"> +<!-- + P { margin-left: 20px; } + PRE { margin-left: 20px; } + LI { margin-left: 20px; } + H4 { margin-left: 20px; } + H3 { margin-left: 10px; } +--> +</style> +</head> + +<body> +<div align="right"><small> +© Copyright 2004 Contributors. +All rights reserved. +</small></div> + +<h1>AspectJ 1.2.1 Readme</h1> + +<p>AspectJ 1.2.1 is largely a bug-fix release and the definition of the + AspectJ language is unchanged from the 1.2.0 release (with the exception + that AspectJ 1.2.1 permits the use of the '+' operator to concatenate + the messages for declare error and warning statements). +This document describes the tools differences between AspectJ versions 1.2 and 1.2.1. +Users familiar with AspectJ 1.2 may find this document +a quicker way to learn what changed in the tools.ing.html">porting.html</a>. +</p> + +<p>This document summarizes changes in: +<ul> + <li>Weaver messages</li> + <li>Dump support</li> + <li>JDT Compiler version</li> + <li>Line number information for join points</li> + <li>Runtime performance</li> + <li>String concatentation in declare error and warning statements</li> + <li>Load-time weaving support</li> + <li>Use of aspect libraries generated by ajc 1.2.1 with earlier versions of ajc</li> +</ul> + +</p> +<p> + See the <a href="changes.html">changes document</a> for more details, or + <a href="#allchanges">all the changes</a> as detailed in the bugzilla + database. +</p> + +<h2>Weaver Informational Messages</h2> +<p> + The AspectJ 1.2.1 compiler can produce informational messages about the + weaving process. To see these messages, use the -showWeaveInfo compiler + option, or set showweaveinfo=true in the iajc ant task. +</p> +<p>The following is an example of the messages produced when this option is enabled:</p> +<pre> + C:\aspectj1.2.1\doc\examples\tjp>ajc -showWeaveInfo *.java + + Type 'tjp.Demo' (Demo.java:20) advised by around advice from 'tjp.GetInfo' + (GetInfo.java:26) [RuntimeTest=true] + + Type 'tjp.Demo' (Demo.java:30) advised by around advice from 'tjp.GetInfo' + (GetInfo.java:26) [RuntimeTest=true] + + Type 'tjp.Demo' (Demo.java:34) advised by around advice from 'tjp.GetInfo' + (GetInfo.java:26) [RuntimeTest=true] +</pre> + +<h2>Dump Support</h2> +<p>In the event of a compiler crash, AspectJ 1.2.1 will produce a dump file giving + important information about the state of the compiler at the time of the crash. + These dump files should enable us to analyze problems more effectively. In the + rare event that you witness a compiler crash, please attach the dump file to + the bug report.</p> +<p>In addition to producing a dump file when an abort condition is detected, the + AspectJ 1.2.1 compiler can also be requested to create a dump file on detection + of a compilation error. Set the property org.aspectj.weaver.Dump.condition=error to + enable this behaviour.</p> + +<h2>JDT Compiler Version</h2> +<p>AspectJ 1.2.1 is based on the Eclipse 3.0 final JDT compiler.</p> + +<h2>Line Number Information for Join Points</h2> +<p>For source files compiled by ajc (as opposed to binary inputs to the compiler + compiled with some other java compiler), ajc now emits better line number information + for execution join points. In particular, for a method, constructor or advice + execution join point (as matched for example by a declare error or declare warning + statement), ajc 1.2.1 reports the first line number of the declaration, + as opposed to the line number of the first line of code in the body. </p> + +<h2>Runtime Performance</h2> +<p>AspectJ 1.2.1 contains a small number of runtime performance optimisations, including + optimisations of if(true) and if(false) pointcut expressions, caching of getSignature() + and toString() results on JoinPoint objects, and an optimised implementation of cflow.</p> + <p>In the case where there are no arguments bound in + the cflow pointcut, programs compiled under AspectJ 1.2.1 and that make + heavy use of cflow will run significantly faster. Thanks to the abc compiler team + for detecting this performance related bug and for piloting the fix. </p> + +<h2>String Concatentation in Declare Error/Warning Statements</h2> +<p>String concatentation in declare error and warning statements is now supported. + For example, you can write:</p> + <pre> + declare warning : jdbcCall() && !inDataLayer() + : "Please don't make calls to JDBC " + + "outside of the data layer."; + </pre> + +<h2>Load-time Weaving Support</h2> +<p> + The AspectJ 1.2.1 distribution contains a new jar in the lib directory, + aspectjweaver.jar, that contains the subset of aspectjtools.jar needed + for weaving only. This jar may be used in situations where you wish to + exploit AspectJ's binary weaving capabilities, but do not want the full + aspectjtools.jar around (aspectjweaver.jar is approx. 5 times smaller). +</p> +<p> + In addition, the load-time weaving "aj" script which was included in the + doc/examples/ltw directory in the 1.2 distribution has been moved into + the regular bin directory. See <a href="README-12.html">README-12</a> for + details of using this script. +</p> + +<h2>Binary Compatibility</h2> +<p>AspectJ 1.2.1 introduces a backwards-incompatible change to the class + file format generated by the AspectJ compiler. Classes generated by + ajc v1.2.1 cannot be used on the inpath or aspectpath of a weaver from + a prior version of the compiler. Classes generated by prior versions of + the compiler can of course be placed on the inpath or aspectpath of the + 1.2.1 weaver.</p> +<p> + As ever, you should use the AspectJ runtime library (aspectjrt.jar) that + comes with the distribution you used to build your application. +</p> +<hr/> + + + <a name="allchanges"></a> + <h2>All changes are listed in the bug database</h2> + For a complete list of changes in the 1.2.1 release, search for + <code>target 1.2.1</code> in the bug database: + <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler&target_milestone=1.2.1"> + https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&target_milestone=1.2.1&bug_status=RESOLVED&resolution=FIXED + </a> + +</body> </html> diff --git a/docs/dist/doc/changes.html b/docs/dist/doc/changes.html index de2b22ce5..829063646 100644 --- a/docs/dist/doc/changes.html +++ b/docs/dist/doc/changes.html @@ -144,6 +144,8 @@ All rights reserved. <h2>Changes in AspectJ</h2> <ul> + + <li> <a href="#1.2.1">1.2.1</a> (released 2004-10)</li> <li> <a href="#1.2">1.2</a> (released 2004-05) </li> <li> <a href="#1.1.1">1.1.1</a> (released 2003-09) @@ -189,6 +191,149 @@ All rights reserved. <hr /> +<h2><a name="1.2.1">1.2.1</a></h2> +<p>All known P1 and P2 bugs have been fixed in this release. The +<a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&target_milestone=1.2.1&bug_status=RESOLVED&resolution=FIXED">full list of fixes and +enhancements</a> can be found on bugzilla. +Some of the more significant bug fixes and enhancements include: + <ul> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=53981">53981</a> + Any occurence of proceed(..) within the body of around advice is treated as the + special proceed form (even if the aspect defines a method named proceed) unless + a target other than the aspect instance is specified as the recipient of the + call. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=48990">48990</a> + Optimisations added for the special cases of if(true) and if(false) in pointcut + expressions. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=69319">69319</a> + The Eclipse JDT compiler inside AspectJ has been upgraded to the Eclipse 3.0 release + version. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61572">61572</a> + AspectJ 1.2.1 correctly detects an attempt to access instance variables of the + declaring aspect of an inter-type declared method from within the body of that + method. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=65319">65319</a> + Error message now correctly produced when attempting to bind a pointcut formal + in both a this() and a target() pointcut sub-expression. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=70619">70619</a> + Conflicting declare precedence statements are now handled gracefully. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=42573">42573</a> + Relative paths specified in .lst files are now resolved relative to the lst file + location. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=57666">57666</a> + Resource copying from jar files correctly handles duplicate manifests. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61768">61768</a> + Static inner types of an aspect can now be referenced within the body of inter-type + declared methods in that aspect. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=62642">62642</a> + after-throwing advice on a static initialization join point no longer swallows + ExceptionInInitializer errors. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67578">67578</a> + AspectJ 1.2.1 correctly handles privileged access to members defined in a different + package to the privileged aspect. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=67592">67592</a> + The Object[] given in response to a getArgs() call on a JoinPoint object is now + a value copy. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=68991">68991</a> + Initialisers of inter-type declared fields now have field-set join points. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=69459">69459</a> + A static inter-type method declaration is not allowed to hide an instance method. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=70794">70794</a> + An inter-type declaration of an abstract method on a target type which is an interface + must be declared as public. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71372">71372</a> + Calls can be made to private static methods of enclosing types from the body of + around advice in an inner aspect. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71377">71377</a> + Join points are now correctly detected for calls to private methods and set/get of + private fields within the body of around advice. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=71723">71723</a> + A non-privileged inter-type declared method cannot call protected methods defined in + parent classes of the target type. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=74238">74238</a> + Any privileged calls made by the AspectJ runtime library are now correctly + wrapped in doPrivileged blocks, with fall-back implementations, allowing + usage in restricted environments. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=74245">74245</a> + Specifying the -proceedOnError flag will now cause the compiler to attempt + weaving even in the face of errors. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=76030">76030</a> + Runtime optimisations for cflow (in the case where there are no arguments bound in + the cflow pointcut) have been implemented. This can dramatically speed-up some programs + making heavy use of cflow. Thanks to the abc compiler team for detecting this performance + related bug and for piloting the fix. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=54421">54421</a> + String concatentation (using "+") is now allowed for the message associated with + a declare error or warning statement. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=69011">69011</a> + ajdoc now correctly handles types in the default package. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36747">36747</a> + The 1.2.1 compiler supports an additional option, -showWeaveInfo, which will + produce informational messages concerning the activity of the weaver. For example: + </br> + <pre> + Type 'tjp.Demo' (Demo.java:30) advised by around advice from 'tjp.GetInfo' + (GetInfo.java:26) [RuntimeTest=true] + </pre> + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=44191">44191</a> + AspectJ 1.2.1 improves the error messages issued in many of the infamous "can't find type" + scenarios. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46298">46298</a> + The code generated by ajc is now more easily digested by many decompilers (but you + wouldn't want to do that anyway would you?? ;) ). + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=49743">49743</a> + Performance optimisations in the AspectJ runtime library when using getSignature() and + toString(). + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=61374">61374</a> + AspectJ now includes its own version of BCEL under the org.aspectj namespace which eliminates + unwanted conflicts with BCEL versions inside JDKs or on classpaths in general. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=68494">68494</a> + ajdoc now supports ".aj" files. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=72154">72154</a> + The AspectJ 1.2.1 compiler includes the ability to dump information about the current state of the + compiler on failure. By default this only happens on an abort, but it can also be forced to + dump on error by specifying the property: org.aspectj.weaver.Dump.condition=error + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=37020">37020</a> + The line number locations for method execution and static initialization join points now give + the first line of the method declaration (rather than the line number of the first line of code in + the method body) when the source code is compiled by ajc. + </li> + <li><a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=73369">73369</a> + A new jar, aspectjweaver.jar is included in the lib directory, which contains the subset + of aspectjtools.jar needed for weaving. The "aj" script is also moved into the bin directory. + </ul> + + <h2><a name="1.2">1.2</a></h2> <p>All known P1 and P2 bugs have been fixed in this release. The <a href="https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&target_milestone=1.2">full list of fixes and |