]> source.dussan.org Git - aspectj.git/commitdiff
preparations for 1.2.1 release
authoracolyer <acolyer>
Thu, 21 Oct 2004 14:51:44 +0000 (14:51 +0000)
committeracolyer <acolyer>
Thu, 21 Oct 2004 14:51:44 +0000 (14:51 +0000)
docs/dist/doc/README-121.html [new file with mode: 0644]
docs/dist/doc/changes.html

diff --git a/docs/dist/doc/README-121.html b/docs/dist/doc/README-121.html
new file mode 100644 (file)
index 0000000..2c4b581
--- /dev/null
@@ -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>
+&copy; 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() &amp;&amp; !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>
index de2b22ce53c5c79f3fa6a50b0a8ca5b0eb3c58ac..829063646f2982531a2bb2c15e9e97d5cb0d8790 100644 (file)
@@ -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